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
非IaCなAWS環境をCloudFormationでIaC化する
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kefi550
October 08, 2023
Programming
630
2
Share
非IaCなAWS環境をCloudFormationでIaC化する
【AWS】AWS10分LT会 - vol.1
https://aws-likers.connpass.com/event/296768/
kefi550
October 08, 2023
More Decks by kefi550
See All by kefi550
ECSのコストのケチり方
kefi550
0
250
Amazon Pinpoint使ってますか?Amazon PinpointでGmail送信者ガイドラインに対応した話
kefi550
0
770
CO2濃度を監視して生産性向上💪
kefi550
0
41
Other Decks in Programming
See All in Programming
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
550
Kingdom of the Machine
yui_knk
2
860
iOS機能開発のAI環境と起きた変化
ryunakayama
0
190
AI-DLC Deep Dive
yuukiyo
9
4.7k
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
240
ルールルルルルRubyの中身の予備知識 ── RubyKaigiの前に予習しなイカ?
ydah
1
210
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
180
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
410
[RubyKaigi 2026] Require Hooks
palkan
1
230
10 Tips of AWS ~Gen AI on AWS~
licux
5
460
의존성 주입과 모듈화
fornewid
0
150
AI時代のPhpStorm最新事情 #phpcon_odawara
yusuke
0
200
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
110
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Making Projects Easy
brettharned
120
6.6k
Mobile First: as difficult as doing things right
swwweet
225
10k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
150
Code Review Best Practice
trishagee
74
20k
Transcript
非IaCな環境をCloudFormationで IaC化する 2023/10/09 AWS10分LT会 - vol. 1 1 石橋翔太 (@kefi550)
IaCとは https://docs.aws.amazon.com/ja_jp/whitepapers/latest/introduction-devops-aws/infrastructure-as-code.html
• AWSリソースがほぼすべて手で作られており、コード化はされていない 課題 • 本番/ステージングで細かい差分が多い...無意味な差分がある... • 作業(手順)漏れなどによるリリース失敗... • AWSリソース等環境の把握、変更レビューがムズい...(自分が入社したときムズかった)
コード管理されず、手作業によるインフラ管理は盆栽になりやすい 課題 ステージング 本番 とりあえず変更... とりあえず変更... なんでこうなってんだっけ?
• パラメータを変えることで、あるテンプレート から環境ごとのリソースを作る 理想の状態 共通テンプレート stagingリソース productionリソース Env=production Env=staging
無意味な本番/ステージングの差分を防止 理想の状態 共通テンプレート stagingリソース productionリソース Env=production Env=staging
• 既存リソースをCFnスタックにimportする ◦ import作業は多少めんどい ◦ 再作成できない系リソースはこっちがいい • 既存リソースと等価なリソースをCFnで作成し、古いリソースを削除するリプレイス ◦ 作るのはラク
◦ 新たに作ったリソースが要件を満たしているかの確認を注意する必要がある • 新規作成系リソースは必ずCloudFormationで作る心構えをする ◦ 既存リソースをコード化するのに比べてラクなので新規作成時にコード化すべき 既存リソースをCloudFormation化していくアプローチ
• former2 をつかって本番/ステージングそれぞ れのリソースのテンプレートを得る • https://github.com/iann0036/former2 既存リソースをCFnスタックにimportする
• 本番/ステージングの同じ役割のリソースをFn::If 等を使って気合で1つのテンプレートにマージ • スタックにimportして、ドリフトが無いことを確認(ドリ フト検出できないリソースもある ) 既存リソースをCFnスタックにimportする
• 本番/ステージングの変な差分 課題 本番DB sg-xxx TCP 5432 allow from sg-zzz
ステージングDB sg-yyy TCP 5432 allow from 0.0.0.0/0
• Fn::Sub や Fn::Ref等を使って共 通テンプレートを整理する 既存リソースをCFnスタックにimportする
一旦既存の状態をそのままスタックにimportしてから細かく変更することで、影響範囲やレビュー 負荷を小さくできる
• 一旦既存の状態のままスタックにimportしてから細かく変更することで、影響範囲やレビュー負荷 を小さくできる • importの段階で多少の気合が必要 ◦ ドリフト検出を使って、テンプレートが正しく現状と合っているかは確認できる
既存リソースをCFnスタックにimportする
• ほぼコード化されていないAWSリソースをCloudFormationでコード化しています • CFn resource importで安全にCFn移行 コード化していまのところ良かったこと • (リソースの作成変更といった)作業漏れが発生しにくい
• マネコンから作るのに比べて、細かいパラメータへの意識 • レビューしやすい • ゴミが残りづらい • オンボーディングに便利(だと思う) おわりに
インフラはコードで管理しよう