IaC Meetup【Finatext × YUMEMI.grow】イベントレポート
IaC Meetup【Finatext × YUMEMI.grow】
株式会社FinatextとYUMEMI.growのコラボ勉強会を開催しました!インフラ/IaCをテーマにしたカジュアルな勉強会として企画されたこのイベントでは、「インフラって何?」「IaCって聞いたことあるけど…」という方から、普段からインフラやIaCに触れているエンジニアまで、幅広い参加者が集まりました。
今回の勉強会では、特定のクラウドに縛られることなく、AWS、Google Cloud、Azureなど様々なクラウドサービスとIaC技術について幅広く学べる内容となっており、2社のエンジニアと一般募集からのエンジニアによる合計6つのLTが行われました。IaC(Infrastructure as Code)の基本概念から実践的な活用法まで、それぞれの発表者が異なる視点と経験をもとに知見やノウハウを共有してくれました。
このレポートでは、各発表者のLT内容を振り返りながら、IaCの魅力や実践方法について紹介していきます。
「GitHub ActionsからTerraform Planするお話」- koma-kurukuruさん(株式会社ゆめみ)
株式会社ゆめみのkoma-kurukuruさんからは、GitHub Actionsを使ってTerraform Planを実行する実践的な手法について発表していただきました。発表では、CIでPlanを実行するメリットとして、実行環境の再現性向上、インフラの一貫性維持とドリフト検知、依存関係のアップデートの容易さという3つの点が挙げられました。特に「Aさんの環境では動くのにBさんの環境では動かない」という開発でよくある問題を、CI環境で統一することで解決できる点が強調されました。
技術的な実装については、Terraformの環境設定からAWS・Google Cloud・GitHubそれぞれのOIDC認証設定、必要な権限設定まで具体的に解説されました。Plan実行の流れでは、認証準備からterraform init、terraform planまでの各ステップで注意すべきポイントが示され、特にProviderのキャッシュ設定やlockオプションの使い方など、実運用で役立つTipsも紹介されました。RenovateやDependabotと組み合わせることで依存関係の自動更新も可能になり、インフラの継続的な改善が実現できるという実用的な内容でした。
「Terraformの状態について知ろう!」- ぐらにゅさん(株式会社Finatext)
株式会社Finatextのインフラエンジニア、ぐらにゅさんの発表では、Terraformの状態管理について分かりやすく解説しました。発表のきっかけは、ぐらにゅさんが初心者の頃に感じた「なんでコードを変えるとクラウドのリソースが変わるの?」というシンプルな疑問でした。これはJSON形式の状態ファイル(.tfstate)として管理されていて、クラウドリソースとコードを結びつける重要な役割を担っています。
発表では、terraform planがstateとクラウドリソース、コードを比較して差分を見つける流れや、terraform applyがその差分をもとにリソースを操作してstateを更新する仕組みについて説明しました。さらに、importやmovedといったstate操作の話や、他のIaCツールとの比較もあって盛りだくさんでした。Terraformを使ううえで絶対に知っておきたい状態管理について、初心者にもわかりやすく解説しました。
「IaCを覚えることのすゝめ」- 白"雪姫"さん(株式会社ゆめみ)
株式会社ゆめみでSREとSecurity Engineerを兼務する白"雪姫"(しらゆき)さんからは、IaC初心者向けの発表がありました。IaCとは、クラウドが普及して物理的なハードウェアを管理することが少なくなった現在、管理すべきインフラもコードで管理しようという考え方から生まれた言葉です。IaCの便利さとして、同じ環境がすぐに展開できる、プログラム感覚で作って試せる、人による差異が無くなる、知識があればSREやインフラ以外でも実行できるといった点を挙げられました。
特に興味深かったのは、セキュリティエンジニアの視点からIaCの活用について語られた部分で、IAMロールやWAFなどのセキュリティツールもIaCで設定でき、設定漏れなく作ればセキュリティ性が向上すると説明されました。最後に、初心者ほど怖がらずにIaCをやっていこう、IaCはプログラマライクで作られているのでお作法を覚えれば簡易的なものは展開しやすいというエールを送ってくれました。
「CI/CDでセキュリティとアジリティを高めるTerraform」- 小林拓磨さん(株式会社Finatext)
株式会社Finatextのソフトウェアエンジニアで2024 Japan AWS Jr. Championsでもある小林拓磨さんは、TerraformとCI/CDパイプラインを組み合わせた実践的な内容を発表しました。DevOpsエンジニアとしてバックエンド寄りの業務を担当し、AWS学習の早い段階からIaCに触れていたという経験を活かした内容です。発表では、Pull RequestからTerraformのワークフローを動かすためのツール「Atlantis」の活用について詳しく解説しました。AtlantisはPull Requestのコメントをトリガーにしてterraformコマンドを実行し、GitHubとAmazon ECSを連携させてAWSアカウントへのデプロイを自動化します。
さらに、静的解析によるコードポリシーチェックツール「conftest」を使ったDevSecOpsの実現についても紹介し、ALBのアクセスログ設定の必須化やParameter StoreのSecret Value管理など、具体的なセキュリティチェックの例が示しました。最終的に、IaCを用いることでインフラもアプリケーションと同じようにCI/CDを適用でき、コードレビューと静的解析による設定漏れ検知により、セキュリティとアジリティを両立させた開発が可能になります。
「Kubernetesで始めるIaC」- 森祐太朗さん(ウェルスナビ株式会社)
ウェルスナビ株式会社のシステム基盤エンジニア、森祐太朗さんはKubernetesでAWSリソースを管理するという新しいアプローチについて紹介しました。従来のTerraformではなく、Kubernetesの仕組みを使ってインフラを管理する方法です。この手法の魅力は、Kubernetesの設定ファイル(Manifest)を書くだけで済むため複数ツールの設定を管理する必要がなく、認知負荷が軽減されることです。
また、KubernetesのReconciliation Loopという仕組みにより、宣言された状態に自動で近づけてくれるため、差分検知や自動修復が標準で可能になります。具体例として、AWS Load Balancer Controllerを使って開発者がYAMLを書くだけでアプリケーションをインターネット公開できる方法を解説しました。TerraformとKubernetesの比較表もあり、それぞれの特徴がよく分かる内容でした。全てをKubernetesで管理する必要はないものの、開発者の認知負荷を下げる手段として部分的に導入するのは有効だという実用的なアドバイスも印象的でした。
まとめ
今回のIaC Meetup【Finatext × YUMEMI.grow】は、インフラとIaCに関する幅広い知見が共有される非常に充実したイベントとなりました。IaCの基礎概念から実践的な活用法まで、様々な視点からの学びを得ることができました。
技術的な学びのポイント
- Terraformの状態管理の重要性:.tfstateファイルの役割とコードとクラウドリソースを結びつける仕組み
- Kubernetesを活用した新しいIaCアプローチ:Reconciliation Loopによる自動修復と認知負荷の軽減
- セキュリティ観点でのIaC活用:IAMやWAFの設定自動化によるセキュリティ性向上
- CI/CDパイプラインとの統合:AtlantisやGitHub Actionsを使った自動化とDevSecOpsの実現
今後もこのような技術勉強会を通じて、インフラ技術とエンジニアコミュニティの発展に貢献していきたいと思います。ご参加いただいた皆様、ありがとうございました!
Discussion