複数のパブリッククラウドを活用する上でのオーバーヘッド、過剰な投資を抑制
パブリッククラウドの活用はますます広がり続けている。ガートナーが2021年6月に発表したリリースによると、2020年の大手パブリッククラウド(Amazon、Microsoft、Alibaba、Google、Huawei他)の年間成長率平均は40.7%、総支出額では643億米ドル(約8.3兆円 ※1ドル130円換算)にものぼる。
パブリッククラウドの利用が広がり、それぞれのクラウドベンダーの良いところ取りをしようとするとマルチクラウドが当たり前のようになってくる。一方で、複数のクラウドサービスを使い分けるとなると運用管理が複雑化してしまう。なかにはオーバープロビジョニングや非生産的な運用からくる過剰な支出やリスクもあると見込まれる。
HashiCorpはクラウド運用、特にマルチクラウド運用におけるオーバーヘッドを解消することを目的としてプロダクトを開発および提供している。プロダクトはOSSで開発し、企業で利用するための商用版を提供するという形でのビジネスを展開。2012年にアメリカで創業し、2021年12月にはNASDAQ上場を果たした。
商用版として提供しているプロダクトには、インフラ構成をコードで管理する「Terraform」や「Packer」、シークレットや暗号鍵を管理する「Vault」、マイクロサービスにおけるネットワーク管理の課題を解決する「Consul」、コンテナでの稼働を想定したアプリケーションの一元管理や運用の自動化の「Nomad」がある。
HashiCorp Japanカントリーマネージャーの花尾和成氏は、プロダクトの特徴として「それぞれのレイヤにおいて(マルチクラウドで)横串で利用できて、ワークフローを統一できます。そして市場への投入スピードを高め、ツールの統廃合や運用の自動化を進め、ポリシー統合でガバナンス強化やリスク極小化の価値をもたらします」と話した。
横河電機のDevOps Journey なぜOSS版からTerraform Enterpriseへ移行したのか
続いて、横河電機 開発DX推進部長の藤原匠氏が、同社のDevOps推進の過程でTerraformを導入した経緯を紹介した。横河電機はグローバル展開が進んでいる製造業で、主に制御、計測、情報に関する事業を展開。顧客は何らかの自社製品を工場で生産している企業が多く、工場にあるセンサー類からのデータを統合した制御システムなどを提供している。
同社では早い段階から開発環境の効率化に取り組んでおり、藤原氏は「DevOps Journey」として経緯を紹介した。2013年、製品セットアップをChefで自動化し始めたことから始まる。同社の製品はインストール後に様々な設定をする必要があり、設定をJSONで記述してChefに読み込ませるようにした。翌年の2014年にHashiCorpのVagrantと組み合わせることで、検証環境を自動的に構築できるようになり、社内で普及していった。
2016年からはAWSの利用を開始し、翌年にはビルドのためのシステムをクラウドへと移行した。ここでIaC(Infrastructure as Code)を実践するためにOSS版のTerraformを使い始めたという。当時はAWSのみだったので、「AWS CloudFormation」も選択肢にあった。あえてOSS版 Terraformを選択した理由として藤原氏は「将来を考えると、マルチクラウドに対応したほうがいいだろうとの結論に至ったため」と明かす。2019年からはMicrosoft Azureを使用することになり、マルチクラウドを想定した選択は「目論見通り」と藤原氏は言う。
とはいえ、OSS版Terraformでは課題も見えてきた。「機能的には特に問題ないものの」と断りを入れつつ、藤原氏は当時の課題を3点挙げた。まずはチームで利用する場合の実行環境の構築や管理だ。GitHubでプルリクエストやレビューをするなかで、OSS版では手間がかかってしまっていた。次にサポートについて、Terraformは利用者が多いため、課題やトラブルが起きてもWebで検索すればおおよそ解決策は見い出せた。しかし「企業での利用を考えると、有償でもサポートが欲しかった」と藤原氏は述べる。最後に挙げたのは、既存コード再利用時の不具合だ。何らかのソースを流用すると(差分をとれるコマンドはあったものの)意図しない設定が混入する可能性があった。
対策を模索していたところ商用版のTerraform Cloudを発見し、HashiCorpにコンタクトして導入を開始。導入効果として藤原氏は4点を挙げた。1点目はマネージドサービスで実行環境の構築や管理の工数が削減できたこと。「本家本元の開発をしているHashiCorpが管理するSaaSサービスなので安心感がありますし、構築や管理でやらなくてはならないことがずいぶん減りました」と藤原氏は言う。
2点目はGitHubとの連携だ。Terraform Cloudの標準機能でGitHub連携があるため、プルリクエストをトリガーに自動でTerraformを実行できる。「ささっと設定して始められるのは、使う立場として非常に便利。OSS版で創意工夫していた時と比べて工数がかなり削減できて、お支払いしている料金よりもかなり得をしているのでは」と藤原氏は満足げだ。
3点目は公式のサポートで得られる安心感、そして4点目はコストとセキュリティの検証である。クラウドサービスの設定適用前にコストを検証できるため、不必要な利用料を防ぎコストの最適化に役立てられる。
ここまで進めた結果、次に浮上したのがリモートワークにおける育成の課題だ。藤原氏は「Terraformがある種の言語のようにコーディングが必要なので、(コロナ禍で)リモートワークとなりコーディングできる人を増やすところが難しいと感じていました」と話す。そうしたなか「モブプロ(モブプログラミング)」スタイル(考える人とタイピングする人など手分けして複数人でコーディングすること)を通じて、Terraform未経験者のスキル習得につなげられたという。
あらためてIaCの価値として、藤原氏は次のように述べる。「IaCがインフラ設定をコード化するため、ソフトウェア開発と同じアプローチがとれます。また作業結果がコードとして残り、再現性が高いため今後の資産とすることができます。これまでの活動を通じて、IaCに投資していくことは組織として重要ではないかと私は考えています」
さらなる活用に向けて藤原氏は意欲的だ。「当初Terraform Cloudを導入したころと比べると、かなり機能が充実してきています。継続的に改善されていくところがSaaSの利点であり、Terraform Cloudはそれを体現していると思います。一方、我々がTerraform Cloudの各種機能を有効に活用できているかと問われれば『まだまだ』ですので、ガードレールのようにセキュリティを担保できるようなポリシーを充実させていきたいです。またSelf-hosted agentにも興味があるので今後試してみたいと思います」と熱く語る。
なおSelf-hosted Agentとは、オンプレミス環境をTerraform Cloudとつなげてプロビジョニングする機能だ。クラウド環境の自動化はTerraform Cloudで実現できているものの、社内でまだ手が届いていないインフラにも自動化を進めていくことが期待できる。またシークレットや暗号鍵などの管理に使えるVaultとの連携に挑戦する予定だそうだ。
さらに各種Terraformプロバイダの利用や開発も構想にある。開発環境では様々なSaaSを利用している。たとえば定番のSlackやGitHub、オンラインホワイトボードのMiroなど。これらの管理は手動で行うことが多いものの、APIがあればコードで管理が可能となる。「できるだけコードで管理されている世界を目指したい」と藤原氏は話し、同時に「自社製品をお客様に迅速に届けられるようにプロバイダを自作できれば」と夢を語る。
最後にTerraform導入を検討する現場に向けて、藤原氏はエールを込めて3点のポイントを語った。1点目はスモールスタートが可能であることだ。横河電機のようにOSS版から始めてもいいし、Terraform Cloudには無料プランもある。「まずは試してみることをお勧めします」と藤原氏。
2点目はマルチクラウドサポート。先述したように、Terraformであればクラウドを超えて活用できるのがメリットとなる。現状あるいは今後マルチクラウドでの運用があるなら、複数のクラウドサービスプロバイダを横串で管理できるメリットや拡張性には着目しておいたほうがいいだろう。
3点目は組織内IaC標準ツールとしての活用。横河電機では個人レベルで開始して、徐々にスケールさせて組織内IaC標準ツールへと定着させてきた。藤原氏は「スケール可能ないいツールですので、こうしたものを活用して皆さまの業務をより効率的に、より無駄なく進めていただければいいかなと思います」と述べてセッションを締めた。
CTCのC-Native、リクルートのSENTOでのHashiCorp活用紹介も
続けて伊藤忠テクノソリューションズ(CTC)とリクルートからも発表があった。CTCは2022年4月にHashiCorpとパートナー契約を締結し、自社サービス「C-Native」にHashiCorp製品を組み込んでいる。「C-Native」はクラウドネイティブ技術にフォーカスしたソリューションやサービス提供のブランドとなり、そのなかでKubernetesをベースとした環境のIaCやマルチクラウド管理、加えてセキュリティを確保するためにTerraformやVaultを活用している。CTCがHashiCorpと描くクラウドネイティブ開発のありかたについて、CTCマネージドサービス企画・推進事業部 クラウドネイティブ推進部 部長代行 一万田真久氏が解説した。
リクルートからはAWS基盤におけるTerraform運用について、インフラソリューションユニット SRE部 クラウドグループ 須藤悠氏が解説。同社ではライフスタイル領域とSaaS領域のためにAWSを活用しており、そのAWS基盤 SENTOではIRE(Infrastructure Reliability Engineering)としてID管理やVPC管理など基盤コンポーネントを管理している。またCCoE(Cloud Center of Excellence)としての役割も果たしている。
SENTOでは2017年にCloudFormationを利用開始してみたものの、2018年からOSS版Terraformに移行、運用が軌道に乗るとTerraform Enterpriseへと移行した。CloudFormationではランダムな文字列が付与されたリソースが作られてしまうことが大きなネックで、加えてJSON/YAMLの可読性・保守性の低さ、アカウント横断でリソースを同定する難しさなどがありTerraformへと移行したという。
Terraform Enterpriseを導入したところ、ソースコードレビューにおけるプランの確認が早くできるようになりプラン数は年間940件から1万1,400件となり頻度としては12倍、またアプライ数は年間390件から1,020件で速さは2.6倍となり、大幅な生産性向上が確認できた。導入後にTCO(Total Cost of Ownership:総保有コスト)を計算すると、当初の試算よりもさらに低いことがわかったという。他にも須藤氏は企業におけるTerraform運用で重視すべきポイントについて、TCOをよく考慮すること、改善を続けること、統制がとれるチーム作りなどを挙げている。
IT先進企業たちによるHashicorpの導入事例は、クラウド化によるコスト削減や効率化、システム連携の両立に悩む組織にとって、一つの選択肢になり得るだろう。これらに課題意識を持つ方々は藤原氏が指摘したように、まずは試してみることから始めてはいかがだろうか。
HashiCorpが提供する無償ハンズオンワークショップに参加する
TerraformとVaultを中心にHashiCorp製品の初級-中級者向けのハンズオンワークショプを定期開催しています。ご興味を持たれた方は、こちらから開催スケジュールを確認の上、お申し込みください。