Slide 1

Slide 1 text

AWS Amplify と AWS CDK の 良い関係 AWS エバンジェリスト シリーズ AWSの基礎を学ぼう 特別編 Amplify Studio ハンズオン 2022/03/26 木原卓也 / @tacck AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 1

Slide 2

Slide 2 text

私 • 名前 • 木原 卓也 / @tacck • 所属 • 生活協同組合コープさっぽろ デジタル推進本部 システム部 • 主催コミュニティ • ゆるWeb勉強会@札幌 • スマートスピーカーで遊ぼう会@札幌 (休眠中) • 参加コミュニティ • Amplify Japan User Group 運営 • AWS Community Builders Program (Q2 2021) • 好きなフィギュアスケートの技 • スプレッド・イーグル AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 2

Slide 3

Slide 3 text

AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 3 https://aws-amplify-jp.github.io/

Slide 4

Slide 4 text

お品書き • Amplify + CDK • Amplify Override • Amplify Custom • Amplify Export • まとめ AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 4

Slide 5

Slide 5 text

Amplify + CDK • 2021年12月の re:Invent で Amplify Studio 発表 • 直前に Amplify + CDK のリリースラッシュ • Override • Custom • Export • リソース管理は、もともと Amplify で独立していた。 • このリリースによって、 CDK との関わりができ、 リソース管理の選択肢が増えた! AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 5

Slide 6

Slide 6 text

Amplify Override AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 6

Slide 7

Slide 7 text

Amplify Override • Amplify は CLI で基本的なリソースの設定 • 最初のとっかかりは楽だが、細かい設定ができない・面倒 • Override を使うと、設定ファイルで上書きできるようになる! • CDK ではあるが、パラメータ調整要素が前面にでるので、 CloudFormation の色が強い。 • TypeScript AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 7 DynamoDBのテーブルに TTLを設定する例

Slide 8

Slide 8 text

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 • Hosting AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 8

Slide 9

Slide 9 text

Amplify Override イメージ図 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 9

Slide 10

Slide 10 text

Amplify Custom AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 10

Slide 11

Slide 11 text

Amplify Custom • Amplify CLI では容易にリソースを作成できる。 が、種類は限定的。 • Amplify と他のリソースを組み合わせたサービスが必要な場合に、 管理先が二重になる。 • Amplify CLI で作成 *できない* リソースを作成・管理できる! • 作ったリソースは、 Amplify の管理下。 • 書き方は、 CDK でリソースを作成するのと同じ書き方。 • ヘルパー関数で、 Amplify プロジェクト名や env を取得可能。 • TypeScript • CDK v1 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 11

Slide 12

Slide 12 text

Amplify Custom で SNS追加例 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 12

Slide 13

Slide 13 text

Amplify Custom イメージ図 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 13

Slide 14

Slide 14 text

Amplify Export AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 14

Slide 15

Slide 15 text

Amplify Export • Amplify Console (Web) に CI/CD 機能がある。 でも、先に構築していた CDK のビルドフローで Amplify も構築したい。 • Amplify と他のリソースを組み合わせたサービスが必要な場合に、 管理先が二重になる。 • Amplify CLI で構築したバックエンド情報を、 既存の CDK プロジェクトにリソース(JSON)として書き出し CDK のコマンドで同時にビルドできる! • CDK v1 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 15

Slide 16

Slide 16 text

Amplify Export した例 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 16 JSON形式のリソースが作成される

Slide 17

Slide 17 text

Amplify Export した例 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 17 リソースの取り込み

Slide 18

Slide 18 text

Amplify Export イメージ図 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 18

Slide 19

Slide 19 text

Amplify Export 気を付ける点 • Export した Amplify のリソースは、 取り込んだ CDK とは *別の* Stack となる。 • Amplify Console で確認できる CloudFormation で引き続き構築される。 • CDK v1 • ドキュメントの手順がやや足りない。 • 複数の Stack なので --all オプションが必要。 •CDK v1 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 19

Slide 20

Slide 20 text

まとめ AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 20

Slide 21

Slide 21 text

Amplify と CDK の良い関係 • AWS Amplify を中心に据えながら、 AWS CDK との連携でリソース作成・管理が柔軟に。 • Override • Amplify CLI でできないリソースの細かい指定に対応 • Custom • Amplify CLI の範囲外のリソースも管理 • Export • Amplify のビルドを既存の CDK のビルドフローに組み込み AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 21

Slide 22

Slide 22 text

要望的なこと CDK v2 対応して欲しい CDK は v2 でやりたい。(必要なパッケージの管理が楽なので) 特に Export は Amplify のプロジェクト外の CDK と連携するので、 v2 を選べないのは辛い。 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 22

Slide 23

Slide 23 text

終 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 23