Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CDK❤SAM at CDK Conference JAPAN 2022

maki
April 09, 2022

CDK❤SAM at CDK Conference JAPAN 2022

maki

April 09, 2022
Tweet

More Decks by maki

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 • マキ @makies • 北海道札幌市 • 株式会社ゆめみ • サーバーサイドエンジニア

    – PHP TechLead – お⼿製 docker on EC2 → ECS Fargate に移⾏ @練⾺ 北海道札幌市
  2. 想定視聴者 CDK で synth して deploy の流れを理解した CDK => CloudFormation

    Template API Gateway + Lambda で APIを作ったことがある Node.js(& npm)や TypeScript を使ったことがある
  3. AW S A m p l i f y 設定を

    override Export リソース追加 AWS Amplify https://aws.amazon.com/jp/blogs/news/ extend-amplify-backend-with-custom-aws-resource-using-aws-cdk-or-cloudformation/
  4. • ローカル開発・テスト⽤ • Serverless系サービス、DB • Feature Coverage • ★ ★〜

    ★ ★ ★中⼼ • Proライセンス • WebUI Dashboard • 対応サービス数 約2倍 • Dockerコンテナ • AWS公式ではない https://localstack.cloud/
  5. AWS SAM Serverless application model • CloudFormation ベース • サーバーレス構成でよく使われるサービスを

    Cloud Formation より簡単に書ける – API Gateway, Lambda, DynamoDB Step Functions, Event Bridge – 上記以外は Cloud Formation 形式で記述 $ sam build $ cdk synth Cloud Formation template.yaml
  6. AWS SAM CLI brew tap aws/tap brew install aws-sam-cli //

    インストール sam init // 初期ファイル生成 cd sam-app && sam build // YAMLをCloudFormationテンプレートに変換 // Functionのビルド https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/ serverless-getting-started-hello-world.html
  7. AWS SAM CLI sam local invoke –e event.json MyFunction //

    LambdaFunctionをlocalで実⾏ sam local generate-event // Lambdaのevent.jsonを⽣成 sam local start-api –p 3000 // localでHTTPサーバーを⽴てる alexa-skills-kit / alexa-smart- home / apigateway / batch / cloudformation / cloudfront / cloudwatch / codecommit / codepipeline / cognito / config / dynamodb / kinesis / lex / recognition / s3 / ses / sns / sqs / stepfunctions サービス名 https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/ developerguide/sam-cli-command-reference-sam-local-generate-event.html
  8. CDKアプリ作成・デプロイフロー cdk bootstrap cdk init app --language typescript npm run

    build cdk synth (中略) cdk deploy ここで発⽣する Lambda関数の開発
  9. SAM CLI with CDK sam local invoke –e event.json –t

    ./cdk.out/HelloCdkStack.template.json MyFunction // LambdaFunctionをlocalで実⾏ sam local start-api -t ./cdk.out/CdkSamExampleStack.template.json // localでHTTPサーバーを⽴てる https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-cdk-testing.html
  10. • Public な http/https URLを発⾏ • Private なIPしか持てない環境 に転送可能 •

    ⼿元のコードが動く AWS Lambda AWS Cloud HTTP sam local start-api Amazon API Gateway https://ngrok.com/
  11. SAM or CDK • 単⼀YAML • サーバーレスアーキテクチャメイン • ⼩規模 •

    ポリシーテンプレート • TypeScript, Python, Go … • CDKの対応サービスは多い • サーバーレスはもちろん ネットワークやEC2、ストレージ etc • 中〜⼤規模向け AWS CDK Local開発 / デバッグ