現在関わっているプロジェクトにおいて進行中のKubernetes移行で取り入れた技術や方法について、少し紹介したいと思います。現状の構成がベストプラクティスであるということではなく、試行錯誤した結果の途中経過となりますが、何らかのヒントになれば幸いです。CLIでの構築を考えていました。その理由としては、Terraformの適用環境はCodeBuildである(IAMロールを使う)kubectl実行環境は別にある(EC2+SessionManager+SSHの踏み台的な環境)という前提で、kubectlの実行環境でクラスタを作成したほうがaws-authのConfigMapの適用で考えることが少なくて済む、という考えがありました。現在はTerraformで管理する対象を増やしています。大きな理由としては、アプリケーションをデプロイする手前までの環境は自動化したいというところです。modulesを活用しつつ構築することで、アプリケーション側のデプロイに専念できる形にする、というのが現時点での答えとなっています。Kustomizeの利用アプリケーションのマニフェストをdev/staging/productionといった環境ごとに重複しない形で管理できるようにKustomizeを利用しています。デプロイデプロイはArgoCDを選定しています。Kuberneteshttps://argoproj.github.io/argo-cd/これがベストかどうかはまだわかりませんが、利用事例の多さ、開発の頻度、Helmで一発で導入できること、Kustomizeへの対応、見やすいWebUIなどが魅力的だと感じています。確定はしていませんが、ECRへのイメージプッシュからLambdaを起動して、argocdのCLIからプッシュされたイメージのタグを指定してデプロイする方法(GitOps)が良さそうだと考えています。Overrideshttps://argoproj.github.io/argo-cd/user-guide/parameters/おわりにとても簡単な解説にはなりますが、以上の組み合わせでKubernetesまわりの環境を構築しています(しようとしています)。まで優しくお気軽にメンションしていただけたら、こちらとしても大変ありがたい限りです。