インフラ構築の最適化を目指したTerraform導入
株式会社カンリー / 井上慶人
EM / EM / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
利用プラン | 利用機能 | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|---|
コミュニティ版(旧OSS) | インフラ構築 | 10名以下 | 2022年1月 | B to B |
利用プラン | コミュニティ版(旧OSS) |
---|---|
利用機能 | インフラ構築 |
ツールの利用規模 | 10名以下 |
ツールの利用開始時期 | 2022年1月 |
事業形態 | B to B |
アーキテクチャ
アーキテクチャの意図・工夫
Terraformを管理するリポジトリ内でプロダクトごとのモノレポ構成を取っている。 よく使うものをモジュールとして作成することで、再利用性とセキュリティを高めることができている。
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
- インフラがマネジメントコンソールから構築されており、担当者がレビューなしに作れるようになっていた
- レビューされていないため、考慮漏れが発生していた
- 同じ環境を構築する際に同じだけ工数がかかる
どのような状態を目指していたか
- 適切なレビューを通して構築できるようにすること
- 担当者に依存せずナレッジとして蓄積できること
- 同様な環境を作る際も工数を圧縮して構築できること(自動化含む)
- 単にインフラを構築するだけではなく、セキュリティも考慮できるようになること
比較検討したサービス
- CloudFormation
- Pulumi
比較した軸
- 単一クラウドだけではなく、複数のクラウドサービスを取り扱えること
- 利用ユーザーが多く、書籍やインターネットから情報が取得しやすいこと
選定理由
- 無料で利用できる点
- 複数のクラウドサービスで利用できる点
導入の成果
改善したかった課題はどれくらい解決されたか
ほぼすべて解消できた。 レビューを通してインフラを構築できるようになり、ガバナンスが向上した。 コードが溜まっていくと同時にナレッジも溜まっていき、新しいプロダクトを作成するときなどの負荷が軽減できている。
どのような成果が得られたか
コード化することで属人化防止、ならびに、自動化の推進も容易となった。
導入時の苦労・悩み
コミュニティ版で試してみることにしたが、CI/CDを自前で組み立てる必要があり時間がかかった。
導入に向けた社内への説明
上長・チームへの説明
- コミュニティ版(旧OSS)であれば無料で試せること
- CI/CDによってレビュアーがコードだけではなく実行結果(plan)の内容も確認でき、適切な開発フローに則って構築できるようになること
- レビュー時にtfsecやtflintなどと合わせることで、セキュリティ・ガバナンスも向上が期待できること
活用方法
チームで週10ほどのPRが作られている。
よく使う機能
providerだと以下の通り
- AWS
- Google Cloud
- Datadog
- MySQL(RDBはAurora MySQLを活用しており、ユーザーやデータベースをTerraformから作成している)
ツールの良い点
- コミュニティ版(旧OSS)は無料で利用可能
- ナレッジが豊富で初学者の学習難易度が低い
- マルチクラウドでIaCが実践可能
ツールの課題点
- コミュニティ版の場合、CI/CDは自前で準備が必要
- 利用料金としては無料なものの、マネジメントコストが一定かかってくる
ツールを検討されている方へ
マルチクラウド構成でIaCを実践するならファーストチョイスとして検討してみて良いかと思います。 ただ自前で運用する場合、CI/CDパイプラインの検討やセキュリティの考慮が必要となってくるため、メンテナンスコストがかかってきます。 Terraform Cloudを利用すればそのあたりの対応も可能なため、規模感を考慮しながら導入できると良いかと思われます。
今後の展望
大規模な開発やセキュリティ面での要求が上がった際にはTerraform Cloudへの移行を検討する予定です。
株式会社カンリー / 井上慶人
EM / EM / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
よく見られているレビュー
株式会社カンリー / 井上慶人
EM / EM / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法