Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ AWS Lambda

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для студСнтов курса Β«ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ сСрвисы». Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ? Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ мастСр-класс Π•Π³ΠΎΡ€Π° Π—ΡƒΠ΅Π²Π° (TeamLead Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ InBit) Β«AWS EC2 сСрвис» ΠΈ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ блиТайшСй Π³Ρ€ΡƒΠΏΠΏΠ΅ курса: старт 26 сСнтября.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ AWS Lambda

ВсС большС людСй пСрСходят Π½Π° 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

МодСль ΠΎΠ±Ρ‰Π΅ΠΉ отвСтствСнности, примСнимая ΠΊ 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

МодСль изоляции Π² 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

МодСль ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² 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