紙一重の積み重ね

35歳のエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

【JAWS DAYS2019レポート】CloudFormation Best Practice~CloudFormationで始める組織改革~ #jawsdays #jawsug

はじめに

2/23(土)に開催されたJAWS DAYS2019のセミナーレポートです。 走り書きの部分もありますので、内容に不備がありましたらご了承ください。

以下、セミナーレポートです。

テーマ

CloudFormation Best Practice~CloudFormationで始める組織改革~

f:id:yokoyantech:20190227210033p:plain

レバレジーズSREチームリーダー 村本雄太さん

会社紹介

  • 働きがいのある会社ランクイン!

問題点

  • Templateがモノリシックで辛い
  • 1つのスタックにいろいろはいってる
    • 依存関係がごちゃごちゃ
    • 変更時の影響がわからない
    • 恐る恐る更新
      • もう、ヤダ・・・
  • 数千行を超えるTemplate
    • 3000行くらいになった
    • どこを変更すれば・・・?
    • インフラ担当しかいじれない
      • ボトルネックになる
  • 複数環境に対応しようとした
    • 記述が複雑になっていった

AWSのベストプラクティスを実践しよう!!

  • 設計時の推奨事項

ベストプラクティス

  • stack分割の基準
    • ライフサイクルと所有者で考える
      • ライフサイクルが異なるリソースを分ける
        • 期間限定のキャンペーン用サーバ
        • キャンペーン終了後は削除
          • キャンペーン用スタックに分割する
            • 他の環境に影響を与えない
    • 所有権
      • DBチーム、WEBチームで運用中のサービス
      • チームごとでスタックを分割する
        • WEBスタック
        • DBスタック
          • 影響範囲も簡単
  • 他のスタックの値を安全に使う
    • クロススタック参照
      • VPCのIDをExportなど
        • 参照されているExportは変更できない
          • 安全!!
  • Securityグループをまとめる
    • 例 GlobalIPを付与
      • 社内IP許可する専用Template
        • 各スタックにネストされたスタックとして追加する
        • 共通パターンの保守が楽になる
  • Qiitaにも書きました

qiita.com

(セッション)まとめ

  • 記述の簡略化
    • 3000行→200行
    • parameterの数20→2~5個へ
  • チームとスタック分割
    • 人のボトルネックがなかった
  • 変更コスト激減
    • クロススタック参照で安全に

感想&まとめ

ランチセッションだったため、お昼ご飯を急いで食べました。まい泉のお弁当、めっちゃ美味しかったー!

現在、Staging環境とProduction環境に対して、CloudFormation環境構築をしようとしています。そのため、このセッションは非常に気になっていました。

クロススタック参照を使って、複数のスタックから共通の値を使うという手法はベストプラクティスのようです。現在私が作ったスタックもベストプラクティスに近い形であるということが分かって安心しました。

CloudFormationはとても楽しいのでこれからも AWS 設定をコード化していきたいと思います!