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/

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

    View Slide


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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide


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

    View Slide