Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
異次元のCloudFormation 拡張コマンド~Rain~
Search
watany
May 24, 2024
Technology
1
680
異次元のCloudFormation 拡張コマンド~Rain~
Hibiya.Tech #5「愛情爆発!わたしの推し技術を語りたい」にてお話しした内容になります。
https://classmethod.connpass.com/event/316770/
watany
May 24, 2024
Tweet
Share
More Decks by watany
See All by watany
AIエージェントが書くのなら直接CloudFormationを書かせればいいじゃないですか何故AWS CDKを使う必要があるのさ
watany
18
7k
Coding Agentに値札を付けろ
watany
3
820
Vibe Codingをせずに Clineを使っている
watany
19
7.5k
ミリしらMCP勉強会
watany
4
960
RemovalPoliciesのことを知ろう!
watany
2
140
エンジニアに許された特別な時間の終わり
watany
101
180k
AI Agent時代なのでAWSのLLMs.txtが欲しい!
watany
4
1.2k
宇宙最速のランチRecap LT会(AWS re:Invent 2024)
watany
2
760
苦いビールを避ける冴えたやり方
watany
2
420
Other Decks in Technology
See All in Technology
AWS CDK 入門ガイド これだけは知っておきたいヒント集
anank
5
600
Delegating the chores of authenticating users to Keycloak
ahus1
0
180
QuickSight SPICE の効果的な運用戦略~S3 + Athena 構成での実践ノウハウ~/quicksight-spice-s3-athena-best-practices
emiki
0
260
Delta airlines Customer®️ USA Contact Numbers: Complete 2025 Support Guide
deltahelp
0
1.1k
セキュアな社内Dify運用と外部連携の両立 ~AIによるAPIリスク評価~
zozotech
PRO
0
100
マルチプロダクト環境におけるSREの役割 / SRE NEXT 2025 lunch session
sugamasao
1
390
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
55
22k
話題の MCP と巡る OCI RAG ソリューションの旅 - Select AI with RAG と Generative AI Agents ディープダイブ
oracle4engineer
PRO
5
110
Getting to Know Your Legacy (System) with AI-Driven Software Archeology (WeAreDevelopers World Congress 2025)
feststelltaste
1
180
いつの間にか入れ替わってる!?新しいAWS Security Hubとは?
cmusudakeisuke
0
160
Claude Code に プロジェクト管理やらせたみた
unson
8
4.9k
SREの次のキャリアの道しるべ 〜SREがマネジメントレイヤーに挑戦して、 気づいたこととTips〜
coconala_engineer
1
1k
Featured
See All Featured
Visualization
eitanlees
146
16k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Practical Orchestrator
shlominoach
189
11k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
510
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Code Review Best Practice
trishagee
69
19k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
740
Transcript
Hibiya.Tech #5 異次元のCloudFormation 拡張コマンド~Rain~ 2024-05-24
自己紹介 渡邉 洋平(watany) • NTTテクノクロス株式会社 • JAWS-UG東京 運営 • Japan
AWS Top Engineer 2023
CloudFormation運用をめぐる状況は厳しく • AWS CDKでラップして使う • AWS SAM派の人はわかる • 素で使うのは負け ※個人の見解です
Rainがいるぜ
Rain • CloudFormation(以下CFn)のテンプレート、スタックを管理するCLIツール • 公式RepositoryでOSSの形で提供されている • 現状も開発が継続されている(重要) https://github.com/aws-cloudformation/rain
CFnそのままだと何が困るか CFnの見直し理由 1. Templateを書きづらい • SupersetのCDKやSAMで解決する? • とはいえ既存資材がCFnのことはある。 • 生成AIの支援があれば、CFnで十分作れることも
2. Stackを運用しづらい • CDKやSAMでもよいが、この点ならRainで解決できる つまり、CFn運用へのペインを解決したいだけならRainが役に立つ
Rainの実例 CFnテンプレートのCRUD操作を例に紹介します 1. Create 2. Read 3. Update 4. Delete
1. Create
1.Create with AWS CLI • 作ったら非同期でStackIdだけが返却される。 ◦ 今の状態は? 失敗したら?
1.Create with Rain • 変更セットを表示し、y/nでデプロイ前確認がある • デプロイ中の状況をコンソールに出力される • 不正なテンプレートなら、ロールバックまでを表示
1.Create with Rain • OKテイク
2. Read
2.Read with AWS CLI • Stackの状況(StackName/StackStatus)を知りたい ◦ CLIの場合はjqを組み合わせると便利
2.Read with Rain • rainは同等の操作が簡単 • 「rain ls <stack-name>」でスタックの状況確認 ◦
「rain ls」でRegion内のスタック一覧、「rain ls -a」で全Region
2.Read with Rain • 「rain cat <stack-name>」でスタックの詳細確認
3. Update
3.Update with AWS CLI • Createと別のコマンド、Createと同じ問題 • > 作ったら非同期でStackIdだけが返却される。 ◦
> 今の状態は? 失敗したら?
3.Update with Rain • Createと同じ`rain deploy`でUpdate可能!(CDK相当)
4. Delete
4.Delete with AWS CLI • Deleteすると結果が標準出力されない(?!) ◦ 今の状態は? 失敗したら?
4.Delete with Rain • rain rm <stack>で「スタックの状態」「削除状況」「削除成否」を表示 ◦ 驚き最小限の挙動
いかがでしたか? • ここまでのまとめ ◦ CloudFormation APIの非同期性をRainが吸収してくれる ◦ コマンドも直観的。Linuxユーザなら扱いやすい。 • 想定問答
◦ これってAWS CDK CLIでも同様なのでは? ▪ はい。ただ、他にも色々できます。 ▪ CDKユーザも以降の機能のためにrainを入れた方がいいです。
5. CRUD以外にできること
Build
rain build • CFnテンプレートのひな型を作るためのコマンド • 例: うろ覚えでAPIDestinationを作る場合、 ◦ 公式ドキュメント無しでも「--list」で探して……
rain build • rain buildの引数に入れると、ひな型が出てくる!
rain build • -b(bare)を指定すると、必要最小限のひな型に
Logs
rain logs • Stackのイベントを人間が読みやすい形式にスッと出せる。 ◦ 「aws cloudformation describe-stack-events」はevent毎に10行くらいあるので読みづ らい。 ◦
マネジメントコンソールで見たい理由の半分 (私見)が解決
rain logs • CREATE_FAILEDの経緯も抜粋して表示。 ◦ logs –allで全表示できる
Tree
rain tree • CFn Templateの構造を表示してくれる
rain tree • dot形式も対応しているので、認知負荷をさらに減らせる
いかがでしたか? (2回目) • ここまでのまとめ ◦ RainはCRUD操作だけでなく、CFn Stackの運用に役立つ機能をCUIで提供。 ◦ 慣れるとGUでの参照より、CloudShell+Rainが快適になる! •
この辺の詳しい解説はカックさんの Blogも詳しい https://kakakakakku.hatenablog.com/entry/2023/05/05/110658
6. も~っと!CRUD以外にできること
Stackset
rain stackset <deploy / ls / rm> • rain stackset
でStackSetのCRUD操作が可能に! ◦ こちらの素のAWS CLI叩くの不便なのでありがたい。。。
Forecast
rain forecast (Experimental) • 実際のStack作成前に、失敗を予測する機能 ◦ Not Linter (rain fmtはTemplateのFormatter)
• 例:作成するBucket名被りを事前にチェック
• 現状は開発中。ロードマップの例 ◦ EIP制限のチェック ◦ EC2 Instance Typeが指定したAZで利用可能か? ◦ VPC
FlowlogsのFormatエラー ◦ etc… • ロードマップはGithub ◦ https://github.com/aws-cloudformation/rain/tree/main/internal/cmd/forecast rain forecast (Experimental)
Build + Claude3
• rain build…ひな型に値埋めてほしいな。 • 生成AIってやつで何とかならんか? → なる。 ◦ --model, --prompt
で指定する。 rain build + Generative AI
• こういうのが作れる ◦ ちなみにHaikuで作ると 上手く動かない … rain build + Generative
AI
• Opusで解決だ! ◦ わたしが追加しました rain build + Generative AI https://github.com/aws-cloudformation/rain/pull/374
まとめ • RainはCFnユーザ(SAM/CDK含む) 必須のツールである ◦ 悩んだら導入するくらいで良い • いまだに機能開発されて、まだまだ成長している • 2024年もRainを使ってこ
◦ https://github.com/aws-cloudformation/rain