Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Amazon Qを使ってIaCを触ろう!
Search
Maruto
November 06, 2024
Programming
0
460
Amazon Qを使ってIaCを触ろう!
「JAWS-UG初心者支部#62 オンラインLT大会」で発表したLT資料です。
https://jawsug-bgnr.connpass.com/event/334459/
Maruto
November 06, 2024
Tweet
Share
Other Decks in Programming
See All in Programming
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
350
TypeScriptでライブラリとの依存を限定的にする方法
tutinoko
3
850
Cursorでアプリケーションの追加開発や保守をどこまでできるか試したら得るものが多かった話
drumnistnakano
0
270
The rollercoaster of releasing an Android, iOS, and macOS app with Kotlin Multiplatform | droidcon Italy
prof18
0
130
flutterkaigi_2024.pdf
kyoheig3
0
450
事業成長を爆速で進めてきたプロダクトエンジニアたちの成功談・失敗談
nealle
3
1.2k
Vue.js_好きに捧ぐ Nuxt Hub で簡単に始めるCloudflare
xiombatsg
1
120
MoQとか勉強会#2 発表資料
yuki_uchida
2
160
watsonx.ai Dojo #4 生成AIを使ったアプリ開発、応用編
oniak3ibm
PRO
2
270
[FlutterKaigi2024] Effective Form 〜Flutterによる複雑なフォーム開発の実践〜
chocoyama
1
3.9k
.NET Conf 2024の振り返り
tomokusaba
0
190
今からはじめるAndroidアプリ開発 2024 / DevFest 2024
star_zero
0
700
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Done Done
chrislema
181
16k
Unsuck your backbone
ammeep
669
57k
How to Ace a Technical Interview
jacobian
276
23k
How STYLIGHT went responsive
nonsquared
95
5.2k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Building Your Own Lightsaber
phodgson
103
6.1k
Transcript
2024/11/6 @ JAWS-UG初⼼者⽀部#62 オンラインLT⼤会 まると Amazon Q を使って IaC を触ろう!
⾃⼰紹介 2 • 名前 ◦ まると • 所属 ◦ クラスメソッド
AWS事業本部コンサルティング部 (2024/9 〜) • AWS歴 ◦ 個⼈で1年+、業務で1ヶ⽉+ • SNS ◦ X/Twitter: @MaruDevG • 趣味 ◦ ソフトダーツ ◦ ⾃宅サーバー
本プレゼンテーションのアジェンダ 3 1. IaC、Amazon Q について 2. Amazon Q を利⽤した
IaC コードの作り⽅ 3. 公式ドキュメントを読むコツ 4. 終わりに
IaC または、Amazon Q 触っていますか?
IaC (Infrastructure as Code) とはざっくり 5 サーバー、ネットワークをはじめとしたインフラストラクチャの 構成や設定値をコードとして記述する⼿法
IaC を利⽤することで嬉しいこと(⼀例) 6 ⼀貫性と再現性の向上 ⼿動ではなくコードから環境構築を⾏えるため、簡単に環境の再現ができる。 例: 開発環境、本番環境など複数の環境を作りたい ⾃動化‧効率化 1度コードを作成することで⾃動的にインフラの構築‧管理が可能に。 ⼿動による環境構築と⽐べミスの低減、⾃動化による構築の⾼速化
構成のモジュール化 構築した構成をモジュール化することに、他プロジェクト等で同じ設定を再利⽤が可能に。 etc…
Amazon Q とは? 7 ⽣成AIを活⽤したサービス 企業のデータや情報を利⽤した Amazon Q Business コーディングなど開発者向けに特化した
Amazon Q Developer など、Amazon Q でも様々なサービス‧機能がある。
Amazon Q でできること(抜粋) 8 Amazon Q Developer Amazon Q Business
上記以外にも、Amazon QuickSight、Amazon Connect、AWS Supply Chain などに特化したサービスがございます。 コード⽣成 技術的なトラブルシューティング AI エージェント コードのアップグレード インフラストラクチャの最適化 操作を IaC 化 (Console-to-Code) データソースに基づく Q&A AI エージェント 出典や参考⽂献の提⽰ 外部アプリケーションとの接続 ユーザ情報に基づく回答 ユースケースに基づく回答
AWS で IaC を⾏うには? 9 ※その他、Terraform by HashiCorp 等のツールもございますが、本プレゼンテーションでは AWS
CloudFormation を中⼼にお話しします。 AWS CloudFormation AWS Cloud Development Kit (AWS CDK) 今⽇はこっち
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
(⾃⾝の感想)IaC、初記述は結構⼤変だった。 11 1. 公式ドキュメントをひたすら確認しながら⼟台の作成 2. ⼟台を作成後、各種プロパティの指定 3. デプロイできるように調整 ⽣成 AI
が出てくるまで 1. 公式ドキュメントをひたすら確認しながら⼟台の作成 2. ⼟台を作成後、各種プロパティの指定 3. デプロイできるように調整 ⽣成 AI の活⽤により... より⾼速かつ効率良く 書けるようになった
Amazon Q を使って IaC コードを書いてみよう!
Amazon Q を使⽤していい感じに IaC コードを⽣成するまで 13 1. 構成を定める 2. 構成の分解し⼿順の作成
3. お気に⼊りのエディタにプラグインをインストール、有効化 4. Amazon Q にいい感じにコードを⽣成してもらう 5. ⽣成されたコードの確認、デプロイできるように調整 本プレゼンテーションでは、Visual Studio Codeを利⽤します。また、プラグインのインストール、有効化は完了しているものとします。
想定する構成 14 リソース 個数 VPC 1 Internet Gateway 1 サブネット
1 セキュリティグループ 1 Amazon EC2 1
分解して⼿順にしてみる 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 の作成
Amazon Q で IaC コードを書いてみる 16 VPC: と⼊⼒するだけで提案を出してくれる!(灰⾊で表⽰されているのが提案)
ちなみに...どこまで提案された? 17 1. VPC を作る 2. Internet Gateway を作る 3.
Internet Gateway を VPC にアタッチ 4. VPC にサブネットの作成 5. サブネットにルートテーブルを作成 6. ルートの定義、ルートテーブルに割当 7. 作成したルートテーブルをサブネットにアタッチ 8. セキュリティグループを作成 9. EC2 の作成 (調整は置いておいて)ほとんどの⼿順が完了している! ⼊⼒が同じであっても、図のように必ず同⼀の提案が⾏われるわけではありません。(VPC のみが提案されるなど) 確定後、InternetGateway: など関連するキーワードを⼊⼒することでリソースに関する提案を受け取れます。
⽣成されたものを公式ドキュメントで確認、調整する 18 ⽣成されたプロパティやパラメータの意味、参照されている値が本当に存在するか? VPC の CIDR 範囲は CidrBlock というパラメータを参照しているけど実在しない Name
パラメータを参照しているけど、Internet Gateway でも同じ値を参照している 実在しないパラメータ Name タグの割り当てが不適切なパターン その他、よくあるもの... • セキュリティグループの設定(SSH を全開放したら怖いよね) • ⼀緒に使えないプロパティが使われている(特にセキュリティグループ周り) • 互換性観点から残している⾮推奨のプロパティを使⽤している ⽣成 AI は便利ですが、100% 正しい答えを出してくれるわけではありません。 ⼟台を作ってくれるものという認識で、プロパティを1つ1つ⾒直してみると更に理解が深めることができます。
(個⼈的な)公式ドキュメントを読むコツ 19 前提として、IaC コードを書くことに焦点を当てます。 1. IaC 化したい構成図を考える(なるべくシンプルな構成図がベスト) 2. まずはAWS マネジメントコンソールを介してリソースを作る
3. 作りたい各リソースについて、どんなプロパティがあるのかドキュメントを確認する a. AWS マネジメントコンソールで設定しているプロパティが何に該当するのか⾒てみよう b. 各ページの最下部にサンプルがあるので⾒てみよう 4. 複数リソースが存在する場合は、まずは1つだけ IaC 化をやってみる すごく要約すると • 最初はシンプルに考える • AWS マネジメントコンソールで設定したプロパティ、サンプルをまずは読んでみよう!
先ほどの構成なら... 20 Amazon VPC と Amazon EC2 に分解!
⽣成 AI サービスを使⽤することで IaC の記述が楽になり、よりハードルが低くなりました。 これから使う⽅も、すでに使っている⽅も 新しい記述⽅法に触れてみませんか? 終わりに 21
None