はじめに
2/23(土)に開催されたJAWS DAYS2019のセミナーレポートです。 走り書きの部分もありますので、内容に不備がありましたらご了承ください。
以下、セミナーレポートです。
テーマ
CloudFormation Best Practice~CloudFormationで始める組織改革~
レバレジーズSREチームリーダー 村本雄太さん
会社紹介
- 働きがいのある会社ランクイン!
問題点
- Templateがモノリシックで辛い
- 1つのスタックにいろいろはいってる
- 依存関係がごちゃごちゃ
- 変更時の影響がわからない
- 恐る恐る更新
- もう、ヤダ・・・
- 数千行を超えるTemplate
- 3000行くらいになった
- どこを変更すれば・・・?
- インフラ担当しかいじれない
- ボトルネックになる
- 複数環境に対応しようとした
- 記述が複雑になっていった
AWSのベストプラクティスを実践しよう!!
- 設計時の推奨事項
ベストプラクティス
- stack分割の基準
- ライフサイクルと所有者で考える
- ライフサイクルが異なるリソースを分ける
- 期間限定のキャンペーン用サーバ
- キャンペーン終了後は削除
- キャンペーン用スタックに分割する
- 他の環境に影響を与えない
- キャンペーン用スタックに分割する
- ライフサイクルが異なるリソースを分ける
- 所有権
- DBチーム、WEBチームで運用中のサービス
- チームごとでスタックを分割する
- WEBスタック
- DBスタック
- 影響範囲も簡単
- ライフサイクルと所有者で考える
- 他のスタックの値を安全に使う
- クロススタック参照
- VPCのIDをExportなど
- 参照されているExportは変更できない
- 安全!!
- 参照されているExportは変更できない
- VPCのIDをExportなど
- クロススタック参照
- Securityグループをまとめる
- 例 GlobalIPを付与
- 社内IP許可する専用Template
- 各スタックにネストされたスタックとして追加する
- 共通パターンの保守が楽になる
- 社内IP許可する専用Template
- 例 GlobalIPを付与
- Qiitaにも書きました
(セッション)まとめ
- 記述の簡略化
- 3000行→200行
- parameterの数20→2~5個へ
- チームとスタック分割
- 人のボトルネックがなかった
- 変更コスト激減
- クロススタック参照で安全に
感想&まとめ
ランチセッションだったため、お昼ご飯を急いで食べました。まい泉のお弁当、めっちゃ美味しかったー!
ランチはまい泉のヒレ海老弁当!美味しそう!ランチがあるのめっちゃありがたい。スタッフのみなさんありがとうございます! #jawsdays #jawsug pic.twitter.com/a4PyhpHi6X
— Yokoyama Hironori (@yokoyantech) 2019年2月23日
現在、Staging環境とProduction環境に対して、CloudFormation環境構築をしようとしています。そのため、このセッションは非常に気になっていました。
間違えた。#レバレジーズ さんですね。 pic.twitter.com/r8xb0kL2aC
— Yokoyama Hironori (@yokoyantech) 2019年2月23日
クロススタック参照を使って、複数のスタックから共通の値を使うという手法はベストプラクティスのようです。現在私が作ったスタックもベストプラクティスに近い形であるということが分かって安心しました。
CloudFormationはとても楽しいのでこれからも AWS 設定をコード化していきたいと思います!