Slide 1

Slide 1 text

©Fusic Co., Ltd. 0 CONFIDENTIAL 脱ぽちぽちを⽬指して CDKでインフラ構築をしてみた ~サブタイトル~ 2024.07.06 名前 森優⽃ @kotukotuganbad AWS CDK Conference Japan 2024 presented by JAWS-UG

Slide 2

Slide 2 text

©Fusic Co., Ltd. 1 森 優⽃ Mori Yuto v I am - 消防10年 ▶ Fusic 1年 - 初⾳ミクとギターが好きです v Skills - Ruby on Rails / AWS v Comment - エンジニア1年⽣ - 先⽇、初めて髪を染めました ⾃⼰紹介 はじめに 株式会社Fusic @福岡 技術創造部⾨ エンジニア @kotukotuganbad

Slide 3

Slide 3 text

©Fusic Co., Ltd. 2 CONTENTS ⽬次 1. CDKを触ることになったきっかけ 2. 実際の成果物 3. ここが感動したぞCDK!! 4. ここが難儀だったぞCDK!! 5. まとめ

Slide 4

Slide 4 text

©Fusic Co., Ltd. 3 想定している聴講者 0

Slide 5

Slide 5 text

©Fusic Co., Ltd. 4 想定している聴講者 はじめに 3ヶ⽉前の⾃分

Slide 6

Slide 6 text

©Fusic Co., Ltd. 5 想定している聴講者 はじめに マネジメントコンソールでなんとかギリギリ ECSonFargateでアプリをデプロイできて喜ぶ

Slide 7

Slide 7 text

©Fusic Co., Ltd. 6 想定している聴講者 はじめに 広い⼼を持って聴いてください 映画「キングダム」 | 集英社 より

Slide 8

Slide 8 text

©Fusic Co., Ltd. 7 CDKに触ることになったきっかけ 1

Slide 9

Slide 9 text

©Fusic Co., Ltd. 8 CDKを触ることになったきっかけ AWS案件にアサインしたい ハッカソンでプチ実績作るぜ

Slide 10

Slide 10 text

©Fusic Co., Ltd. 9 実際の成果物 2ヶ⽉間のハッカソンに参加して、初めてCDKにてWebアプリのインフラを構築 2

Slide 11

Slide 11 text

©Fusic Co., Ltd. 10 実際の成果物 2ヶ⽉間のハッカソンに参加して、初めてCDKにてWebアプリのインフラを構築 Amplify、Route53、ACM 以外の部分をCDKにて実装しました

Slide 12

Slide 12 text

©Fusic Co., Ltd. 11 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ 3

Slide 13

Slide 13 text

©Fusic Co., Ltd. 12 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ ⾼抽象度化は神

Slide 14

Slide 14 text

©Fusic Co., Ltd. 13 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ AWS Cloud EC2は⼤体こんな感じに設定 するぞ〜というコード ≒ constructs/ec2.ts コンストラクトという概念

Slide 15

Slide 15 text

©Fusic Co., Ltd. 14 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ AWS Cloud EC2は⼤体こんな感じに設定 するぞ〜というコード 🟰 constructs/ec2.ts コンストラクトという概念 L2

Slide 16

Slide 16 text

©Fusic Co., Ltd. 15 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ L1 L2 L3 詳細に記述 ⾃由度が⾼い いい感じにしてくれる AWS Cloud EC2とRDSパターン EC2はだいたいこんな感じ RDSはだいたいこんな感じ EC2についてセキュリティグ ループはこうして、そのアウ トバウンドはこうして、EC2 のタイプはこうして、、 =

Slide 17

Slide 17 text

©Fusic Co., Ltd. 16 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ const repository = new ecr.Repository(this, 'MyRepository'); const fargateService = new ecsPatterns.ApplicationLoadBalancedFargateService(this, 'MyFargateService', { taskImageOptions: { image: ecs.ContainerImage.fromEcrRepository(repository), }, }); L3 たった数⾏でよくある「パターン」をそのまま実装できる AWS Cloud

Slide 18

Slide 18 text

©Fusic Co., Ltd. 17 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ 実装したものはマネジメントコンソールで確認できる = よくあるパターンを学習できる

Slide 19

Slide 19 text

©Fusic Co., Ltd. 18 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ アプリケーションを作成する感覚で インフラ構築ができる

Slide 20

Slide 20 text

©Fusic Co., Ltd. 19 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ 公式ワークショップの 「TypeScriptの基礎から始めるAWS CDK開発⼊⾨」 を通じて普段使⽤している知識が繋がっていくのを感じました

Slide 21

Slide 21 text

©Fusic Co., Ltd. 20 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ app app/stack1 app/stack2 app/stack1/construct1 app/stack1/construct2 app/stack2/construct1 app/stack2/construct2 クラスと継承の概念でインフラを構築することができる

Slide 22

Slide 22 text

©Fusic Co., Ltd. 21 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ app app/stack1 app/stack2 app/stack1/construct1 app/stack1/construct2 app/stack2/construct1 app/stack2/construct2 クラスと継承の概念でインフラを構築することができる 1コンストラクト、1クラス

Slide 23

Slide 23 text

©Fusic Co., Ltd. 22 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ app app/stack1 app/stack2 app/stack1/construct1 app/stack1/construct2 app/stack2/construct1 app/stack2/construct2 クラスと継承の概念でインフラを構築することができる 1コンストラクト、1クラス 複数のクラス(コンストラクト)をimport

Slide 24

Slide 24 text

©Fusic Co., Ltd. 23 ここが感動したぞCDK!! 初⼼者が感じたCDKの魅⼒ なんかいつもの感じで⾏けた Webアプリエンジニア

Slide 25

Slide 25 text

©Fusic Co., Ltd. 24 ここまでのまとめ CDKは抽象度化が魅⼒的!初級者ほど経験して欲しい Point 01 アプリ開発の感覚でインフラが構築できるのは快感! Point 02 Point 03

Slide 26

Slide 26 text

©Fusic Co., Ltd. 25 ここが難儀だったぞCDK!! 初⼼者が初めてのCDKでの実装でつまづいたポイント 4

Slide 27

Slide 27 text

©Fusic Co., Ltd. 26 CloudFormationスタックのロールバック失敗 ここが難儀だったぞCDK!! 初⼼者が初めてのCDKでの実装でつまづいたポイント

Slide 28

Slide 28 text

©Fusic Co., Ltd. 27 ここが難儀だったぞCDK!! 初⼼者が初めてのCDKでの実装でつまづいたポイント CloudFormationのスタックの ロールバックが失敗 更新も削除できない....?? 既にスタックがあるから 新しくデプロイもできない...

Slide 29

Slide 29 text

©Fusic Co., Ltd. 28 ここが難儀だったぞCDK!! 初⼼者が初めてのCDKでの実装でつまづいたポイント

Slide 30

Slide 30 text

©Fusic Co., Ltd. 29 ここが難儀だったぞCDK!! 初⼼者が初めてのCDKでの実装でつまづいたポイント

Slide 31

Slide 31 text

©Fusic Co., Ltd. 30 ここが難儀だったぞCDK!! 初⼼者が初めてのCDKでの実装でつまづいたポイント 1. 未然に防ぐには? 2. こうなってしまったらどうすればよいのか?

Slide 32

Slide 32 text

©Fusic Co., Ltd. 31 ここが難儀だったぞCDK!! 初⼼者が初めてのCDKでの実装でつまづいたポイント • 基本的にCDKデプロイはCtrl + Cで終了しない • 基本的にマネコンで手動でリソースを操作しない 1. 未然に防ぐには

Slide 33

Slide 33 text

©Fusic Co., Ltd. 32 ここが難儀だったぞCDK!! 初⼼者が初めてのCDKでの実装でつまづいたポイント デプロイ中はお祈りましょう 宝⽯の国 | 市川春⼦ より

Slide 34

Slide 34 text

©Fusic Co., Ltd. 33 ここが難儀だったぞCDK!! 初⼼者が初めてのCDKでの実装でつまづいたポイント aws cloudformation delete-stack --stack-name [スタック名] --retain-resources [保持したいリソース名] マネジメントコンソール上では削除ができなくな りますが、CLIコマンドで強制削除することがで きます 2. CloudFormationスタックのロールバックできなくなったら

Slide 35

Slide 35 text

©Fusic Co., Ltd. 34 まとめ 初めてCDKにてWebアプリのインフラを構築して感じたことまとめ 5

Slide 36

Slide 36 text

©Fusic Co., Ltd. 35 まとめ CDKは抽象度化が魅⼒的!初級者ほど経験して欲しい Point 01 アプリ開発の感覚でインフラが構築できるのは快感! Point 02 CloudFormationとの兼ね合いに注意 Point 03

Slide 37

Slide 37 text

©Fusic Co., Ltd. 36 まとめ AWS初級者こそCDKを書いてみるべき!

Slide 38

Slide 38 text

©Fusic Co., Ltd. 37 Thank You We are Hiring! https://recruit.fusic.co.jp/ ご清聴いただきありがとうございました