AWS エバンジェリストシリーズ AWSの基礎を学ぼう 特別編 Amplify Studio ハンズオン 内の LTです。 https://awsbasics.connpass.com/event/240343/
AWS Amplify とAWS CDK の良い関係AWS エバンジェリストシリーズAWSの基礎を学ぼう特別編Amplify Studioハンズオン2022/03/26木原卓也 / @tacckAWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 1
View Slide
私• 名前• 木原 卓也 / @tacck• 所属• 生活協同組合コープさっぽろデジタル推進本部 システム部• 主催コミュニティ• ゆるWeb勉強会@札幌• スマートスピーカーで遊ぼう会@札幌 (休眠中)• 参加コミュニティ• Amplify Japan User Group 運営• AWS Community Builders Program (Q2 2021)• 好きなフィギュアスケートの技• スプレッド・イーグルAWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 2
AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 3https://aws-amplify-jp.github.io/
お品書き• Amplify + CDK• Amplify Override• Amplify Custom• Amplify Export• まとめAWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 4
Amplify + CDK• 2021年12月の re:Invent で Amplify Studio 発表• 直前に Amplify + CDK のリリースラッシュ• Override• Custom• Export• リソース管理は、もともと Amplify で独立していた。• このリリースによって、 CDK との関わりができ、リソース管理の選択肢が増えた!AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 5
Amplify OverrideAWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 6
Amplify Override• Amplify は CLI で基本的なリソースの設定• 最初のとっかかりは楽だが、細かい設定ができない・面倒• Override を使うと、設定ファイルで上書きできるようになる!• CDK ではあるが、パラメータ調整要素が前面にでるので、CloudFormation の色が強い。• TypeScriptAWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 7DynamoDBのテーブルにTTLを設定する例
Amplify Override• CLI で扱える機能のうちoverrideできるもの(太字)• API (GraphQL)• AppSync, DynamoDB, OpenSearch, Rekognition, Polly, IAM• API (REST)• API Gateway, IAM• Authentication• Cognito, IAM• Storage• S3, DynamoDB, IAM• Functions• Geo• HostingAWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 8
Amplify Override イメージ図AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 9
Amplify CustomAWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 10
Amplify Custom• Amplify CLI では容易にリソースを作成できる。が、種類は限定的。• Amplify と他のリソースを組み合わせたサービスが必要な場合に、管理先が二重になる。• Amplify CLI で作成 *できない* リソースを作成・管理できる!• 作ったリソースは、 Amplify の管理下。• 書き方は、 CDK でリソースを作成するのと同じ書き方。• ヘルパー関数で、 Amplify プロジェクト名や env を取得可能。• TypeScript• CDK v1AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 11
Amplify Custom で SNS追加例AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 12
Amplify Custom イメージ図AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 13
Amplify ExportAWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 14
Amplify Export• Amplify Console (Web) に CI/CD 機能がある。でも、先に構築していた CDK のビルドフローでAmplify も構築したい。• Amplify と他のリソースを組み合わせたサービスが必要な場合に、管理先が二重になる。• Amplify CLI で構築したバックエンド情報を、既存の CDK プロジェクトにリソース(JSON)として書き出しCDK のコマンドで同時にビルドできる!• CDK v1AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 15
Amplify Export した例AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 16JSON形式のリソースが作成される
Amplify Export した例AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 17リソースの取り込み
Amplify Export イメージ図AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 18
Amplify Export 気を付ける点• Export した Amplify のリソースは、取り込んだ CDK とは *別の* Stack となる。• Amplify Console で確認できるCloudFormation で引き続き構築される。• CDK v1• ドキュメントの手順がやや足りない。• 複数の Stack なので --all オプションが必要。•CDK v1AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 19
まとめAWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 20
Amplify と CDK の良い関係• AWS Amplify を中心に据えながら、AWS CDK との連携でリソース作成・管理が柔軟に。• Override• Amplify CLI でできないリソースの細かい指定に対応• Custom• Amplify CLI の範囲外のリソースも管理• Export• Amplify のビルドを既存の CDK のビルドフローに組み込みAWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 21
要望的なことCDK v2 対応して欲しいCDK は v2 でやりたい。(必要なパッケージの管理が楽なので)特に Export は Amplify のプロジェクト外の CDK と連携するので、v2 を選べないのは辛い。AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 22
終AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 23