Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
非IaCなAWS環境をCloudFormationでIaC化する
Search
kefi550
October 08, 2023
Programming
670
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
非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
270
Amazon Pinpoint使ってますか?Amazon PinpointでGmail送信者ガイドラインに対応した話
kefi550
0
820
CO2濃度を監視して生産性向上💪
kefi550
0
50
Other Decks in Programming
See All in Programming
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.5k
カツオ、ご期待ください
suneo3476
0
140
Java 27新機能 / Java 27 new features
kishida
2
190
Rでドレミ/Do-Re-Mi_with_R
florets1
0
120
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.7k
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
110
APNsからLive Activityを開始する話
yumnumm
0
150
phperだってパンチカードでコーディングしたい
o0h
PRO
0
170
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
170
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
420
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
220
The Rails Doctrine Decade
koic
2
470
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
320
RailsConf 2023
tenderlove
30
1.6k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
520
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
780
Facilitating Awesome Meetings
lara
57
7.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
A better future with KSS
kneath
240
18k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
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移行 コード化していまのところ良かったこと • (リソースの作成変更といった)作業漏れが発生しにくい
• マネコンから作るのに比べて、細かいパラメータへの意識 • レビューしやすい • ゴミが残りづらい • オンボーディングに便利(だと思う) おわりに
インフラはコードで管理しよう