Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
異次元のCloudFormation 拡張コマンド~Rain~
Search
watany
May 24, 2024
Technology
1
830
異次元の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
たかが特別な時間の終わり / It's Only the End of Special Time
watany
31
8.5k
まだ間に合う! 2025年のhono/ssg事情
watany
3
860
AIのメモリー
watany
13
1.7k
AIエージェントが書くのなら直接CloudFormationを書かせればいいじゃないですか何故AWS CDKを使う必要があるのさ
watany
21
9.2k
Coding Agentに値札を付けろ
watany
3
1k
Vibe Codingをせずに Clineを使っている
watany
19
7.9k
ミリしらMCP勉強会
watany
4
1.1k
RemovalPoliciesのことを知ろう!
watany
2
260
エンジニアに許された特別な時間の終わり
watany
105
220k
Other Decks in Technology
See All in Technology
チーリンについて
hirotomotaguchi
6
2.1k
Fashion×AI「似合う」を届けるためのWEARのAI戦略
zozotech
PRO
2
870
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
1.8k
ChatGPTで論⽂は読めるのか
spatial_ai_network
11
29k
AI駆動開発における設計思想 認知負荷を下げるフロントエンドアーキテクチャ/ 20251211 Teppei Hanai
shift_evolve
PRO
2
430
RAG/Agent開発のアップデートまとめ
taka0709
0
190
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
260
Oracle Cloud Infrastructure IaaS 新機能アップデート 2025/09 - 2025/11
oracle4engineer
PRO
0
170
学習データって増やせばいいんですか?
ftakahashi
2
510
JEDAI認定プログラム JEDAI Order 2026 エントリーのご案内 / JEDAI Order 2026 Entry
databricksjapan
0
140
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
17
6.7k
打 造 A I 驅 動 的 G i t H u b ⾃ 動 化 ⼯ 作 流 程
appleboy
0
360
Featured
See All Featured
How to build a perfect <img>
jonoalderson
0
4.6k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
120
How Software Deployment tools have changed in the past 20 years
geshan
0
29k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
20
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
190
The browser strikes back
jonoalderson
0
59
Fireside Chat
paigeccino
41
3.7k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
240
Automating Front-end Workflow
addyosmani
1371
200k
Writing Fast Ruby
sferik
630
62k
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