Slide 1

Slide 1 text

なぜIaCの引き継ぎは
 上手くいかないのか?
 2022/7/22
 コンサルティング部 佐藤雅樹


Slide 2

Slide 2 text

2 自己紹介 佐藤雅樹 - AWS事業本部コンサルティング部 - 好きなサービス: ECS、CDK - @chari7311 2

Slide 3

Slide 3 text

3 今日のゴール - IaCの引き継ぎで不幸になる人を減らす 今日話さないこと - 各IaCツールの詳細や比較 - IaCの概要

Slide 4

Slide 4 text

4 IaCの引き継ぎって辛くないですか?

Slide 5

Slide 5 text

5 IaCツールの引き継ぎ辛み 引き継ぐ側 - 作ったはいいが、自分以外変更してくれない - 久しぶりに見たら手動で変更されていた 引き継がれる側 - 適用したら、何かが壊れるか心配

Slide 6

Slide 6 text

6 オートメーション恐怖症 設定が カオスに 適用すると 壊れるかも と心配 手動変更 怖い! 引用: Infrastructure as Code――クラウドにおけるサーバ管理の原則とプラクティス

Slide 7

Slide 7 text

7 どうしたら引き継ぎが上手くいくか 引き継がれる側の「分からない」を減らす - IaCツールのコードが「分からない」 - デプロイ手順が「分からない」 - IaC管理しているリソースが「分からない」

Slide 8

Slide 8 text

8 IaCツールのコードが「分からない」 課題: IaCツールの使い方が独特で、分からない - モジュール化・ライブラリ化のやりすぎ - 記述量は減らせるが、やりすぎると複雑に - 組織規模が小さい・構成が固まっていない内は慎重に

Slide 9

Slide 9 text

9 失敗例) ECSタスク定義もモジュール化

Slide 10

Slide 10 text

解決策: シンプルに作る(コードをDryにしすぎない) - IaCで実現したいこと、変更のリードタイム短縮 - 変更しやすい・構成を把握しやすい > コードが短い 10 IaCツールのコードが「分からない」

Slide 11

Slide 11 text

11 デプロイ手順が「分からない」 課題: デプロイの属人化(ローカルから手動) - デプロイのために、各ユーザーに強い権限を付与 - 適用した際の履歴どこに残す問題 - 手順が増える・適用忘れが発生する 解決策: CI/CDパイプライン上で自動デプロイ - パイプラインに権限を渡す - パイプライン上に適用履歴が残る - 手順も簡略化できる

Slide 12

Slide 12 text

12 GithubActionsでCDKデプロイ(トランクベース+マルチアカウント)

Slide 13

Slide 13 text

13 IaC管理しているリソースが「分からない」 課題: IaC管理か手動管理か分からない 解決策: ポリシーの策定・タグ付け - IaC管理が向かないリソースもある - 1度しか作らない/変更が少ないものは手動の方が楽 - IaCどこまで使うか(初期構築使い捨て or 運用も) - 共通タグの付与 - IaCツールで作成したリソースに共通タグをつける

Slide 14

Slide 14 text

14 全AWSリソースに共通タグ付け CDK Terraform 引用: https://dev.classmethod.jp/articles/aws_cdk_add_common_tag/ https://dev.classmethod.jp/articles/terraform-aws-provider-default-tags/

Slide 15

Slide 15 text

引き継ぎには、オートメーション恐怖症の克服が必要 克服するためのポイント - シンプルに使う - デプロイを自動化する - IaC管理 or 手動管理のポリシー策定 - タグを活用して、IaC管理か手動か分かりやすく 15 まとめ

Slide 16

Slide 16 text

No content