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

AWS Amplify と AWS CDK の良い関係 #awsbasics #AWSAmplifyJP

AWS Amplify と AWS CDK の良い関係 #awsbasics #AWSAmplifyJP

AWS エバンジェリストシリーズ AWSの基礎を学ぼう 特別編
Amplify Studio ハンズオン 内の LTです。
https://awsbasics.connpass.com/event/240343/

13725f35541aa680ed5f85d16b85947a?s=128

Kihara, Takuya

March 26, 2022
Tweet

More Decks by Kihara, Takuya

Other Decks in Technology

Transcript

  1. AWS Amplify と AWS CDK の 良い関係 AWS エバンジェリスト シリーズ

    AWSの基礎を学ぼう 特別編 Amplify Studio ハンズオン 2022/03/26 木原卓也 / @tacck AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 1
  2. 私 • 名前 • 木原 卓也 / @tacck • 所属

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

  4. お品書き • Amplify + CDK • Amplify Override • Amplify

    Custom • Amplify Export • まとめ AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 4
  5. Amplify + CDK • 2021年12月の re:Invent で Amplify Studio 発表

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

  7. Amplify Override • Amplify は CLI で基本的なリソースの設定 • 最初のとっかかりは楽だが、細かい設定ができない・面倒 •

    Override を使うと、設定ファイルで上書きできるようになる! • CDK ではあるが、パラメータ調整要素が前面にでるので、 CloudFormation の色が強い。 • TypeScript AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 7 DynamoDBのテーブルに TTLを設定する例
  8. 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
  9. Amplify Override イメージ図 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 9

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

  11. Amplify Custom • Amplify CLI では容易にリソースを作成できる。 が、種類は限定的。 • Amplify と他のリソースを組み合わせたサービスが必要な場合に、

    管理先が二重になる。 • Amplify CLI で作成 *できない* リソースを作成・管理できる! • 作ったリソースは、 Amplify の管理下。 • 書き方は、 CDK でリソースを作成するのと同じ書き方。 • ヘルパー関数で、 Amplify プロジェクト名や env を取得可能。 • TypeScript • CDK v1 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 11
  12. Amplify Custom で SNS追加例 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 12

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

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

  15. Amplify Export • Amplify Console (Web) に CI/CD 機能がある。 でも、先に構築していた

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

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

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

  19. Amplify Export 気を付ける点 • Export した Amplify のリソースは、 取り込んだ CDK

    とは *別の* Stack となる。 • Amplify Console で確認できる CloudFormation で引き続き構築される。 • CDK v1 • ドキュメントの手順がやや足りない。 • 複数の Stack なので --all オプションが必要。 •CDK v1 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 19
  20. まとめ AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 20

  21. Amplify と CDK の良い関係 • AWS Amplify を中心に据えながら、 AWS CDK

    との連携でリソース作成・管理が柔軟に。 • Override • Amplify CLI でできないリソースの細かい指定に対応 • Custom • Amplify CLI の範囲外のリソースも管理 • Export • Amplify のビルドを既存の CDK のビルドフローに組み込み AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 21
  22. 要望的なこと CDK v2 対応して欲しい CDK は v2 でやりたい。(必要なパッケージの管理が楽なので) 特に Export

    は Amplify のプロジェクト外の CDK と連携するので、 v2 を選べないのは辛い。 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 22
  23. 終 AWS エバンジェリストシリーズ AWSの基礎を学ぼう / #awsbasics 23