「Terraform Cloud導入で最もよかったのは、社内の開発チームに共通の Terraform実行基盤を用意できたことです。強い権限が必要なTerraform を安全かつすぐに使い始めるための環境が整いました。Terraformは全社 的に利用していますので、開発の効率が確実に向上しました。」
牧田力氏、株式会社マネーフォワード サービス基盤本部 インフラ部
テクノロジーとデータの力で課題解決
マネーフォワードは企業ビジョン「すべての人の、『お金のプラットフォーム』になる。」のもとに、個人だけではなく法人や金融機関も対象として、テクノロジーの力でお金に関する課題を解決するサービスを提供しています。お金とは生きていく上でのツールや手段であるものの、自分自身や家族を守るため、あるいは夢を実現するために欠かせないものでもあります。マネーフォワードのミッション「お金を前へ。人生をもっと前へ。」には、ユーザーの人生を飛躍的に豊かにすることで、より良い社会作りに貢献するという想いがこめられています。
マネーフォワードでは行動指針に「ユーザー フォーカス」、「テクノロジー ドリブン」、「フェアネス」を定めています。一つにテクノロジーを挙げているように、先進的なテクノロジーがマネーフォワードの強みです。全社員のうちエンジニアやデザイナーが約4割を占めており、サービス開発を積極的に進めています。近年では創業当初の個人向けPFMだけではなく、バックオフィス向けSaaS、FintechやDX支援、ファイナンスサービス、SaaSマーケティング支援など事業領域を拡大しているところです。
課題
Terraformの運用方法やシークレット管理が課題に
マネーフォワードの開発環境は実に先進的です。スクラムをベースとし、細かい更新を繰り返すアジャイル開発を進め ています。早い段階からDevOpsを意識し「You Build It, You Run It」(DevOpsが登場する前からAmazon社内で 呼びかけられていた指針)を原則として、開発チーム内で開発と運用の両方を担えるような体制を目指しています。そのためには運用の適切な権限委譲が重要となり、ここにTerraformが重要な役割を果たしています。
2017年ごろから、マネーフォワードではAWSの構成管理のためにOSS版Terraformの利用を開始しました。社内で 普及していくにつれ、それぞれが個人の端末からTerraformを実行するなど、実行環境が統一されていないことの弊害が浮上してきました。
例えば、利用方法が標準化されていないため、開発生産性の低下につながるという懸念がありました。また Terraformでは操作対象となるクラウドリソースに対して強い権限が必要になるため、潜在的なシークレット漏えいのリスクが懸念されていました。万が一、シークレットが漏えいすれば、顧客を危険にさらすことにもつながります。シークレットを厳密に管理する必要がありました。
- Terraformの実行環境が統一されていない
- Terraformの利用方法が標準化されていない
- シークレット管理でリスクを抱えている
全社的にTerraformが普及していくなか、マネーフォワード サービス基盤本部 インフラ部の牧田力氏は当時を振り返り「(クラウド運用管理のための)共通基盤の整備が必要だと感じた」と言います。特に重視したのはシークレット管理が安全に行えることと、Terraform実行時の細かい権限制御でした。
他の製品や選択肢とも検討を重ねたところ、ある製品では開発者がシークレットを取得できてしまうこともあり除外しました。最終的にGitHubとのインテグレーション(親和性)や構築に手間がかからないなどが決め手となり、Terraform Cloudを選択しました。
ソリューション
Terraform Cloudで標準化、シークレット管理の厳格化
現状マネーフォワードでは、AWSとオンプレミスが共存する環境でTerraform Cloudを利用しています(OSS版Terraformも併用)。VM(仮想マシン)数はAWSで400、オンプレで200、マルチテナントのクラスタは約10です。Kubernetesも運用しています。また、Terraform Cloudのモジュラー数は約100で運用しています。
Terraform Cloudのメリットについて、牧田氏は「Terraform利用時の手間が削減できて、ユーザーはTerraformのコードを書くことだけに集中することができるようになりました。またTerraformを安全かつ速やかに利用できるようになったので、さらにTerraformの利用が広がりました。それはIaCの恩恵(変更へのレビューや再現性)を通して、インフラ管理をより堅牢なものにできたと感じています」と言います。
例えば新しいプロジェクトでTerraformの利用を開始する場合であれば、Terraform Cloud導入前はTerraform の標準的な運用方法が確立されていなかったため、Terraformの実行場所、シークレットの取り扱い、VCSの管理、Terraform planのレビュー方法などを、個別に考える必要がありました。一方、導入後はTerraform Cloudの実行フローでTerraformを適用できて、シークレット管理方法も標準化されて漏えいリスクも低減しました。
牧田氏は「Terraform Cloud導入で、毎日数十回は手動で行われていたTerraformのplan/applyが自動化されたことで、ユーザーは他の本質的なことに時間を割くことができるようになりました。これによりサービスの開発速度が向上し、ひいては顧客への価値提供が加速できたと思います。Workspaceごとに細かく権限を管理できることや、stateの管理ができることも気に入っています」と話しています。
ビジネスの成果
- Terraformの運用が標準化でき、生産性向上、開発速度向上
- Terraformの社内利用がさらに広範囲に
- Terraform(IaCの恩恵)でインフラ管理の堅牢性向上
- シークレットの漏えいリスク低減
コスト効果を数字で表すことは難しいと断りを入れつつも、牧田氏は「日々のTerraform運用で開発者が費やす時間が少なくなったことは、TFCB(Terraform Cloud for Business)にかかるコストを鑑みてもペイしていると思う」と評価しています。
そして、今後の展開について牧田氏は「AWSの認証をアクセスキーではなく一時的なセッションで行えるようにしたいです。またAWSの強い権限をTerraformに持たせているので、短い時間で有効期限が切れるようなトークンを利用したいと考えています」と語ってくれました。
まとめ
マネーフォワードはOSS版Terraformから運用を開始したものの、Terraformの実行環境が統一できておらず、非生産的であることやシークレット管理でセキュリティ上のリスクが懸念されていました。Terraform Cloudを併用することで、Terraformの運用を標準化し、シークレット管理をより厳格にしてセキュリティ強化し、開発者の生産性を高めることで顧客への価値提供を早めることに成功しました。
担当者
牧田力 氏 サービス基盤本部 インフラ部 株式会社マネーフォワード
牧田氏は、入社時から現在まで、マネーフォワードで提供しているサービスの共通イン フラ基盤の開発と運用を担当。全社的なサービス開発速度向上に貢献しています。
テクノロジスタック
- Infrastructure:
- AWS
- Version control:
- GitHub
- Provisioning :
- HashiCorp Terraform Cloud, Terraform OSS
- Orchestrator:
- AWS EKS