はじめに
こんにちは、ファインディのPlatform開発チームでSREを担当している原(こうじゅん)です。
2025年は、ファインディにとって新規サービスリリースが相次ぐ年でした。
Platform開発チーム(以降、SREチーム)では、この1年間で6つのサービスのインフラ環境を構築してきました。
スピード感を持った環境構築を実現するために、私たちがどのような工夫を行ったのか、今回はTerraformの汎用モジュールを活用した取り組みについてお話しします。
- はじめに
- 2025年、6つのサービスをリリース
- スピード感のある環境構築で直面した課題
- Terraformでの汎用モジュールの導入
- 汎用モジュールで解決した課題
- Terraformのplanは成功するけどApplyはコケる問題
- まとめ
2025年、6つのサービスをリリース
2025年、SREチームでは次のサービスのインフラ環境を構築しました。
- Findy Conference
- Findy AI+
- Findy Team+ AIチャットボット
- Findy ID
- Findy Insights
- アーキテクチャ壁打ちAI by Findy Tools
これらのサービスは、それぞれStaging環境やProduction環境といった複数の環境が必要であり、SREチームとしては短期間で多数の環境構築を実施する必要がありました。
スピード感のある環境構築で直面した課題
新規サービスのリリースラッシュの中で、私たちは次のような課題に直面しました。
サービス開発はスピード感を持って行われており、インフラ環境の構築にも「2週間でStaging環境とProduction環境を用意してほしい」といった依頼も珍しくありません。サービスリリースのタイミングが重なると、複数の環境構築依頼が同時に舞い込むこともあります。
SREチームは環境構築だけに専念できるわけではなく、既存サービスの運用改善、障害対応、セキュリティ対応なども並行して進める必要があります。
2025年当時、SREチームのメンバーは4名でした。この人数で、これだけのサービスリリースに対応するのは容易ではありませんでした。
Terraformでの汎用モジュールの導入
これらの課題を解決するために、ファインディのプロダクトで頻繁に利用するAWSリソース(ECS、ALB、RDS、VPCなど)を、再利用可能なTerraformモジュールとして整備しました。
これらを「汎用モジュール」と呼んでいます。
汎用モジュールの目的は、次の2点です。
- スピード: 環境構築にかかる時間を大幅に短縮する
- 品質: 標準化されたモジュールを使うことで、設定ミスを減らし、品質を担保する

汎用モジュールは、HCP Terraform(旧Terraform Cloud)のプライベートレジストリに登録しています。これにより、チーム内で簡単にモジュールを共有・再利用できるようになりました。
Network、Container、Databaseなど、様々なパッケージを整備
汎用モジュールは、リソースの機能ごとにパッケージを分けて整備しています。
例えば次のようなカテゴリーに分けています。
- Network: VPC、サブネット、ルートテーブル、NATゲートウェイなど
- Container: ECS、Fargate、ALB、タスク定義など
- Database: RDS、Aurora、パラメータグループなど
- その他、必要に応じてモジュールを追加
モジュールごとにパラメーターを指定すれば環境が立ち上がる仕組み
汎用モジュールを使えば、必要なパラメーター(プロジェクト名、環境名、リソースサイズなど)を指定するだけで、標準化された環境が立ち上がります。
例えば、次のようなイメージです。
module "database" { source = "app.terraform.io/Findy/findy-XXXX-platform/aws//modules/database" version = "X.XX" environment = "staging" engine_type = "postgresql" db_parameter_group_name = "sre-staging" instance_class = "db.t4g.medium" number_of_instances = 2 preferred_backup_window = "20:05-20:35" service_name = "sre-sandbox" }
このように、モジュールを組み合わせることで、複雑なインフラ環境を短時間で構築できます。
汎用モジュールで解決した課題
汎用モジュールの導入により、品質が担保されてスピード感のある構築が可能になりました。
汎用モジュールを使うことで、モジュール内の構成ならProduction環境とStaging環境を含めても最短3日で完了できるようになりました。
またパラメーターを指定するだけで環境が立ち上がるので、新しいメンバーでもすぐに戦力になれる仕組みを作ることができました。
Terraformのplanは成功するけどApplyはコケる問題
汎用モジュールの導入で大きな成果が得られた一方、汎用モジュールから呼び出した構成でTerraformのplanは成功するけどApplyはコケるという問題も発生しました。
この問題は、構築スピードの低下につながるため、Terraform Testを導入して対処しました。
詳細については、次の記事で詳しく紹介していますので、ぜひご覧ください。
まとめ
2025年、SREチームは多数のインフラ環境を構築しました。その裏側で、Terraformの汎用モジュールを活用することで、スピード感と品質を両立した環境構築を実現しました。
汎用モジュールの導入により、SREチームの環境構築はスピードアップしましたが、まだまだ改善の余地があります。
現在は、SREチームが主体となってインフラ環境を構築していますが、今後は開発チームが主体となって容易にインフラ構築できるPlatformを作りたいと考えています。
これにより、開発チームがより自律的にサービスをリリースできるようになり、SREチームはより注力すべきタスクに集中できるようになります。いわゆるPlatform Engineeringの取り組みを進めていきます。
ファインディでは一緒に会社を盛り上げてくれるメンバーを募集中です。 興味を持っていただいた方はこちらのページからご応募お願いします。