Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

私 • 名前 • 木原 卓也 / @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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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