Slide 1

Slide 1 text

第133回 雲勉【オンライン】 今度こそ既存のリソースをいい感じに コードに落とし込みたい︕

Slide 2

Slide 2 text

0.⾃⼰紹介 2 • 本⽥ 岳⼠(ほんだ たけし) • クラウドインテグレーション事業部ソリューション開発セクション第2開発グループ (⼤阪オフィス) • 40歳からエンジニア(4年⽬)、⾃社開発2社経験してアイレット • アイレット歴 10ヶ⽉ • スパゲッティコードに対する耐性が強み • 趣味は⼀⼈旅、変なTシャツ・パーカー、猫3匹 • 気になるAWSのサービスはAWS CDK, AWS SAM

Slide 3

Slide 3 text

本⽇のテーマ 3 既存のAWSリソースをIaCへ (2024年1⽉の第14回雲勉LTのリベンジ)

Slide 4

Slide 4 text

アジェンダ 4 0. ⾃⼰紹介 1. 新機能の紹介 2. マネジメントコンソールのIaCジェネレーター (VPC, ELB, EC2, RDS) 3. cdk migrate --from-scan(API Gateway, Lambda, DynamoDB) 4. 感想・まとめ

Slide 5

Slide 5 text

1.新機能の紹介 5

Slide 6

Slide 6 text

1.新機能の紹介 6 今年1⽉の第14回雲勉LTが公開された約10⽇後、既存のAWSリソースからAWS CloudFormation テンプレート、AWS CDKに移⾏する新機能が続々と公開されました(現在はプレビューリリー ス)。

Slide 7

Slide 7 text

1.新機能の紹介 7 • 既存のAWSリソースからCloudFormationテンプレートを作成することができる︕ • CloudFormationテンプレートからCDKのコードを⽣成することができる︕ • 既存のAWSリソースからCDKのコードを⽣成することができる︕

Slide 8

Slide 8 text

8 これはやってみるしかない︕

Slide 9

Slide 9 text

2.マネジメントコンソールのIaCジェネレーター (VPC, ELB, EC2, RDS) 9

Slide 10

Slide 10 text

2.マネジメントコンソールのIaCジェネレーター 10 AWSのハンズオンで作成したアプリケーションをCDKのコードに マネジメントコンソールのIaCジェネレーターで作成

Slide 11

Slide 11 text

2.マネジメントコンソールのIaCジェネレーター 11 CloudFormationのマネジメントコンソールにIaCジェネレーターというメニューが追加されてい る。スキャンを⾏うとアカウントにあるAWSリソースをスキャンする。スキャンが終わったらテ ンプレートを作成していく

Slide 12

Slide 12 text

2.マネジメントコンソールのIaCジェネレーター 12 テンプレートの詳細を指定

Slide 13

Slide 13 text

2.マネジメントコンソールのIaCジェネレーター 13 スキャンしたリソースを追加 この辺りは⾒づらいが、あらかじめタグを付けておくなどして絞り込みできるようにしておく

Slide 14

Slide 14 text

2.マネジメントコンソールのIaCジェネレーター 14 関連リソースを追加 今回タグ付けしていなかったセキュリティグループ、サブネットなども候補に上がっている。

Slide 15

Slide 15 text

2.マネジメントコンソールのIaCジェネレーター 15 テンプレートを作成ボタンをクリックすると、数分後にテンプレートが作成される

Slide 16

Slide 16 text

2.マネジメントコンソールのIaCジェネレーター 16 CDKタブからテンプレートをダウンロードし、新たにディレクトリを作成して配置する。 ターミナルで新しいディレクトリに移動してステップ2のコマンドを実⾏する。

Slide 17

Slide 17 text

2.マネジメントコンソールのIaCジェネレーター 17 コマンドを実⾏するとエラー =>VpcId is not a valid property

Slide 18

Slide 18 text

2.マネジメントコンソールのIaCジェネレーター 18 EC2インスタンスのプロパティにある VpcIdを削除して実⾏

Slide 19

Slide 19 text

2.マネジメントコンソールのIaCジェネレーター 19 VpcIdを削除して実⾏するとファイルが作成される

Slide 20

Slide 20 text

3. cdk migrate --from-scan (API Gateway, Lambda, DynamoDB) 20

Slide 21

Slide 21 text

3. cdk migrate --from-scan 21 AWSのハンズオンで作成したアプリケーションをCDKのコードに 今度は既存のAWSリソースからCDKアプリケーションを作成

Slide 22

Slide 22 text

3. cdk migrate --from-scan 22 cdk migrate -–from-scanコマンドで実⾏ --from-scanオプションによって既存のAWSリソースから直接CDKのコードを作成する

Slide 23

Slide 23 text

3. cdk migrate --from-scan 23 CDKアプリケーションが作成されている

Slide 24

Slide 24 text

3. cdk migrate --from-scan 24 ただし、Lambdaのコードに関してはコンストラクタにS3バケットとキーを指定する形になって いるがcdk deployコマンドを実⾏する前にコードを保存し、そのバケット名とキー名をコンスト ラクタに引き渡す、もしくはプロジェクト内にコードを保存してlambda.Code.fromAssetで指定 する必要がある。cdk deployを実⾏するとCloudFormationスタックが作成される S3のバケットとキーを指定してコンス トラクタに渡す

Slide 25

Slide 25 text

3. 感想・まとめ 25

Slide 26

Slide 26 text

3.感想・まとめ 26 n こういうのを待っていた︕ • まだプレビューリリースということもあって、若⼲スムーズにいかない部分や 使いづらいと感じるところはあるものの、⾮常に直感的な操作で使いやすい • ⾃動で作成された変数名は⻑くなるなど読みやすいコードとは⾔いにくいので 若⼲⼿を⼊れたほうがいいかもしれない • コンソールでぽちぽちした後コードに落としてちょっとアレンジ、という使い ⽅も⼗分できる

Slide 27

Slide 27 text

27 ご清聴ありがとうございました︕