Slide 1

Slide 1 text

2024/11/6 @ JAWS-UG初⼼者⽀部#62 オンラインLT⼤会 まると Amazon Q を使って IaC を触ろう!

Slide 2

Slide 2 text

⾃⼰紹介 2 ● 名前 ○ まると ● 所属 ○ クラスメソッド AWS事業本部コンサルティング部 (2024/9 〜) ● AWS歴 ○ 個⼈で1年+、業務で1ヶ⽉+ ● SNS ○ X/Twitter: @MaruDevG ● 趣味 ○ ソフトダーツ ○ ⾃宅サーバー

Slide 3

Slide 3 text

本プレゼンテーションのアジェンダ 3 1. IaC、Amazon Q について 2. Amazon Q を利⽤した IaC コードの作り⽅ 3. 公式ドキュメントを読むコツ 4. 終わりに

Slide 4

Slide 4 text

IaC または、Amazon Q 触っていますか?

Slide 5

Slide 5 text

IaC (Infrastructure as Code) とはざっくり 5 サーバー、ネットワークをはじめとしたインフラストラクチャの 構成や設定値をコードとして記述する⼿法

Slide 6

Slide 6 text

IaC を利⽤することで嬉しいこと(⼀例) 6 ⼀貫性と再現性の向上 ⼿動ではなくコードから環境構築を⾏えるため、簡単に環境の再現ができる。 例: 開発環境、本番環境など複数の環境を作りたい ⾃動化‧効率化 1度コードを作成することで⾃動的にインフラの構築‧管理が可能に。 ⼿動による環境構築と⽐べミスの低減、⾃動化による構築の⾼速化 構成のモジュール化 構築した構成をモジュール化することに、他プロジェクト等で同じ設定を再利⽤が可能に。 etc…

Slide 7

Slide 7 text

Amazon Q とは? 7 ⽣成AIを活⽤したサービス 企業のデータや情報を利⽤した Amazon Q Business コーディングなど開発者向けに特化した Amazon Q Developer など、Amazon Q でも様々なサービス‧機能がある。

Slide 8

Slide 8 text

Amazon Q でできること(抜粋) 8 Amazon Q Developer Amazon Q Business 上記以外にも、Amazon QuickSight、Amazon Connect、AWS Supply Chain などに特化したサービスがございます。 コード⽣成 技術的なトラブルシューティング AI エージェント コードのアップグレード インフラストラクチャの最適化 操作を IaC 化 (Console-to-Code) データソースに基づく Q&A AI エージェント 出典や参考⽂献の提⽰ 外部アプリケーションとの接続 ユーザ情報に基づく回答 ユースケースに基づく回答

Slide 9

Slide 9 text

AWS で IaC を⾏うには? 9 ※その他、Terraform by HashiCorp 等のツールもございますが、本プレゼンテーションでは AWS CloudFormation を中⼼にお話しします。 AWS CloudFormation AWS Cloud Development Kit (AWS CDK) 今⽇はこっち

Slide 10

Slide 10 text

2サービスのざっくりとした違い 10 AWS CloudFormation AWS CDK 定義⽅法 YAML または JSON TypeScript, JavaScript, Python, Java, C#, Go 抽象化レベル 低(リソースを直接定義) ⾼(コンストラクトなどによるリソースの抽象化) デプロイ⽅法 CloudFormation スタックを直接デプロイ CloudFormation テンプレートを⽣成しデプロイ 記述例 コードは2024/4/25に発表した「IaC触ってみた」より https://www.docswell.com/s/morikapu/KM1MWG-letsstartIaC#p14

Slide 11

Slide 11 text

(⾃⾝の感想)IaC、初記述は結構⼤変だった。 11 1. 公式ドキュメントをひたすら確認しながら⼟台の作成 2. ⼟台を作成後、各種プロパティの指定 3. デプロイできるように調整 ⽣成 AI が出てくるまで 1. 公式ドキュメントをひたすら確認しながら⼟台の作成 2. ⼟台を作成後、各種プロパティの指定 3. デプロイできるように調整 ⽣成 AI の活⽤により... より⾼速かつ効率良く 書けるようになった

Slide 12

Slide 12 text

Amazon Q を使って IaC コードを書いてみよう!

Slide 13

Slide 13 text

Amazon Q を使⽤していい感じに IaC コードを⽣成するまで 13 1. 構成を定める 2. 構成の分解し⼿順の作成 3. お気に⼊りのエディタにプラグインをインストール、有効化 4. Amazon Q にいい感じにコードを⽣成してもらう 5. ⽣成されたコードの確認、デプロイできるように調整 本プレゼンテーションでは、Visual Studio Codeを利⽤します。また、プラグインのインストール、有効化は完了しているものとします。

Slide 14

Slide 14 text

想定する構成 14 リソース 個数 VPC 1 Internet Gateway 1 サブネット 1 セキュリティグループ 1 Amazon EC2 1

Slide 15

Slide 15 text

分解して⼿順にしてみる 15 リソース 個数 VPC 1 Internet Gateway 1 サブネット 1 セキュリティグループ 1 Amazon EC2 1 1. VPC を作る 2. Internet Gateway を作る 3. Internet Gateway を VPC にアタッチ 4. VPC にサブネットの作成 5. サブネットにルートテーブルを作成 6. ルートの定義、ルートテーブルに割当 7. 作成したルートテーブルをサブネットにアタッチ 8. セキュリティグループを作成 9. EC2 の作成

Slide 16

Slide 16 text

Amazon Q で IaC コードを書いてみる 16 VPC: と⼊⼒するだけで提案を出してくれる!(灰⾊で表⽰されているのが提案)

Slide 17

Slide 17 text

ちなみに...どこまで提案された? 17 1. VPC を作る 2. Internet Gateway を作る 3. Internet Gateway を VPC にアタッチ 4. VPC にサブネットの作成 5. サブネットにルートテーブルを作成 6. ルートの定義、ルートテーブルに割当 7. 作成したルートテーブルをサブネットにアタッチ 8. セキュリティグループを作成 9. EC2 の作成 (調整は置いておいて)ほとんどの⼿順が完了している! ⼊⼒が同じであっても、図のように必ず同⼀の提案が⾏われるわけではありません。(VPC のみが提案されるなど) 確定後、InternetGateway: など関連するキーワードを⼊⼒することでリソースに関する提案を受け取れます。

Slide 18

Slide 18 text

⽣成されたものを公式ドキュメントで確認、調整する 18 ⽣成されたプロパティやパラメータの意味、参照されている値が本当に存在するか? VPC の CIDR 範囲は CidrBlock というパラメータを参照しているけど実在しない Name パラメータを参照しているけど、Internet Gateway でも同じ値を参照している 実在しないパラメータ Name タグの割り当てが不適切なパターン その他、よくあるもの... ● セキュリティグループの設定(SSH を全開放したら怖いよね) ● ⼀緒に使えないプロパティが使われている(特にセキュリティグループ周り) ● 互換性観点から残している⾮推奨のプロパティを使⽤している ⽣成 AI は便利ですが、100% 正しい答えを出してくれるわけではありません。 ⼟台を作ってくれるものという認識で、プロパティを1つ1つ⾒直してみると更に理解が深めることができます。

Slide 19

Slide 19 text

(個⼈的な)公式ドキュメントを読むコツ 19 前提として、IaC コードを書くことに焦点を当てます。 1. IaC 化したい構成図を考える(なるべくシンプルな構成図がベスト) 2. まずはAWS マネジメントコンソールを介してリソースを作る 3. 作りたい各リソースについて、どんなプロパティがあるのかドキュメントを確認する a. AWS マネジメントコンソールで設定しているプロパティが何に該当するのか⾒てみよう b. 各ページの最下部にサンプルがあるので⾒てみよう 4. 複数リソースが存在する場合は、まずは1つだけ IaC 化をやってみる すごく要約すると ● 最初はシンプルに考える ● AWS マネジメントコンソールで設定したプロパティ、サンプルをまずは読んでみよう!

Slide 20

Slide 20 text

先ほどの構成なら... 20 Amazon VPC と Amazon EC2 に分解!

Slide 21

Slide 21 text

⽣成 AI サービスを使⽤することで IaC の記述が楽になり、よりハードルが低くなりました。 これから使う⽅も、すでに使っている⽅も 新しい記述⽅法に触れてみませんか? 終わりに 21

Slide 22

Slide 22 text

No content