JAWS-UG CDK支部 #1 〜初回拡大版〜 https://jawsug-cdk.connpass.com/event/246765/
上記イベントでの発表スライドです。
Amplify で使える CDK の紹介と使い分けの話です。
YouTube: https://youtu.be/WodQb4rNGmc?t=3948
AWS Amplify で触れる AWS CDKJAWS-UG CDK支部#12022/06/01木原卓也 / @tacck1JAWS-UG CDK支部 #1 / #jawsug_cdk
View Slide
私• 名前• 木原 卓也 / @tacck• 所属• 生活協同組合コープさっぽろデジタル推進本部 システム部• 主催コミュニティ• ゆるWeb勉強会@札幌• スマートスピーカーで遊ぼう会@札幌 (休眠中)• 参加コミュニティ• Amplify Japan User Group 運営• AWS Community Builders Program (Q2 2021, 2022)• 好きなフィギュアスケートの技• スプレッド・イーグル2JAWS-UG CDK支部 #1 / #jawsug_cdk• 好きなAWSサービス• AWS Amplify• Amazon Route 53
JAWS-UG CDK支部 #1 / #jawsug_cdk 3https://aws-amplify-jp.github.io/
お品書き• この話のターゲット• AWS Amplify とは• Amplify + CDK• サンプル (Custom)• Amplify + CDK の考え方• まとめ4JAWS-UG CDK支部 #1 / #jawsug_cdk
この話のターゲット• AWS Amplify を使ったシステムの開発者• アプリケーションの開発メイン• そうはいいつつ AWS のサービス群も自分で設定• 上記のシステムに関わる必要があるAWS CDK を愛するインフラエンジニア5JAWS-UG CDK支部 #1 / #jawsug_cdk
AWS Amplify6JAWS-UG CDK支部 #1 / #jawsug_cdk
AWS Amplify って何?• Webフロントエンド/モバイルアプリ開発を中心に、フルスタックのアプリ・システム構築を素早く簡単にできるようにする、AWS のサービスとツールの総称。• 特に、 Cognito / AppSync / DynamoDB などのマネージドサービスの利用を簡単に行うことができ、いわゆる「サーバレス」なフルスタックシステムを構築しやすい。• また、Webサイトのホスティング機能も用意されており、個別の S3 / CloudFront 設定無しにサイト公開を行うことが可能。7JAWS-UG CDK支部 #1 / #jawsug_cdk
AWS Amplify の大まかな分類8AWSサービスとしての Amplify OSSツールとしての AmplifyAmplify ConsoleAmplify HostingAmplify StudioAmplify CLIAmplify LibraryAmplify UI ComponentsJAWS-UG CDK支部 #1 / #jawsug_cdk
Amplify + CDK9JAWS-UG CDK支部 #1 / #jawsug_cdk
Amplify + CDK• 2021年12月の re:Invent で Amplify Studio 発表• 直前に Amplify + CDK のリリースラッシュ• Override• Amplify CLI で作成するリソースの細かい指定に対応• Custom• Amplify CLI の範囲外のリソースも作成・管理• Export• Amplify のビルドを既存の CDK のビルドフローに組み込み10JAWS-UG CDK支部 #1 / #jawsug_cdk
サンプルAmplify Custom11JAWS-UG CDK支部 #1 / #jawsug_cdk
Amplify + CDK の考え方12JAWS-UG CDK支部 #1 / #jawsug_cdk
Amplify と それ以外 のリソース準備をどうやるかAmplify のリソースは• Amplify CLI で準備他のリソースを準備する選択肢1. Console で設定2. CloudFormation で設定3. CDK で設定4. Amplify + CDK で設定13JAWS-UG CDK支部 #1 / #jawsug_cdk
Console で設定• リソースのお試し。• 現実的な落とし所で手作業が必要になるなら、やりましょう。14JAWS-UG CDK支部 #1 / #jawsug_cdk0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%⽐率インフラ アプリ
CloudFormation で設定• アプリケーション側の人が触る前提だと、ストレスたまる部分も。15JAWS-UG CDK支部 #1 / #jawsug_cdk0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%⽐率インフラ アプリ
CDK で設定• アプリケーション側の人が触る前提だと、エディタの補完・型のヒントなどが使え、かなり親切。• 言語がマッチするなら、積極的に使いたい。• インフラ・AWSサービスを知らないと、うまく書けない。16JAWS-UG CDK支部 #1 / #jawsug_cdk0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%⽐率インフラ アプリ
Amplify + CDK で設定• アプリケーション側の人が触ることが大前提の組み合わせ。• エディタの補完・型のヒントなどが使えるが、現状は TypeScript 限定。• CDK は v1 。• アプリケーションとAWSサービスの繋がりを、より強く意識できないといけない。17JAWS-UG CDK支部 #1 / #jawsug_cdk0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%⽐率インフラ アプリ
Amplify + CDK に課題は?• どうしても、(いわゆる)フルスタック寄りのスキルが必要。• サービスが小さいうちは、一つのプロジェクトだけで全部管理できるので便利。• Amplify にこだわりすぎると、サービスの拡張で苦しむ。• (Amplifyの特性上)サービスやライブラリが密結合。• その外側を意図的に利用するので、インフラ部分も疎かにできない。• 運用・メンテナンスの体制次第では、別管理にしておいた方が良い。18JAWS-UG CDK支部 #1 / #jawsug_cdk
まとめ19JAWS-UG CDK支部 #1 / #jawsug_cdk
まとめ• ある程度フルスタックな人が、個人〜小規模ですばやく開発するなら、 Amplify + CDK はフィットする。• プロジェクトの人数が増える、元のアプリケーション開発者以外がメンテナンスする、場合などは CDK を使うにしても別管理の方がやりやすそう。• Amplify の CDK も早く v2 になって欲しい。20JAWS-UG CDK支部 #1 / #jawsug_cdk
終21JAWS-UG CDK支部 #1 / #jawsug_cdk