αž€αžΆαžšαžœαž·αž—αžΆαž‚αž›αž˜αŸ’αž’αž·αžαž“αŸƒ AWS Lambda

αž€αžΆαžšαž”αž€αž”αŸ’αžšαŸ‚αž’αžαŸ’αžαž”αž‘αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž‡αžΆαž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž·αžŸαŸ’αžŸαž“αŸƒαžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆ "αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž–αž–αž€". αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αŸ’αž“αž»αž„αž‘αž·αžŸαžŠαŸ…αž“αŸαŸ‡? αž˜αžΎαž›αžαŸ’αž“αžΆαž€αŸ‹αž˜αŸαžŠαŸ„αž™ Egor Zuev (TeamLead at InBit) "αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ AWS EC2" αž αžΎαž™αž…αžΌαž›αžšαž½αž˜αž€αŸ’αžšαž»αž˜αž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ– αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 26 αžαŸ‚αž€αž‰αŸ’αž‰αžΆαŸ”

αž€αžΆαžšαžœαž·αž—αžΆαž‚αž›αž˜αŸ’αž’αž·αžαž“αŸƒ AWS Lambda

αž˜αž“αž»αžŸαŸ’αžŸαž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαž…αŸ†αžŽαžΆαž€αžŸαŸ’αžšαž»αž€αž‘αŸ… AWS Lambda αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“ αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αž€αžΆαžšαžŸαž“αŸ’αžŸαŸ† αž“αž·αž„αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαŸ†αžŽαžΎαžšαžΆαž”αŸ‹αž›αžΆαž“ αž¬αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž–αžΆαž“αŸ‹αž–αžΆαž“αŸ‹αž›αžΆαž“αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ‚αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž’αŸ’αž“αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ„αŸ‡αž‘αŸαŸ” αž αžΎαž™αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž˜αŸ’αžšαžΎαžŸαŸ†αžŽαžΎαžšαžΆαž”αŸ‹αž–αžΆαž“αŸ‹αžŠαž„αž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈαŸ” αžαŸ’αž‰αž»αŸ†αž‚αž·αžαžαžΆ AWS Lambda αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž˜αž½αž™αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ AWS αžŠαŸαž–αŸαž‰αž“αž·αž™αž˜αž”αŸ†αž•αž»αžαŸ”

AWS Lambda

AWS Lambda αž‚αžΊαž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž‚αŸ’αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž‡αŸ†αžšαž»αž‰αžŠαŸ„αž™αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΌαžŠαžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž•αŸ’αžαž›αŸ‹ αž¬αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αž–αž„αŸ’αžšαžΈαž€αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ AWS αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ„αž™αž”αŸ’αžšαžΎαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αŸ” Lambda αž†αŸ’αž›αžΎαž™αžαž”αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž…αŸ†αž–αŸ„αŸ‡αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž•αŸ’αžŸαŸαž„αŸ— (αž αŸ…αžαžΆ triggers) αžŠαžΌαž…αž‡αžΆαžŸαŸ†αžŽαžΎ HTTP αžαžΆαž˜αžšαž™αŸˆ Amazon API Gateway αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„ Amazon S3 buckets ឬ Amazon DynamoDB tables αŸ” αž¬αž’αŸ’αž“αž€αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΌαžŠαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž αŸ… 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 αž“αž·αž„αž’αž“αž’αžΆαž“ (αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽ αž“αž·αž„αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎ IAM) αžšαž½αž˜αž‘αžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαž˜αž»αžαž„αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžΎαŸ”

αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž‚αŸ†αžšαžΌαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžšαž½αž˜ αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡ AWS LambdaαŸ” αž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžšαž”αžŸαŸ‹ AWS αž‚αžΊαž–αžŽαŸŒαž‘αžΉαž€αž€αŸ’αžšαžΌαž… αž αžΎαž™αž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“αž˜αžΆαž“αž–αžŽαŸŒαžαŸ€αžœαŸ” αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰ AWS αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž›αžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ”

αž€αžΆαžšαžœαž·αž—αžΆαž‚αž›αž˜αŸ’αž’αž·αžαž“αŸƒ AWS Lambda

αž‚αŸ†αžšαžΌαž‘αŸ†αž“αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž’αžΆαž…αž’αž“αž»αžœαžαŸ’αžαž”αžΆαž“αž…αŸ†αž–αŸ„αŸ‡ AWS Lambda

αž˜αŸ‰αŸ„αž„αžšαžαŸ‹ Lambda

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž…αž˜αŸ’αž”αž„αžšαž”αžŸαŸ‹ Lambda αž‚αžΊαžαžΆαžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž”αŸ†αž–αŸαž‰αž˜αž»αžαž„αžΆαžšαž‡αŸ†αž“αž½αžŸαž’αŸ’αž“αž€ αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαŸ’αž›αž½αž“αžœαžΆαž”αŸ‚αž„αž…αŸ‚αž€αž’αž“αž’αžΆαž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž‡αŸ€αžŸαžœαžΆαž„αž€αžΆαžšαžαŸ’αž‡αŸ‡αžαŸ’αž‡αžΆαž™αž–αŸαž›αžœαŸαž›αžΆ αž“αž·αž„αž€αžΆαžšαžαž·αžαžαŸ†αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„αž›αžΎαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž αžΎαž™αž•αŸ’αžαŸ„αžαž›αžΎαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜ αž“αž·αž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αžΌαžŠαŸ”

αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ Lambda αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αž‡αžΆαž–αžΈαžšαž™αž“αŸ’αžαž αŸ„αŸ‡αŸ” αž‘αžΈαž˜αž½αž™αž‚αžΊαž™αž“αŸ’αžαž αŸ„αŸ‡αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αŸ” αž™αŸ„αž„αžαžΆαž˜αžœαž·αž‚αžΈαž—αžΈαžŒαžΆ αž™αž“αŸ’αžαž αŸ„αŸ‡αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‚αžΊαž‡αžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαž”αžŽαŸ’αžαžΆαž‰αžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαžΉαž€αž‡αž‰αŸ’αž‡αžΌαž“αžŸαž‰αŸ’αž‰αžΆαž…αžšαžΆαž…αžšαžŽαŸ αž“αž·αž„αž•αŸ’αž›αžΌαžœαŸ” αžœαžΆαž‚αžΊαž‡αžΆαž’αžΆαžαž»αž•αŸ’αžŸαŸ†αž…αž˜αŸ’αž”αž„αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž‡αžΆαžŸαž€αž›αž’αŸ†αž–αžΈαž€αžΆαžšαž•αŸ’αžαž›αŸ‹ សេវអ αž“αž·αž„αž…αŸ‚αž€αž…αžΆαž™αž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžšαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž™αž“αŸ’αžαž αŸ„αŸ‡αž”αž‰αŸ’αž‡αžΆαžŠαžΎαžšαžαž½αž‡αžΆαž”αžŽαŸ’αžαžΆαž‰ topology αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αŸ’αž›αžΌαžœ αž“αž·αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž…αžšαžΆαž…αžšαžŽαŸαŸ”

αž™αž“αŸ’αžαž αŸ„αŸ‡αž‘αžΈαž–αžΈαžšαž‚αžΊαž™αž“αŸ’αžαž αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αžœαžΆαžŠαžΌαž…αž‡αžΆαž™αž“αŸ’αžαž αŸ„αŸ‡αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž˜αžΆαž“αž—αžΆαžšαž€αž·αž…αŸ’αž…αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αŸ” αž™αž“αŸ’αžαž αŸ„αŸ‡αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž•αŸ’αžαž›αŸ‹αž“αžΌαžœ APIs αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž˜αž»αžαž„αžΆαžš (CreateFunction, UpdateFunctionCode) αž“αž·αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› Lambda αž”αŸ’αžšαžΆαžŸαŸ’αžšαŸαž™αž‘αžΆαž€αŸ‹αž‘αž„αž‡αžΆαž˜αž½αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ AWS αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž™αž“αŸ’αžαž αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ Invoke API αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž»αžαž„αžΆαžš Lambda αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž˜αž»αžαž„αžΆαžšαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ… αž™αž“αŸ’αžαž αŸ„αŸ‡αž”αž‰αŸ’αž‡αžΆαž”αŸ‚αž„αž…αŸ‚αž€ αž¬αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž”αžšαž·αž™αžΆαž€αžΆαžŸαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž‡αžΆαž˜αž»αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž»αžαž„αžΆαžšαž“αŸ„αŸ‡ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαŸ”

AWS Lambda αž‚αžΆαŸ†αž‘αŸ’αžšαž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“ αžšαž½αž˜αž‘αžΆαŸ†αž„ Java 8, Python 3.7, Go, NodeJS 8, .NET Core 2 αž“αž·αž„αž•αŸ’αžŸαŸαž„αŸ—αž‘αŸ€αž αžαžΆαž˜αžšαž™αŸˆαž”αžšαž·αžŸαŸ’αžαžΆαž“αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαŸ€αž„αŸ—αžαŸ’αž›αž½αž“αŸ” AWS αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž–αž½αž€αžœαžΆαž‡αžΆαž‘αŸ€αž„αž‘αžΆαžαŸ‹ αž…αŸ‚αž€αž…αžΆαž™αž”αŸ†αžŽαŸ‡αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž“αž·αž„αž’αž“αž»αžœαžαŸ’αžαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžαŸ‚αž‘αžΆαŸ†αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸ…αž›αžΎαž”αžšαž·αžŸαŸ’αžαžΆαž“αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” Lambda αž’αž“αž»αž‰αŸ’αž‰αžΆαžβ€‹αž±αŸ’αž™β€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎβ€‹αž—αžΆαžŸαžΆβ€‹αž•αŸ’αžŸαŸαž„β€‹αž‘αŸ€αžβ€‹αž•αž„β€‹αžŠαŸ‚αžš αžŠαŸ„αž™β€‹αž•αŸ’αžαž›αŸ‹β€‹αž±αŸ’αž™β€‹αž’αŸ’αž“αž€β€‹αž’αž“αž»αžœαžαŸ’αžβ€‹αž–αŸαž›β€‹αžœαŸαž›αžΆβ€‹αžšαžαŸ‹β€‹αžŸαž˜αžšαž˜αŸ’αž™β€‹αžŠαŸ„αž™β€‹αžαŸ’αž›αž½αž“β€‹αž―αž„αŸ” αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαžαŸ‚αžšαž€αŸ’αžŸαžΆαž€αžΆαžšαžαŸ‚αž‘αžΆαŸ†αžšαž”αžŸαŸ‹αžœαžΆ αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžšαž”αžŸαŸ‹αžœαžΆαŸ”

αžαžΎαžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ αž αžΎαž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αžΉαž„αž”αŸ†αž–αŸαž‰αž˜αž»αžαž„αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ?

αž˜αž»αžαž„αžΆαžšαž“αžΈαž˜αž½αž™αŸ—αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αžŸαŸ’αžαžΆαž“αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž¬αž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž‡αžΈαžœαž·αžαž“αŸƒαž˜αž»αžαž„αžΆαžšαž“αŸ„αŸ‡αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž αžΎαž™αž€αŸ’αžšαŸ„αž™αž˜αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž•αŸ’αž›αžΆαž‰αŸ” αž”αžšαž·αž™αžΆαž€αžΆαžŸαž“αžΈαž˜αž½αž™αŸ—αž’αŸ’αžœαžΎαž€αžΆαžšαž αŸ…αž…αŸαž‰αžαŸ‚αž˜αž½αž™αžŠαž„αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΎαž„αžœαž·αž‰αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž€αžΆαžšαž αŸ…αž‡αžΆαžŸαŸŠαŸαžšαžΈαž…αŸ’αžšαžΎαž“αžŠαž„αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αž»αžαž„αžΆαžšαžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” αž”αžšαž·αžŸαŸ’αžαžΆαž“αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž“αž·αž˜αŸ’αž˜αž·αžαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ - αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‚αŸαž αŸ…αžαžΆ microVMs αŸ” microVM αž“αžΈαž˜αž½αž™αŸ—β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž€αŸ†αžŽαžαŸ‹β€‹αž‘αŸ…β€‹αž‚αžŽαž“αžΈ AWS αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹β€‹αž˜αž½αž™ αž αžΎαž™β€‹αž’αžΆαž…β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ’αžšαžΎβ€‹αž‘αžΎαž„β€‹αžœαž·αž‰β€‹αžŠαŸ„αž™β€‹αž”αžšαž·αžŸαŸ’αžαžΆαž“β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž’αž“αž»αžœαžαŸ’αžβ€‹αž˜αž»αžαž„αžΆαžšβ€‹αž•αŸ’αžŸαŸαž„αŸ—β€‹αž€αŸ’αž“αž»αž„β€‹αž‚αžŽαž“αžΈβ€‹αž“αŸ„αŸ‡αŸ” MicroVMs αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αž…αž”αŸ‹αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαž»αŸ†αž“αŸƒαžœαŸαž‘αž·αž€αžΆαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ Lambda Worker αžŠαŸ‚αž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™ AWS αŸ” αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αž‚αŸ’αž“αžΆαž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžΎαžŠαŸ„αž™αž˜αž»αžαž„αžΆαžšαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž‘αŸ αž αžΎαž™αž€αŸαž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆ microVMs αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžŽαž“αžΈ AWS αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαžŠαŸ‚αžšαŸ”

αž€αžΆαžšαžœαž·αž—αžΆαž‚αž›αž˜αŸ’αž’αž·αžαž“αŸƒ AWS Lambda

AWS Lambda Isolation Model

αž—αžΆαž–αž―αž€αŸ„αž“αŸƒαž”αžšαž·αžŸαŸ’αžαžΆαž“αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž”αŸ’αžšαžΎαž™αž“αŸ’αžαž€αžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž€αŸ†αž–αžΌαž›αž“αŸƒαž”αžšαž·αžŸαŸ’αžαžΆαž“αž“αžΈαž˜αž½αž™αŸ— αž˜αžΆαž“αž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž“αŸƒαžŸαž˜αžΆαžŸαž’αžΆαžαž»αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

  • αž›αŸαžαž€αžΌαžŠαž˜αž»αžαž„αžΆαžš
  • αžŸαŸ’αžšαž‘αžΆαž”αŸ‹ Lambda αžŽαžΆαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž»αžαž„αžΆαžš
  • αž”αžšαž·αž™αžΆαž€αžΆαžŸαž’αž“αž»αžœαžαŸ’αžαž˜αž»αžαž„αžΆαžš
  • αž‘αŸ†αž αŸ†αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαž·αž…αžαž½αž…αž”αŸ†αž•αž»αžαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ Amazon Linux

αž™αž“αŸ’αžαž€αžΆαžšαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž‰αŸ‚αž€αž”αžšαž·αž™αžΆαž€αžΆαžŸαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ–

  • cgroups - αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαžŸαŸŠαžΈαž—αžΈαž™αžΌ αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž€αžΆαžšαž•αŸ’αž‘αž»αž€ αž“αž·αž„αž’αž“αž’αžΆαž“αž”αžŽαŸ’αžαžΆαž‰αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αžšαž·αž™αžΆαž€αžΆαžŸαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αžΈαž˜αž½αž™αŸ—αŸ”
  • namespaces - αž€αžΆαžšαžŠαžΆαž€αŸ‹αž‡αžΆαž€αŸ’αžšαž»αž˜αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰ αž“αž·αž„αž’αž“αž’αžΆαž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αŸ” αž–αŸαž›αžšαžαŸ‹αž“αžΈαž˜αž½αž™αŸ—αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αžœαžΆ;
  • seccomp-bpf - αžŠαžΆαž€αŸ‹αž€αž˜αŸ’αžšαž·αžαž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”
  • iptables αž“αž·αž„αžαžΆαžšαžΆαž„αž“αžΆαŸ†αž•αŸ’αž›αžΌαžœ - αž—αžΆαž–αž―αž€αŸ„αž“αŸƒαž”αžšαž·αžŸαŸ’αžαžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž–αžΈαž‚αŸ’αž“αžΆαž‘αŸ…αžœαž·αž‰αž‘αŸ…αž˜αž€;
  • chroot - αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ”

αžšαž½αž˜αž•αŸ’αžŸαŸ†αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž―αž€αŸ„αž€αž˜αŸ’αž˜αžŸαž·αž‘αŸ’αž’αž·αžšαž”αžŸαŸ‹ AWS αž™αž“αŸ’αžαž€αžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž’αžΆαž“αžΆαž“αžΌαžœαž€αžΆαžšαž”αŸ†αž”αŸ‚αž€αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αŸ” αž”αžšαž·αžŸαŸ’αžαžΆαž“αžŠαŸ‚αž›αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡αž˜αž·αž“αž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎ αž¬αž€αŸ‚αž”αŸ’αžšαŸ‚αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαž”αžšαž·αžŸαŸ’αžαžΆαž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž”αžΆαž“αž‘αŸαŸ”

αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžšαž™αŸˆαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ’αžšαžΎαž“αž“αŸƒαž‚αžŽαž“αžΈ AWS αžŠαžΌαž…αž‚αŸ’αž“αžΆαž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎ microVM αžαŸ‚αž˜αž½αž™αž€αŸαžŠαŸ„αž™ αž€αŸ microVMs αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžšαžœαžΆαž„αž‚αžŽαž“αžΈ AWS αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž˜αž·αž“αžŸαŸ’αžαž·αžαž€αŸ’αžšαŸ„αž˜αž€αžΆαž›αŸˆαž‘αŸαžŸαŸˆαžŽαžΆαž€αŸαžŠαŸ„αž™αŸ” AWS Lambda αž”αŸ’αžšαžΎαžαŸ‚αž™αž“αŸ’αžαž€αžΆαžšαž–αžΈαžšαžŠαžΎαž˜αŸ’αž”αžΈαž‰αŸ‚αž€ microVMs: EC2 instances αž“αž·αž„ Firecracker αŸ” αž—αžΆαž–αž―αž€αŸ„αžšαž”αžŸαŸ‹αž—αŸ’αž‰αŸ€αžœαž“αŸ…αž€αŸ’αž“αž»αž„ Lambda αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžšαžŽαžΈ EC2 αž˜αžΆαž“αžαžΆαŸ†αž„αž–αžΈαž†αŸ’αž“αžΆαŸ† 2015 αŸ” Firecracker αž‚αžΊαž‡αžΆαž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž αžš hypervisor αžαŸ’αž˜αžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αž‡αžΆαž–αž·αžŸαŸαžŸαžŠαŸ„αž™ AWS αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžšαžŠαŸ‚αž›αž‚αŸ’αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž€αŸ’αž“αž»αž„αž†αŸ’αž“αžΆαŸ† 2018 αŸ” αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš microVMs αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžšαžœαžΆαž„αž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžšαžαžΆαž˜αž‚αžŽαž“αžΈαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ”

αž€αžΆαžšαžŸαž“αŸ’αžŸαŸ†αž”αžšαž·αžŸαŸ’αžαžΆαž“ αž“αž·αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš

αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆ Lambda runtimes αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαž”αŸ’αž›αŸ‚αž€αž–αžΈαž˜αž»αžαž„αžΆαžšαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž€αŸαžŠαŸ„αž™ αž–αž½αž€αž‚αŸαž’αžΆαž…αž αŸ…αž˜αž»αžαž„αžΆαžšαžŠαžΌαž…αž‚αŸ’αž“αžΆαž˜αŸ’αžαž„αž αžΎαž™αž˜αŸ’αžαž„αž‘αŸ€αž αž˜αžΆαž“αž“αŸαž™αžαžΆαžšαž™αŸˆαž–αŸαž›αžšαžαŸ‹αž’αžΆαž…αžšαžŸαŸ‹αž”αžΆαž“αž‡αžΆαž…αŸ’αžšαžΎαž“αž˜αŸ‰αŸ„αž„αž˜αž»αž“αž–αŸαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ†αž•αŸ’αž›αžΆαž‰αŸ”

αžšαžΆαž›αŸ‹αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Lambda αž€αŸαž˜αžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž’αžΆαž…αžŸαžšαžŸαŸαžšαž”αžΆαž“αžαžΆαž˜αžšαž™αŸˆαžαž /tmp αŸ” αž˜αžΆαžαž·αž€αžΆαžšαž”αžŸαŸ‹αžœαžΆαž˜αž·αž“αž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎαž–αžΈαž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž”αžΆαž“αž‘αŸαŸ” αžŠαžšαžΆαž”αžŽαžΆαž€αžΆαžšαž‡αžΆαž”αŸ‹αž›αžΆαž”αŸ‹αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αžΆαž“αž€αžΆαžšαž–αŸ’αžšαž½αž™αž”αžΆαžšαž˜αŸ’αž— αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαž‘αŸ… /tmp αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžŠαŸ’αžαž‡αžΈαžœαž·αžαž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸƒαž”αžšαž·αžŸαŸ’αžαžΆαž“αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αž…αŸ’αžšαžΎαž“αžŠαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž‚αžš αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž‡αžΆαž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαŸ’αž›αŸƒαŸ— αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž•αŸ’αž‘αž»αž€αž˜αŸ‰αžΌαžŠαŸ‚αž›αžšαŸ€αž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž‡αžΆαžŠαžΎαž˜αŸ”

αž€αžΆαžšαž•αŸ’αž‘αŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž αŸ…αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘

Invoke API αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž–αžΈαžšαŸ– αžšαž”αŸ€αž”αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ αž“αž·αž„αžšαž”αŸ€αž”αž†αŸ’αž›αžΎαž™αžαž”αžŸαŸ†αžŽαžΎαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž‡αž½αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž†αŸ’αž›αžΎαž™αžαž”αžŸαŸ†αžŽαžΎ αž˜αž»αžαž„αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ…αž—αŸ’αž›αžΆαž˜αŸ—αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αž“αŸ’αž‘αž»αž€αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž“αžΉαž„αžαŸ’αžšαž›αž”αŸ‹αž˜αž€αžœαž·αž‰αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž‘αžΆαŸ†αž„αž–αžΈαžš αž˜αž»αžαž„αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž”αžšαž·αžŸαŸ’αžαžΆαž“ Lambda αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αž•αŸ’αž›αžΌαžœαž•αŸ’αž‘αž»αž€αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαŸ”

αž€αŸ†αž‘αž»αž„αž–αŸαž›αž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αž†αŸ’αž›αžΎαž™αžαž”αžŸαŸ†αžŽαžΎ αž”αž“αŸ’αž‘αž»αž€αž αžΌαžšαž…αŸαž‰αž–αžΈ API αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαžΎ (API Caller) αžŠαžΌαž…αž‡αžΆ AWS API Gateway ឬ AWS SDK αž‘αŸ…αž€αžΆαž“αŸ‹αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€αžαž»αž›αŸ’αž™αž—αžΆαž– αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‘αŸ…αž€αžΆαž“αŸ‹αžŸαŸαžœαžΆαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘ Lambda (αžŸαŸαžœαžΆαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘)αŸ” αž€αŸ’αžšαŸ„αž™αž˜αž€αž‘αŸ€αžαž€αŸ†αžŽαžαŸ‹αž”αžšαž·αž™αžΆαž€αžΆαžŸαžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž˜αž»αžαž„αžΆαžš αž“αž·αž„αž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αž‘αž»αž€αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž…αž”αŸ‹αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αŸ” αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€αžαž»αž›αŸ’αž™αž—αžΆαž–αž‘αž‘αž½αž›αž”αžΆαž“αž…αžšαžΆαž…αžšαžŽαŸαž€αžΆαžšαž–αžΆαžš TLS αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαŸ” αž…αžšαžΆαž…αžšαžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ Lambda - αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž•αŸ’αž‘αž»αž€αžαž»αž›αŸ’αž™αž—αžΆαž– - αž†αŸ’αž›αž„αž€αžΆαžαŸ‹ VPC αžαžΆαž„αž€αŸ’αž“αž»αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹ AWS αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αŸ”

αž€αžΆαžšαžœαž·αž—αžΆαž‚αž›αž˜αŸ’αž’αž·αžαž“αŸƒ AWS Lambda

αž‚αŸ†αžšαžΌαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž αŸ…αžšαž”αžŸαŸ‹ AWS LambdaαŸ– αžšαž”αŸ€αž”αžŸαŸ’αž“αžΎαžŸαž»αŸ†-αž†αŸ’αž›αžΎαž™αžαž”

αž€αžΆαžšαž αŸ…αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αž—αŸ’αž›αžΆαž˜αŸ— αž¬αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž‡αž½αžšαŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžαŸ’αž›αŸ‡ αž‡αž½αžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž”αŸ’αžšαžΎ Amazon SQS (Amazon Simple Queue Service) αžŠαŸ‚αž›αž”αž‰αŸ’αž‡αžΌαž“αž€αžΆαžšαž αŸ…αž‘αŸ…αž€αžΆαž“αŸ‹αžŸαŸαžœαžΆαž”αŸ†αž–αŸαž‰αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘ Lambda αžαžΆαž˜αžšαž™αŸˆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αŸ’αž“αž€αžŸαŸ’αž‘αž„αŸ‹αž˜αžαž·αž•αŸ’αž‘αŸƒαž€αŸ’αž“αž»αž„αŸ” αž…αžšαžΆαž…αžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαžšαž–αžΆαžšαžŠαŸ„αž™ TLS αž αžΎαž™αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αž“αŸ’αžαŸ‚αž˜αžŠαŸ‚αž›αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„ Amazon SQS αž‘αŸαŸ”

αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αžαžΆαž˜αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž˜αž·αž“αžαŸ’αžšαž‘αž”αŸ‹αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž‘αŸ αž€αž˜αŸ’αž˜αž€αžš Lambda αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž˜αž·αž“αž’αžΎαž–αžΎαž–αŸαžαŸŒαž˜αžΆαž“αž†αŸ’αž›αžΎαž™αžαž”αžŽαžΆαž˜αž½αž™αž‘αžΎαž™αŸ” αž€αžΆαžšαž αŸ…αžαžΆαž˜αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž–αžΈ Amazon S3, Amazon SNS, CloudWatch αž“αž·αž„αž”αŸ’αžšαž—αž–αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™ Lambda αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαŸ” αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αž–αžΈ Amazon Kinesis αž“αž·αž„ DynamoDB streams, SQS queues, Application Load Balancer αž“αž·αž„αž€αžΆαžšαž αŸ… API Gateway αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž†αŸ’αž›αžΎαž™αžαž”αžŸαŸ†αžŽαžΎαŸ”

αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™

αž’αŸ’αž“αž€αž’αžΆαž…αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ αž“αž·αž„αž’αŸ’αžœαžΎαžŸαžœαž“αž€αž˜αŸ’αž˜αž›αžΎαž˜αž»αžαž„αžΆαžš Lambda αžŠαŸ„αž™αž”αŸ’αžšαžΎαž™αž“αŸ’αžαž€αžΆαžš αž“αž·αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ AWS αž‡αžΆαž…αŸ’αžšαžΎαž“ αžšαž½αž˜αž‘αžΆαŸ†αž„αž˜αž»αžαž„αžΆαžšαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ”

αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Amazon CloudWatch
αž”αŸ’αžšαž˜αžΌαž›αžŸαŸ’αžαž·αžαž·αž•αŸ’αžŸαŸαž„αŸ—αžŠαžΌαž…αž‡αžΆαž…αŸ†αž“αž½αž“αžŸαŸ†αžŽαžΎ αžšαž™αŸˆαž–αŸαž›αž“αŸƒαžŸαŸ†αžŽαžΎ αž“αž·αž„αž…αŸ†αž“αž½αž“αžŸαŸ†αžŽαžΎαžŠαŸ‚αž›αž”αžšαžΆαž‡αŸαž™αŸ”

αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Amazon CloudTrail
αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž…αžΌαž› αžαžΆαž˜αžŠαžΆαž“ αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž–αŸαžαŸŒαž˜αžΆαž“αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž‚αžŽαž“αžΈαžŠαŸ‚αž›αž‡αžΆαž”αŸ‹αž‘αžΆαž€αŸ‹αž‘αž„αž‡αžΆαž˜αž½αž™αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ AWS αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž’αŸ’αž“αž€αž“αžΉαž„αž˜αžΆαž“αž”αŸ’αžšαžœαžαŸ’αžαž·αž–αŸαž‰αž›αŸαž‰αž“αŸƒαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž”αŸ’αžšαžΎ AWS Management Console, AWS SDK, αž§αž”αž€αžšαžŽαŸαž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ αž“αž·αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ AWS αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”

AWS X-Ray
αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž—αžΆαž–αž˜αžΎαž›αžƒαžΎαž‰αž–αŸαž‰αž›αŸαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž•αŸ‚αž“αž‘αžΈαž“αŸƒαžŸαž˜αžΆαžŸαž’αžΆαžαž»αžαžΆαž„αž€αŸ’αž“αž»αž„αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžœαž·αž—αžΆαž‚αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αž‘αž»αž„αž–αŸαž›αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αž€αŸ’αž“αž»αž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαž•αž›αž·αžαž€αž˜αŸ’αž˜αŸ”

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ AWS
αž’αŸ’αž“αž€αž“αžΉαž„αž’αžΆαž…αžαžΆαž˜αžŠαžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž˜αž»αžαž„αžΆαžš Lambda (αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αžΆαžšαž›αž»αž”) αž“αž·αž„αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αžŸαŸ’αž›αžΆαž€ αžˆαŸ’αž˜αŸ„αŸ‡αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž‘αŸ†αž αŸ†αž€αžΌαžŠ αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž’αžŸαŸ‹αž–αŸαž› αž“αž·αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆ αž–αŸ’αžšαž˜αž‘αžΆαŸ†αž„αžαž½αž“αžΆαž‘αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž· Lambda IAM αž”αžŽαŸ’αžαžΆαž‰αžšαž„ αž“αž·αž„αž€αžΆαžšαž…αž„αž€αŸ’αžšαž»αž˜αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– .

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

AWS Lambda αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž§αž”αž€αžšαžŽαŸαžŠαŸαž˜αžΆαž“αž’αžΆαž“αž»αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž“αž·αž„αž’αžΆαž…αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž”αžΆαž“αŸ” αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž“αž·αž„αž€αžΆαžšαž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜αž…αŸ’αž”αžΆαž”αŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αž“αž»αž„ AWS Lambda αž‚αžΊαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ AWS αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αžš αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αžΆαž“αž€αžšαžŽαžΈαž›αžΎαž€αž›αŸ‚αž„αž€αŸαžŠαŸ„αž™αŸ” αž‚αž·αžαžαŸ’αžšαžΉαž˜αžαŸ‚αž˜αžΈαž“αžΆ αž†αŸ’αž“αžΆαŸ† 2019 Lambda αž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜ SOC 1, SOC 2, SOC 3, PCI DSS, αž€αžΆαžšαž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜αž…αŸ’αž”αžΆαž”αŸ‹αž’αžΆαž“αžΆαžšαŸ‰αžΆαž”αŸ‹αžšαž„αžŸαž»αžαž—αžΆαž– αž“αž·αž„αž‚αžŽαž“αŸαž™αŸ’αž™αž—αžΆαž– (HIPAA) αž“αž·αž„αž”αž‘αž”αŸ’αž”αž‰αŸ’αž‰αžαŸ’αžαž·αž•αŸ’αžŸαŸαž„αŸ—αž‘αŸ€αžαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž‚αž·αžαž’αŸ†αž–αžΈαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŸαžΌαž˜αž–αž·αž…αžΆαžšαžŽαžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ AWS Lambda - αžœαžΆαž’αžΆαž…αž‡αžΆαžŸαž˜αž”αŸ†αž•αž»αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž·αž…αŸ’αž…αž€αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹