ื ื™ืชื•ื— ืžืคื•ืจื˜ ืฉืœ AWS Lambda

ืชืจื’ื•ื ื”ืžืืžืจ ื”ื•ื›ืŸ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืชืœืžื™ื“ื™ ื”ืงื•ืจืก "ืฉื™ืจื•ืชื™ ืขื ืŸ". ืžืขื•ื ื™ื™ื ื™ื ืœื”ืชืคืชื— ื‘ื›ื™ื•ื•ืŸ ื–ื”? ืฆืคื• ื‘ื›ื™ืชืช ื”ืžืืกื˜ืจ ืžืืช ืื’ื•ืจ ื–ื•ืื‘ (TeamLead ื‘-InBit) "ืฉื™ืจื•ืช AWS EC2" ื•ื”ืฆื˜ืจืคื• ืœืงื‘ื•ืฆืช ื”ืงื•ืจืกื™ื ื”ื‘ืื”: ืžืชื—ื™ืœื™ื ื‘-26 ื‘ืกืคื˜ืžื‘ืจ.

ื ื™ืชื•ื— ืžืคื•ืจื˜ ืฉืœ AWS Lambda

ื™ื•ืชืจ ืื ืฉื™ื ืขื•ื‘ืจื™ื ืœ-AWS Lambda ืขื‘ื•ืจ ืžื“ืจื’ื™ื•ืช, ื‘ื™ืฆื•ืขื™ื, ื—ื™ืกื›ื•ืŸ ื•ื™ื›ื•ืœืช ืœื˜ืคืœ ื‘ืžื™ืœื™ื•ื ื™ ื•ืืคื™ืœื• ื˜ืจื™ืœื™ื•ื ื™ ื‘ืงืฉื•ืช ื‘ื—ื•ื“ืฉ. ืœืฉื ื›ืš, ืื™ืŸ ืฆื•ืจืš ืœื ื”ืœ ืืช ื”ืชืฉืชื™ืช ืขืœื™ื” ืคื•ืขืœ ื”ืฉื™ืจื•ืช. ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ืžืืคืฉืจ ืœืš ืœื”ื’ื™ืฉ ืืœืคื™ ื‘ืงืฉื•ืช ื‘ื• ื–ืžื ื™ืช ื‘ืฉื ื™ื™ื”. ืื ื™ ื—ื•ืฉื‘ ืฉื ื™ืชืŸ ืœื›ื ื•ืช ืืช AWS Lambda ื‘ืฆื“ืง ืื—ื“ ืžืฉื™ืจื•ืชื™ AWS ื”ืคื•ืคื•ืœืจื™ื™ื ื‘ื™ื•ืชืจ.

AWS ืœืžื‘ื“ื”

AWS Lambda ื”ื•ื ืฉื™ืจื•ืช ืžื—ืฉื•ื‘ ื ื˜ื•ืœ ืฉืจืชื™ื ืžื•ื ืข ืื™ืจื•ืขื™ื ื”ืžืืคืฉืจ ืœืš ืœื”ืจื™ืฅ ืงื•ื“ ืžื‘ืœื™ ืœืกืคืง ืื• ืœื ื”ืœ ืฉืจืชื™ื ื•ืœื”ืจื—ื™ื‘ ืฉื™ืจื•ืชื™ AWS ืื—ืจื™ื ื‘ืืžืฆืขื•ืช ืœื•ื’ื™ืงื” ืžื•ืชืืžืช ืื™ืฉื™ืช. Lambda ืžื’ื™ื‘ื” ืื•ื˜ื•ืžื˜ื™ืช ืœืื™ืจื•ืขื™ื ืฉื•ื ื™ื (ื”ื ืงืจืื™ื ื˜ืจื™ื’ืจื™ื), ื›ื’ื•ืŸ ื‘ืงืฉื•ืช HTTP ื“ืจืš Amazon API Gateway, ืฉื™ื ื•ื™ื™ื ื‘ื ืชื•ื ื™ื ื‘-Amazon S3 buckets ืื• ื‘ื˜ื‘ืœืื•ืช Amazon DynamoDB; ืื• ืฉืืชื” ื™ื›ื•ืœ ืœื”ืจื™ืฅ ืืช ื”ืงื•ื“ ืฉืœืš ื‘ืืžืฆืขื•ืช ืงืจื™ืื•ืช API ื‘ืืžืฆืขื•ืช AWS SDK ื•ืžืขื‘ืจื™ ืžืฆื‘ ื‘-AWS Step Functions.

Lambda ืžืคืขื™ืœื” ืงื•ื“ ืขืœ ืชืฉืชื™ืช ืžื—ืฉื•ื‘ ื–ืžื™ื ื” ื‘ื™ื•ืชืจ ื•ืื—ืจืื™ืช ืžืœืื” ืขืœ ื ื™ื”ื•ืœ ื”ืคืœื˜ืคื•ืจืžื” ื”ื‘ืกื™ืกื™ืช, ื›ื•ืœืœ ืชื—ื–ื•ืงืช ืฉืจืชื™ื ื•ืžืขืจื›ื•ืช ื”ืคืขืœื”, ื”ืงืฆืืช ืžืฉืื‘ื™ื, ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™, ื ื™ื˜ื•ืจ ืงื•ื“ ื•ืจื™ืฉื•ื. ื›ืœื•ืžืจ, ืืชื” ืจืง ืฆืจื™ืš ืœื”ืขืœื•ืช ืืช ื”ืงื•ื“ ืฉืœืš ื•ืœื”ื’ื“ื™ืจ ืื™ืš ื•ืžืชื™ ื”ื•ื ืืžื•ืจ ืœื”ืชื‘ืฆืข. ื‘ืชื•ืจื•, ื”ืฉื™ืจื•ืช ื™ื“ืื’ ืœื”ืฉืงืชื• ื•ื™ื‘ื˜ื™ื— ื–ืžื™ื ื•ืช ื’ื‘ื•ื”ื” ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืฉืœืš.

ืžืชื™ ืœืขื‘ื•ืจ ืœืœืžื‘ื“ื”?

AWS Lambda ื”ื™ื ืคืœื˜ืคื•ืจืžืช ืžื—ืฉื•ื‘ ื ื•ื—ื” ื”ืžืชืื™ืžื” ืœืžื’ื•ื•ืŸ ืžืงืจื™ ืฉื™ืžื•ืฉ, ื›ืœ ืขื•ื“ ื”ืฉืคื” ื•ื–ืžืŸ ื”ืจื™ืฆื” ืฉืœ ื”ืงื•ื“ ืฉืœืš ื ืชืžื›ื™ื ืขืœ ื™ื“ื™ ื”ืฉื™ืจื•ืช. ืื ืืชื” ืจื•ืฆื” ืœื”ืชืžืงื“ ื‘ืงื•ื“ ื•ื‘ืœื•ื’ื™ืงื” ื”ืขืกืงื™ืช ืฉืœืš ืชื•ืš ืžื™ืงื•ืจ ื—ื•ืฅ ืฉืœ ืชื—ื–ื•ืงื”, ืืกืคืงื” โ€‹โ€‹ื•ืงื ื” ืžื™ื“ื” ืฉืœ ืฉืจืชื™ื ื‘ืขืœื•ืช ืกื‘ื™ืจื”, AWS Lambda ื”ื™ื ื‘ื”ื—ืœื˜ ื”ื“ืจืš ืœืœื›ืช.

Lambda ื”ื™ื ืื™ื“ื™ืืœื™ืช ืœื™ืฆื™ืจืช ืžืžืฉืงื™ ืชื›ื ื•ืช, ื•ื›ืืฉืจ ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืฉื™ืœื•ื‘ ืขื API Gateway, ืืชื” ื™ื›ื•ืœ ืœื”ื•ื–ื™ืœ ืขืœื•ื™ื•ืช ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ื•ืœื”ื’ื™ืข ืœืฉื•ืง ืžื”ืจ ื™ื•ืชืจ. ื™ืฉื ืŸ ื“ืจื›ื™ื ืฉื•ื ื•ืช ืœื”ืฉืชืžืฉ ื‘ืคื•ื ืงืฆื™ื•ืช Lambda ื•ืืคืฉืจื•ื™ื•ืช ืœืืจื’ื•ืŸ ืืจื›ื™ื˜ืงื˜ื•ืจื” ืœืœื ืฉืจืช - ื›ืœ ืื—ื“ ื™ื›ื•ืœ ืœื‘ื—ื•ืจ ืžืฉื”ื• ืžืชืื™ื ื‘ื”ืชืื ืœืžื˜ืจื” ืฉืœื•.

ืœืžื‘ื“ื” ืžืืคืฉืจืช ืœืš ืœื‘ืฆืข ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืžืฉื™ืžื•ืช. ื›ืš, ื”ื•ื“ื•ืช ืœืชืžื™ื›ื” ื‘-CloudWatch, ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืžืฉื™ืžื•ืช ื ื“ื—ื•ืช ื•ืœื”ืคื•ืš ืชื”ืœื™ื›ื™ื ื‘ื•ื“ื“ื™ื ืœืื•ื˜ื•ืžื˜ื™ื™ื. ืื™ืŸ ื”ื’ื‘ืœื•ืช ืขืœ ืื•ืคื™ ื•ืขื•ืฆืžืช ื”ืฉื™ืžื•ืฉ ื‘ืฉื™ืจื•ืช (ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ื•ื–ืžืŸ ื ืœืงื—ื™ื ื‘ื—ืฉื‘ื•ืŸ), ื•ืฉื•ื ื“ื‘ืจ ืœื ืžื•ื ืข ืžืžืš ืœืขื‘ื•ื“ ื‘ืื•ืคืŸ ืฉื™ื˜ืชื™ ืขืœ ืžื™ืงืจื•-ืฉื™ืจื•ืช ืžืœื ื”ืžื‘ื•ืกืก ืขืœ 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 ื”ื•ื ืฉื‘ื‘ื™ืฆื•ืข ืคื•ื ืงืฆื™ื” ื‘ืฉืžืš, ื”ืฉื™ืจื•ืช ืขืฆืžื• ืžืงืฆื” ืืช ื”ืžืฉืื‘ื™ื ื”ื“ืจื•ืฉื™ื. ืืชื” ื™ื›ื•ืœ ืœื”ื™ืžื ืข ืžื‘ื–ื‘ื•ื– ื–ืžืŸ ื•ืžืืžืฅ ื‘ื ื™ื”ื•ืœ ื”ืžืขืจื›ืช ื•ืœื”ืชืžืงื“ ื‘ืœื•ื’ื™ืงื” ื•ืงื™ื“ื•ื“ ืขืกืงื™.

ืฉื™ืจื•ืช ืœืžื‘ื“ื” ืžื—ื•ืœืง ืœืฉื ื™ ืžื˜ื•ืกื™ื. ื”ืจืืฉื•ืŸ ื”ื•ื ืžื™ืฉื•ืจ ื”ื‘ืงืจื”. ืœืคื™ ื•ื™ืงื™ืคื“ื™ื”, ืžื˜ื•ืก ื”ื‘ืงืจื” ื”ื•ื ื”ื—ืœืง ื‘ืจืฉืช ื”ืื—ืจืื™ ืขืœ ื”ืขื‘ืจืช ืชืขื‘ื•ืจืช ืื™ืชื•ืช ื•ื ื™ืชื•ื‘. ื–ื”ื• ื”ืžืจื›ื™ื‘ ื”ืขื™ืงืจื™ ืฉืžืงื‘ืœ ื”ื—ืœื˜ื•ืช ื’ืœื•ื‘ืœื™ื•ืช ืœื’ื‘ื™ ื”ืงืฆืื”, ืฉื™ืจื•ืช ื•ื”ืคืฆื” ืฉืœ ืขื•ืžืกื™ ืขื‘ื•ื“ื”. ื‘ื ื•ืกืฃ, ืžื™ืฉื•ืจ ื”ื‘ืงืจื” ืคื•ืขืœ ื›ื˜ื•ืคื•ืœื•ื’ื™ื™ืช ื”ืจืฉืช ืฉืœ ืกืคืง ื”ืคืชืจื•ื ื•ืช, ื”ืื—ืจืื™ ืขืœ ื ื™ืชื•ื‘ ื•ื ื™ื”ื•ืœ ื”ืชืขื‘ื•ืจื”.

ื”ืžื™ืฉื•ืจ ื”ืฉื ื™ ื”ื•ื ืžื™ืฉื•ืจ ื”ื ืชื•ื ื™ื. ืœื•, ื›ืžื• ืžื˜ื•ืก ื”ื‘ืงืจื”, ื™ืฉ ืžืฉื™ืžื•ืช ืžืฉืœื•. ืžื™ืฉื•ืจ ื”ื‘ืงืจื” ืžืกืคืง ืžืžืฉืงื™ API ืœื ื™ื”ื•ืœ ืคื•ื ืงืฆื™ื•ืช (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 ื“ื’ื ื‘ื™ื“ื•ื“

ื‘ื™ื“ื•ื“ ืฉืœ ืกื‘ื™ื‘ื•ืช ื–ืžืŸ ืจื™ืฆื” ืžื™ื•ืฉื ื‘ืืžืฆืขื•ืช ืžืกืคืจ ืžื ื’ื ื•ื ื™ื. ื‘ืจืžื” ื”ืขืœื™ื•ื ื” ืฉืœ ื›ืœ ืกื‘ื™ื‘ื” ื™ืฉ ืขื•ืชืงื™ื ื ืคืจื“ื™ื ืฉืœ ื”ืจื›ื™ื‘ื™ื ื”ื‘ืื™ื:

  • ืงื•ื“ ืคื•ื ืงืฆื™ื”
  • ื›ืœ ืฉื›ื‘ื•ืช ืœืžื‘ื“ื” ืฉื ื‘ื—ืจื• ืขื‘ื•ืจ ื”ืคื•ื ืงืฆื™ื”
  • ืกื‘ื™ื‘ืช ื‘ื™ืฆื•ืข ืคื•ื ืงืฆื™ื•ืช
  • ืฉื˜ื— ืžืฉืชืžืฉ ืžื™ื ื™ืžืœื™ ืžื‘ื•ืกืก ืขืœ ืืžื–ื•ืŸ ืœื™ื ื•ืงืก

ื”ืžื ื’ื ื•ื ื™ื ื”ื‘ืื™ื ืžืฉืžืฉื™ื ื›ื“ื™ ืœื‘ื•ื“ื“ ืกื‘ื™ื‘ื•ืช ื‘ื™ืฆื•ืข ืฉื•ื ื•ืช:

  • cgroups - ื”ื’ื‘ืœืช ื’ื™ืฉื” ืœืžืฉืื‘ื™ CPU, ื–ื™ื›ืจื•ืŸ, ืื—ืกื•ืŸ ื•ืจืฉืช ืขื‘ื•ืจ ื›ืœ ืกื‘ื™ื‘ืช ื–ืžืŸ ืจื™ืฆื”;
  • ืžืจื—ื‘ื™ ืฉืžื•ืช - ืงื™ื‘ื•ืฅ ืžื–ื”ื™ ืชื”ืœื™ืš, ืžื–ื”ื™ ืžืฉืชืžืฉ, ืžืžืฉืงื™ ืจืฉืช ื•ืžืฉืื‘ื™ื ืื—ืจื™ื ื”ืžื ื•ื”ืœื™ื ืขืœ ื™ื“ื™ ืœื™ื‘ืช ืœื™ื ื•ืงืก. ื›ืœ ื–ืžืŸ ืจื™ืฆื” ืคื•ืขืœ ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœื•;
  • seccomp-bpf - ืžื’ื‘ื™ืœ ืืช ืงืจื™ืื•ืช ื”ืžืขืจื›ืช ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ืŸ ื‘ื–ืžืŸ ื”ืจื™ืฆื”;
  • iptables ื•ื˜ื‘ืœืื•ืช ื ื™ืชื•ื‘ - ื‘ื™ื“ื•ื“ ืฉืœ ืกื‘ื™ื‘ื•ืช ื‘ื™ืฆื•ืข ื–ื• ืžื–ื•;
  • chroot - ืžืกืคืง ื’ื™ืฉื” ืžื•ื’ื‘ืœืช ืœืžืขืจื›ืช ื”ืงื‘ืฆื™ื ื”ื‘ืกื™ืกื™ืช.

ื‘ืฉื™ืœื•ื‘ ืขื ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื‘ื™ื“ื•ื“ ืงื ื™ื™ื ื™ื•ืช ืฉืœ AWS, ืžื ื’ื ื•ื ื™ื ืืœื• ืžื‘ื˜ื™ื—ื™ื ื”ืคืจื“ื” ืืžื™ื ื” ื‘ื–ืžืŸ ืจื™ืฆื”. ืกื‘ื™ื‘ื•ืช ื”ืžื‘ื•ื“ื“ื•ืช ื‘ืฆื•ืจื” ื–ื• ืื™ื ืŸ ื™ื›ื•ืœื•ืช ืœื’ืฉืช ืื• ืœืฉื ื•ืช ื ืชื•ื ื™ื ืžืกื‘ื™ื‘ื•ืช ืื—ืจื•ืช.

ืœืžืจื•ืช ืฉืžืกืคืจ ื–ืžื ื™ ืจื™ืฆื” ืฉืœ ืื•ืชื• ื—ืฉื‘ื•ืŸ AWS ื™ื›ื•ืœื™ื ืœืคืขื•ืœ ื‘-microVM ื™ื—ื™ื“, ื‘ืฉื•ื ืคื ื™ื ื•ืื•ืคืŸ ืœื ื ื™ืชืŸ ืœืฉืชืฃ microVMs ื‘ื™ืŸ ื—ืฉื‘ื•ื ื•ืช AWS ืฉื•ื ื™ื. AWS Lambda ืžืฉืชืžืฉืช ื‘ืฉื ื™ ืžื ื’ื ื•ื ื™ื ื‘ืœื‘ื“ ื›ื“ื™ ืœื‘ื•ื“ื“ ืžื™ืงืจื•-VMs: ืžื•ืคืขื™ EC2 ื•-Firecracker. ื‘ื™ื“ื•ื“ ืื•ืจื—ื™ื ื‘ืœืžื‘ื“ื” ืขืœ ืกืžืš ืžืงืจื™ EC2 ืงื™ื™ื ืžืื– 2015. Firecracker ื”ื•ื hypervisor ื—ื“ืฉ ื‘ืงื•ื“ ืคืชื•ื— ืฉืชื•ื›ื ืŸ ื‘ืžื™ื•ื—ื“ ืขืœ ื™ื“ื™ AWS ืœืขื•ืžืกื™ ืขื‘ื•ื“ื” ืœืœื ืฉืจืช ื•ื”ื•ืฆื’ ื‘-2018. ื”ื—ื•ืžืจื” ื”ืคื™ื–ื™ืช ื”ืžืจื™ืฅ microVMs ืžืชื—ืœืงืช ื‘ื™ืŸ ืขื•ืžืกื™ ืขื‘ื•ื“ื” ื‘ื™ืŸ ื—ืฉื‘ื•ื ื•ืช ืฉื•ื ื™ื.

ืฉืžื™ืจืช ืกื‘ื™ื‘ื•ืช ื•ืžืฆื‘ื™ ืชื”ืœื™ืš

ืœืžืจื•ืช ืฉื–ืžื ื™ ืจื™ืฆื” ืฉืœ 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 ื‘ืืžืฆืขื•ืช ืชื”ืœื™ืš ืกืงืจ ืคื ื™ืžื™. ื”ืชืขื‘ื•ืจื” ื”ืžืฉื•ื“ืจืช ืžื•ื’ื ืช ืขืœ ื™ื“ื™ TLS, ื•ืื™ืŸ ื”ืฆืคื ื” ื ื•ืกืคืช ืฉืœ ื ืชื•ื ื™ื ื”ืžืื•ื—ืกื ื™ื ื‘ืืžื–ื•ืŸ SQS.

ืงืจื™ืื•ืช ืื™ืจื•ืขื™ื ืœื ืžื—ื–ื™ืจื•ืช ืชื’ื•ื‘ื•ืช - ื”- Lambda Worker ืคืฉื•ื˜ ืžืชืขืœื ืžื›ืœ ืžื™ื“ืข ืชื’ื•ื‘ื”. ืฉื™ื—ื•ืช ืžื‘ื•ืกืกื•ืช ืื™ืจื•ืขื™ื ืžืืžื–ื•ืŸ S3, Amazon SNS, CloudWatch ื•ืžืงื•ืจื•ืช ืื—ืจื™ื ืžืขื•ื‘ื“ื•ืช ืขืœ ื™ื“ื™ Lambda ื‘ืžืฆื‘ ืื™ืจื•ืขื™ื. ืฉื™ื—ื•ืช ืžื–ืจืžื™ ืืžื–ื•ืŸ Kinesis ื•-DynamoDB, ืชื•ืจื™ SQS, ืžืื–ืŸ ืขื•ืžืก ื™ื™ืฉื•ืžื™ื ื•ืฉื™ื—ื•ืช API Gateway ืžืขื•ื‘ื“ื•ืช ื‘ืฆื•ืจื” ืฉืœ ืชื’ื•ื‘ื” ืœื‘ืงืฉื”.

ื ื™ื˜ื•ืจ

ืืชื” ื™ื›ื•ืœ ืœื ื˜ืจ ื•ืœื‘ืงืจ ืืช ืคื•ื ืงืฆื™ื•ืช Lambda ื‘ืืžืฆืขื•ืช ืžื’ื•ื•ืŸ ืžื ื’ื ื•ื ื™ ื•ืฉื™ืจื•ืชื™ื ืฉืœ AWS, ื›ื•ืœืœ ื”ื‘ืื™ื.

ืืžื–ื•ืŸ CloudWatch
ืื•ืกืฃ ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื ืฉื•ื ื™ื ื›ืžื• ืžืกืคืจ ื”ื‘ืงืฉื•ืช, ืžืฉืš ื”ื‘ืงืฉื•ืช ื•ืžืกืคืจ ื”ื‘ืงืฉื•ืช ืฉื ื›ืฉืœื•.

Amazon CloudTrail
ืžืืคืฉืจ ืœืš ืœืจืฉื•ื, ืœื ื˜ืจ ื‘ืจืฆื™ืคื•ืช ื•ืœืชื—ื–ืง ืžื™ื“ืข ืขืœ ืคืขื™ืœื•ืช ื”ื—ืฉื‘ื•ืŸ ื”ืžืฉื•ื™ืš ืœืชืฉืชื™ืช ื”-AWS ืฉืœืš. ืชื”ื™ื” ืœืš ื”ื™ืกื˜ื•ืจื™ื” ืžืœืื” ืฉืœ ืคืขื•ืœื•ืช ืฉื‘ื•ืฆืขื• ื‘ืืžืฆืขื•ืช ืžืกื•ืฃ ื”ื ื™ื”ื•ืœ ืฉืœ AWS, AWS SDK, ื›ืœื™ ืฉื•ืจืช ื”ืคืงื•ื“ื” ื•ืฉื™ืจื•ืชื™ AWS ืื—ืจื™ื.

AWS ืจื ื˜ื’ืŸ
ืžืกืคืง ื ืจืื•ืช ืžืœืื” ืœื›ืœ ืฉืœื‘ื™ ืขื™ื‘ื•ื“ ื”ื‘ืงืฉื•ืช ื‘ืืคืœื™ืงืฆื™ื” ืฉืœืš ื‘ื”ืชื‘ืกืก ืขืœ ืžืคื” ืฉืœ ื”ืžืจื›ื™ื‘ื™ื ื”ืคื ื™ืžื™ื™ื ืฉืœื”. ืžืืคืฉืจ ืœืš ืœื ืชื— ื™ื™ืฉื•ืžื™ื ื‘ืžื”ืœืš ืคื™ืชื•ื— ื•ื‘ืกื‘ื™ื‘ื•ืช ื™ื™ืฆื•ืจ.

ืชืฆื•ืจืช 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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”