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

AWS Amplify で触れる AWS CDK #jawsug_cdk #jawsug

AWS Amplify で触れる AWS CDK #jawsug_cdk #jawsug

JAWS-UG CDK支部 #1 〜初回拡大版〜
https://jawsug-cdk.connpass.com/event/246765/

上記イベントでの発表スライドです。

Amplify で使える CDK の紹介と使い分けの話です。

YouTube: https://youtu.be/WodQb4rNGmc?t=3948

Kihara, Takuya

June 01, 2022
Tweet

More Decks by Kihara, Takuya

Other Decks in Technology

Transcript

  1. AWS Amplify で
    触れる AWS CDK
    JAWS-UG CDK支部
    #1
    2022/06/01
    木原卓也 / @tacck
    1
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide


  2. • 名前
    • 木原 卓也 / @tacck
    • 所属
    • 生活協同組合コープさっぽろ
    デジタル推進本部 システム部
    • 主催コミュニティ
    • ゆるWeb勉強会@札幌
    • スマートスピーカーで遊ぼう会@札幌 (休眠中)
    • 参加コミュニティ
    • Amplify Japan User Group 運営
    • AWS Community Builders Program (Q2 2021, 2022)
    • 好きなフィギュアスケートの技
    • スプレッド・イーグル
    2
    JAWS-UG CDK支部 #1 / #jawsug_cdk
    • 好きなAWSサービス
    • AWS Amplify
    • Amazon Route 53

    View Slide

  3. JAWS-UG CDK支部 #1 / #jawsug_cdk 3
    https://aws-amplify-jp.github.io/

    View Slide

  4. お品書き
    • この話のターゲット
    • AWS Amplify とは
    • Amplify + CDK
    • サンプル (Custom)
    • Amplify + CDK の考え方
    • まとめ
    4
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide

  5. この話のターゲット
    • AWS Amplify を使ったシステムの開発者
    • アプリケーションの開発メイン
    • そうはいいつつ AWS のサービス群も自分で設定
    • 上記のシステムに関わる必要がある
    AWS CDK を愛するインフラエンジニア
    5
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide

  6. AWS Amplify
    6
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide

  7. AWS Amplify って何?
    • Webフロントエンド/モバイルアプリ開発を中心に、
    フルスタックのアプリ・システム構築を素早く簡単にできるようにする、
    AWS のサービスとツールの総称。
    • 特に、 Cognito / AppSync / DynamoDB などの
    マネージドサービスの利用を簡単に行うことができ、
    いわゆる「サーバレス」なフルスタックシステムを構築しやすい。
    • また、Webサイトのホスティング機能も用意されており、
    個別の S3 / CloudFront 設定無しにサイト公開を行うことが可能。
    7
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide

  8. AWS Amplify の大まかな分類
    8
    AWSサービスとしての Amplify OSSツールとしての Amplify
    Amplify Console
    Amplify Hosting
    Amplify Studio
    Amplify CLI
    Amplify Library
    Amplify UI Components
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide

  9. Amplify + CDK
    9
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide

  10. Amplify + CDK
    • 2021年12月の re:Invent で Amplify Studio 発表
    • 直前に Amplify + CDK のリリースラッシュ
    • Override
    • Amplify CLI で作成するリソースの細かい指定に対応
    • Custom
    • Amplify CLI の範囲外のリソースも作成・管理
    • Export
    • Amplify のビルドを既存の CDK のビルドフローに組み込み
    10
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide

  11. サンプル
    Amplify Custom
    11
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide

  12. Amplify + CDK の考え方
    12
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide

  13. Amplify と それ以外 の
    リソース準備をどうやるか
    Amplify のリソースは
    • Amplify CLI で準備
    他のリソースを準備する選択肢
    1. Console で設定
    2. CloudFormation で設定
    3. CDK で設定
    4. Amplify + CDK で設定
    13
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide

  14. Console で設定
    • リソースのお試し。
    • 現実的な落とし所で手作業が必要になるなら、やりましょう。
    14
    JAWS-UG CDK支部 #1 / #jawsug_cdk
    0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
    ⽐率
    インフラ アプリ

    View Slide

  15. CloudFormation で設定
    • アプリケーション側の人が触る前提だと、ストレスたまる部分も。
    15
    JAWS-UG CDK支部 #1 / #jawsug_cdk
    0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
    ⽐率
    インフラ アプリ

    View Slide

  16. CDK で設定
    • アプリケーション側の人が触る前提だと、
    エディタの補完・型のヒントなどが使え、かなり親切。
    • 言語がマッチするなら、積極的に使いたい。
    • インフラ・AWSサービスを知らないと、うまく書けない。
    16
    JAWS-UG CDK支部 #1 / #jawsug_cdk
    0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
    ⽐率
    インフラ アプリ

    View Slide

  17. Amplify + CDK で設定
    • アプリケーション側の人が触ることが大前提の組み合わせ。
    • エディタの補完・型のヒントなどが使えるが、
    現状は TypeScript 限定。
    • CDK は v1 。
    • アプリケーションとAWSサービスの繋がりを、
    より強く意識できないといけない。
    17
    JAWS-UG CDK支部 #1 / #jawsug_cdk
    0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
    ⽐率
    インフラ アプリ

    View Slide

  18. Amplify + CDK に課題は?
    • どうしても、(いわゆる)フルスタック寄りのスキルが必要。
    • サービスが小さいうちは、
    一つのプロジェクトだけで全部管理できるので便利。
    • Amplify にこだわりすぎると、サービスの拡張で苦しむ。
    • (Amplifyの特性上)サービスやライブラリが密結合。
    • その外側を意図的に利用するので、インフラ部分も疎かにできない。
    • 運用・メンテナンスの体制次第では、別管理にしておいた方が良い。
    18
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide

  19. まとめ
    19
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide

  20. まとめ
    • ある程度フルスタックな人が、個人〜小規模で
    すばやく開発するなら、 Amplify + CDK はフィットする。
    • プロジェクトの人数が増える、
    元のアプリケーション開発者以外がメンテナンスする、
    場合などは CDK を使うにしても別管理の方がやりやすそう。
    • Amplify の CDK も早く v2 になって欲しい。
    20
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide


  21. 21
    JAWS-UG CDK支部 #1 / #jawsug_cdk

    View Slide