ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² ΠΊΡΡΡΠ°
ΠΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π»ΡΠ΄Π΅ΠΉ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΡΡ Π½Π° AWS Lambda ΡΠ°Π΄ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ ΠΈ Π΄Π°ΠΆΠ΅ ΡΡΠΈΠ»Π»ΠΈΠΎΠ½Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΠΌΠ΅ΡΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡ. Π Π°Π²ΡΠΎΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΡΠΌΠ°Ρ, AWS Lambda ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΏΡΠ°Π²Ρ Π½Π°Π·Π²Π°ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ
Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² AWS.
AWS Lambda
AWS Lambda β ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠΉΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π±Π΅ΡΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄ Π±Π΅Π· Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ AWS Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ. Lambda Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ (ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠΈΠ³Π³Π΅ΡΡ), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° HTTP-Π·Π°ΠΏΡΠΎΡΡ ΡΠ΅ΡΠ΅Π· Amazon API Gateway, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΠΊΠΎΡΠ·ΠΈΠ½Π°Ρ Amazon S3 ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΠ°Ρ Amazon DynamoDB; Π»ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΡΠ΅ΡΠ΅Π· Π²ΡΠ·ΠΎΠ²Ρ API, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ AWS SDK ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ Π² AWS Step Functions.
Lambda Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠ΄ Π½Π° Π²ΡΡΠΎΠΊΠΎΠ΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ², Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΈ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»ΠΎΠ². Π’ΠΎ Π΅ΡΡΡ Π²Π°ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ, ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. Π ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠ΅ΡΠ²ΠΈΡ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ Π²ΡΡΠΎΠΊΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π½Π° Lambda?
AWS Lambda β ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½Π°Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ°Ρ Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠ·ΡΠΊ ΠΈ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° ΠΊΠΎΠ΄Π΅ ΠΈ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ΅, ΠΏΠΎΡΡΡΠΈΠ² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΌΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΡ Π·Π° ΡΠ°Π·ΡΠΌΠ½ΡΠ΅ Π΄Π΅Π½ΡΠ³ΠΈ, Π²Π°ΠΌ ΡΠΎΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° AWS Lambda.
Lambda ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², Π° Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ API Gateway, ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΠΈ Π±ΡΡΡΡΠ΅Π΅ Π²ΡΠΉΡΠΈ Π½Π° ΡΡΠ½ΠΎΠΊ. ΠΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Lambda ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π±Π΅ΡΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ β ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅Π»ΠΈ.
Lambda ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ Π·Π°Π΄Π°Ρ. Π’Π°ΠΊ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ CloudWatch ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ. ΠΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΡ ΠΈ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ° (ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠ°ΡΡ ΠΎΠ΄ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π²ΡΠ΅ΠΌΡ), ΠΈ Π²Π°ΠΌ Π½ΠΈΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΠ»Π°Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΌ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Lambda.
ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ. Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΆΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Lambda Π½Π΅ ΡΠ΅ΡΡΡΡ ΡΠ²ΠΎΠ΅ΠΉ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² β ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ AWS Lambda; Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ ΡΡΠΆΠ΅Π»ΡΠ΅, ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΠΊΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ β ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ AWS Lambda; Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ β Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π²Π°ΠΌ ΡΡΠΎΠΈΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ AWS Lambda.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
ΠΠΎΠΊΠ° ΡΡΠΎ ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π½Π΅Ρ Π½Π°ΡΠ΅ΠΊΠ°Π½ΠΈΠΉ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ AWS Lambda ΡΠΊΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ.
ΠΠ°ΠΊ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² AWS, Lambda ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΎΠ±ΡΠ΅ΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ AWS ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠΎ ΡΠ°ΡΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΡ Π½ΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ. ΠΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ AWS Π±Π΅ΡΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ Π·Π°Π΄Π°ΡΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ΅ΡΠ²ΠΈΡΠ° β ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΎΡΡΠ° ΠΈ ΡΡΠΎΠ²Π½Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΎΠ± AWS Lambda, ΡΠΎ AWS ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°ΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ΡΠ΅Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌ Lambda (Identity and Access Management, IAM), Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠ° ΡΡ Π΅ΠΌΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ ΠΎΠ±ΡΠ΅ΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ°Ρ ΠΊ AWS Lambda. Π‘ΡΠ΅ΡΠ° ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ AWS ΠΎΠΊΡΠ°ΡΠ΅Π½Π° Π² ΠΎΡΠ°Π½ΠΆΠ΅Π²ΡΠΉ ΡΠ²Π΅Ρ, Π° ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° β Π² Π³ΠΎΠ»ΡΠ±ΠΎΠΉ. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, AWS Π±Π΅ΡΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π΅ΠΌΡΠ΅ Π½Π° ΡΠ΅ΡΠ²ΠΈΡΠ΅.
ΠΠΎΠ΄Π΅Π»Ρ ΠΎΠ±ΡΠ΅ΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ°Ρ ΠΊ AWS Lambda
Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Lambda
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Lambda Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΡΠ΅ΡΠ²ΠΈΡ ΡΠ°ΠΌ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ΅ΡΡΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅ ΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΠΈΠ»Ρ Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°.
Π‘Π΅ΡΠ²ΠΈΡ Lambda ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π΄Π²Π΅ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ. ΠΠ΅ΡΠ²Π°Ρ β ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ, ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (control plane) β ΡΡΠΎ ΡΠ°ΡΡΡ ΡΠ΅ΡΠΈ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ°Ρ Π·Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΠΈΠ³Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ. ΠΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΌ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠΈ, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΠΈΡ Π½Π°Π³ΡΡΠ·ΠΎΠΊ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΡΠΎΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ΅ΠΉ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌ.
ΠΡΠΎΡΠ°Ρ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ β ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ . Π£ Π½Π΅Π΅, ΠΊΠ°ΠΊ ΠΈ Ρ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΡΠ²ΠΎΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠ»ΠΎΡΠΊΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ API Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ (CreateFunction, UpdateFunctionCode) ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Lambda Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ AWS. ΠΠ»ΠΎΡΠΊΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ API Π²ΡΠ·ΠΎΠ²ΠΎΠ² (Invoke API), ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Lambda. ΠΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π»ΠΈΠ±ΠΎ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ, Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π² Π½Π΅ΠΉ ΠΊΠΎΠ΄.
AWS Lambda ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Java 8, Python 3.7, Go, NodeJS 8, .NET Core 2 ΠΈ Π΄ΡΡΠ³ΠΈΠ΅, ΡΠ΅ΡΠ΅Π· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. AWS ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠΎΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ ΡΡΠ΅Π΄. Lambda ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ Π²Ρ ΡΠ°ΠΌΠΈ Π²Π½Π΅Π΄ΡΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΡΠΎΠ³Π΄Π° ΡΠΆΠ΅ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ Π΅Π΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ.
ΠΠ°ΠΊ Π²ΡΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ?
ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ΅Π΄Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π»ΠΈΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ Π²ΡΠ·ΠΎΠ², Π½ΠΎ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΠΈΠΉΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ΅ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ β Π½Π° ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ microVM. ΠΠ°ΠΆΠ΄Π°Ρ microVM Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ AWS ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ΅Π΄Π°ΠΌΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΡΡΠΎΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. MicroVM ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Lambda Worker, ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Π»Π°Π΄Π΅Π΅Ρ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ AWS. ΠΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ microVM ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Ρ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ AWS.
ΠΠΎΠ΄Π΅Π»Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Π² AWS Lambda
ΠΠ·ΠΎΠ»ΡΡΠΈΡ ΡΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ². ΠΠ° Π²ΡΡΡΠ΅ΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²:
- ΠΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ
- ΠΡΠ±ΡΠ΅ ΡΠ»ΠΎΠΈ Lambda, Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ
- Π‘ΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ
- ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° Π±Π°Π·Π΅ Amazon Linux
ΠΠ»Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΠ°Π·Π½ΡΡ ΡΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ:
- cgroups β ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ Π¦Π, ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΠ΅ΡΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ;
- namespaces β ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π² Π³ΡΡΠΏΠΏΡ ID ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ID ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ΅ΡΠ΅Π²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΄ΡΠΎ Linux. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½;
- seccomp-bpf β ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ;
- iptables ΠΈ routing tables β ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΡΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ;
- chroot β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°ΡΠ΅ΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ AWS ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠ΅Π΄Ρ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅Π΄ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡ .
Π₯ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ AWS ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ microVM, Π½ΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΊΠΈΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°Ρ microVM Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΡΠ΅ΡΠ½ΡΠΌΠΈ Π·Π°ΠΏΠΈΡΡΠΌΠΈ AWS. ΠΠ»Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ microVM Π² AWS Lambda ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°: ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ EC2 ΠΈ Firecracker. ΠΠ·ΠΎΠ»ΡΡΠΈΡ Π³ΠΎΡΡΠ΅ΠΉ (guest isolation) Π² Lambda Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² EC2 ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Ρ 2015 Π³ΠΎΠ΄Π°. Firecracker β ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ AWS Π΄Π»Ρ Π±Π΅ΡΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΠΈΡ Π½Π°Π³ΡΡΠ·ΠΎΠΊ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π² 2018 Π³ΠΎΠ΄Ρ. Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ microVM, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠ°ΠΌΠΈ ΡΠ°Π·Π½ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅Π΄ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²
Π₯ΠΎΡΡ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Lambda ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Ρ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π² Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ², ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Π°.
Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Lambda ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° Π·Π°ΠΏΠΈΡΡ, Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /tmp. Π Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ Π½Π΅Π»ΡΠ·Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² /tmp ΡΠ°ΠΉΠ»Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ° ΡΡΠ΅Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π°ΠΊΠΊΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΡΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ Π·Π°ΡΡΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠ°ΠΊ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ²
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Invoke API ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π² Π΄Π²ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ : Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Β«Π·Π°ΠΏΡΠΎΡ β ΠΎΡΠ²Π΅ΡΒ». Π ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ Π²ΡΠ·ΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΡΠ΅ΠΆΠΈΠΌΠ΅ Β«Π·Π°ΠΏΡΠΎΡ β ΠΎΡΠ²Π΅ΡΒ» ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΎΡΠ²Π΅Ρ. Π Π² ΡΠΎΠΌ ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΡΠ΅Π΄Π΅ Lambda, Π½ΠΎ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΡΡΠΌΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠΈΠΏΠ° Β«Π·Π°ΠΏΡΠΎΡ β ΠΎΡΠ²Π΅ΡΒ» ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ ΠΎΡ API ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² (API Caller), ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ AWS API Gateway ΠΈΠ»ΠΈ AWS SDK, Π² Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, Π° Π·Π°ΡΠ΅ΠΌ β Π² ΡΠ»ΡΠΆΠ±Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Lambda (Invoke Service). ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΡΡ ΡΡΠ΅Π΄Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΡΠ΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ, ΡΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π²ΡΠ·ΠΎΠ². ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡΠ°ΡΠΈΠΊ Ρ TLS-Π·Π°ΡΠΈΡΠΎΠΉ ΡΠ΅ΡΠ΅Π· ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ. Π’ΡΠ°ΡΠΈΠΊ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° Lambda β ΠΏΠΎΡΠ»Π΅ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ β ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ VPC Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅Π³ΠΈΠΎΠ½Π΅ AWS.
ΠΠΎΠ΄Π΅Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² AWS Lambda: ΡΠ΅ΠΆΠΈΠΌ Β«Π·Π°ΠΏΡΠΎΡ β ΠΎΡΠ²Π΅ΡΒ»
ΠΡΠ·ΠΎΠ²Ρ ΠΏΠΎ ΡΠΎΠ±ΡΡΠΈΡΠΌ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ° Amazon SQS (Amazon Simple Queue Service), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π²ΡΠ·ΠΎΠ²Ρ Π² ΡΠ»ΡΠΆΠ±Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Lambda ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° (poller). ΠΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΡΡΠ°ΡΠΈΠΊ Π·Π°ΡΠΈΡΠ΅Π½ TLS, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ Π² Amazon SQS, Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ.
ΠΡΠ·ΠΎΠ²Ρ ΠΏΠΎ ΡΠΎΠ±ΡΡΠΈΡΠΌ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΡΠ²Π΅ΡΡ β Π»ΡΠ±ΡΡ ΠΎΡΠ²Π΅ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Lambda Worker ΠΏΠΎΠΏΡΠΎΡΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ. ΠΡΠ·ΠΎΠ²Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ±ΡΡΠΈΠΉ Amazon S3, Amazon SNS, CloudWatch ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ Lambda Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΡΠ·ΠΎΠ²Ρ ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠΎΠ² Amazon Kinesis ΠΈ DynamoDB, Π²ΡΠ·ΠΎΠ²Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ SQS, Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ API Gateway ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Β«Π·Π°ΠΏΡΠΎΡ β ΠΎΡΠ²Π΅ΡΒ».
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ Π°ΡΠ΄ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Lambda Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² AWS, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅.
Amazon CloudWatch
Π‘ΠΎΠ±ΠΈΡΠ°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΡΠΈΡΠ»ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π·Π°Π²Π΅ΡΡΠΈΠ²ΡΠΈΡ
ΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
Amazon CloudTrail
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π΅ΡΡΠΈ ΠΆΡΡΠ½Π°Π»Ρ, Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π² ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π²Π°ΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ AWS. Π£ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π½Π°Ρ Ρ
ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ AWS Management Console, AWS SDK, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² AWS.
AWS X-Ray
ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π½ΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΡΠ΅Ρ
ΡΡΠ°ΠΏΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ°ΡΡΡ Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Ρ
ΠΎΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.
AWS Config
ΠΡ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Lambda (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΡ
ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅) ΠΈ ΡΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠ΅Π³ΠΎΠ², ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠΎΠ΄Π°, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Lambda IAM, ΠΏΠΎΠ΄ΡΠ΅ΡΠΈ ΠΈ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π³ΡΡΠΏΠΏ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
AWS Lambda ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠΎΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Π½ΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π² AWS Lambda Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ AWS, Ρ ΠΎΡΡ Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΠΌΠ°ΡΡ 2019 Π³ΠΎΠ΄Π° Lambda ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ SOC 1, SOC 2, SOC 3, PCI DSS, Π·Π°ΠΊΠΎΠ½Ρ Π‘Π¨Π ΠΎ ΠΏΡΠ΅Π΅ΠΌΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ΄ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΌΠ΅Π΄ΠΈΡΠΈΠ½ΡΠΊΠΎΠ³ΠΎ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ (HIPAA) ΠΈ Π΄ΡΡΠ³ΠΈΠΌ Π½ΠΎΡΠΌΠ°ΡΠΈΠ²Π°ΠΌ. ΠΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π·Π°Π΄ΡΠΌΠ°Π΅ΡΠ΅ΡΡ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡ AWS Lambda β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ ΠΊΠ°ΠΊ Π½Π΅Π»ΡΠ·Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com