マルチクラウド環境のインフラ構築における問題点
マルチクラウド環境でのインフラ構築
クラウドでは通常、クラウドサービスプロバイダーが用意したGUI画面から各サーバのインフラ設定を行います。このGUI画面での設定は直観的に操作することができ、システムに詳しくない人でも作業が可能になる一方で以下のような問題点があります。
- サーバの数が多くなると設定が大変。作業の手数が多くなり、間違いが発生しやすい
- クラウドサービスプロバイダーごとにGUI画面仕様が異なり、同じ手順で作業できない
- 各サーバの設定内容の管理が大変
知らぬ間に設定を変えられていて、何かあっても設定が戻せないこともある。
マルチクラウド等の構築に適する「Infrastructure as Code」とは
この問題を解決するためにインフラの構築・運用に関わる作業をコード化、自動化するアプローチとしてInfrastructure as Code(IaC)が普及してきました。設定をコードで管理することで、手作業による間違いを防ぎ、設定変更を履歴として管理することができます。そして設定変更作業を自動化することで、大量のサーバに迅速に設定変更を反映させることができます。
クラウドサービスプロバイダーであるAmazon Web ServiceやMicrosoft Azureは、独自にCloudFormation、Resource ManagerといったIaC機能を提供しています。
ところが、企業では異なるサービスベンダー間で複数のクラウドサービスを組み合わせたマルチクラウドや、クラウドとオンプレミス環境を組み合わせたハイブリッドクラウドが普及しています。異なるインフラの構築・運用を効率化し自動化するためのIaCが必要です。
そのためには特定のクラウドサービスに限定せず、マルチクラウド環境で利用可能なIaCソリューションを採用する必要があります。
IaCソリューション「Terraform Enterprise」
HashiCorp Terraform Enterpriseは、ハイブリッドやマルチクラウド環境に向けて提供されるIaCソリューションです。ユーザはテキスト形式のファイル上に「どこのデータセンタで(どのクラウドサービスで)」「どのようなスペックを持つ仮想マシンやリソースを使うのか」といったインフラの状態を、コードとして記述し各クラウドへ反映します。
Terraform Enterpriseではクラウドごとの構成機能の違いや記述形式の違いをプラグインで吸収し、どのクラウドに対しても共通のコンフィグレーション(構成)ファイルで記述することが可能です。
コードでインフラの状態を記述することにより、GitHubなどのソースコード管理ツールを用いて作成・変更したコードのレビュー、バージョン管理などが可能となり、再現や複製も容易になります。また対象となるクラウドが数百台、数千台に及ぶような場合、GUIを通して1件1件手作業することなくインフラ環境の構築、変更を自動で行うことができ、人為的なミスを引き起こすことなく正確かつスピーディな対応が可能となります。
※ Terraform Enterpriseが対応しているクラウド、ソフトウェア:
AWS、Microsoft Azure、Google Cloud Platform、Heroku、Oracle Public Cloud、IBM Cloudなどの主要なクラウド、VMware vSphere、OpenStack、Kubernetesなどのソフトウェア
Terraform Enterpriseの優れたガバナンス機能
IaCを使用するグループでは、メンバーが誤った設定やルールに基づかないプロビジョニングを行ってないか監視する必要があります。
- 間違ったリージョンにプロビジョニングを行っていないか
- 禁止されている時間帯に作業を行っていないか
- 10インスタンス立ち上げのつもりが、誤って1000インスタンスを立ち上げてしまわないか
- 多額の利用料がかかるインスタンスを勝手に立ち上げていないか
- 国をまたいだ制約(GDPRなど)を意識しないでプロビジョニングを行っていないか
Terraform Enterpriseでは以下の機能により、メンバーの作成したコードへのマニュアル検証が不要となります。プロビジョニング実行前にこれらのポリシーチェックを行い、誤った設定が行われることを防ぎます。
(1)ポリシー管理機能「Sentinel(センチネル)」
Terraform Enterprise全体にまたがるポリシーを設定することが可能です。これにより、例えばアクセス権のないユーザが重要な構成変更をできなくしたり、決められた時間外の構成変更を保留したり、特定のクラウドリソースのプロビジョニングを不可能にするなど、操作ミス、作業ミスなどからインフラを破壊してしまう事故を防ぎます。
(2)インフラ定義から自動的にクラウドの費用を見積もる「Cost Estimation(コスト エスティメーション)」
Terraform Enterpriseの「Cost Estimation」機能により、コンフィグレーションファイルの内容からプロビジョニング後にかかるクラウドの月額費用の見積もりを自動的に表示します。利用者がクラウドインフラの状態を変更した場合の費用を事前に試算することができ、適切なクラウドの利用を支援します。
また、あらかじめポリシーとしてコストの上限などを決めておき、ポリシーに違反する場合には自動的に承認プロセスへとエスカレーションすることも可能。これによりインフラに対するガバナンスの確立が可能となります。
HCP Terraform Plus
HCP Terraform Plusは、Terraform Enterpriseと同等の機能をHashiCorp社がクラウドサービスとして提供します。
Terraform Enterpriseでは、自社のサーバにTerraform Enterpriseを構築し運用する必要がありましたが、HCP Terraform Plusを利用することで、それらのリソースやコストを割く必要がなくなり、小規模からTerraformを活用することが可能となります。
HCP Terraform Plusを選択するメリット
- サーバやネットワークを用意する必要がない
- 小規模から利用することが可能
しかし、HCP Terraform PlusがTerraform Enterpriseに取って代わることはありません。Terraform Enterpriseでは以下のメリットがあります。
- クローズドな環境でTerraformをホストしたい
- プロビジョニング時のパフォーマンスを最適化したい
- 日本以外のデータセンターのクラウドサービスを利用できない
Terraform Enterprise、HCP Terraform Plus、それぞれのメリットを比較し最適なソリューションを選択することができます。
Terraform 各エディションの機能比較
Terraform Cloud Free |
Terraform Cloud Standard |
HCP Terraform Plus |
Terraform Enterprise |
|
---|---|---|---|---|
ライセンス区分 | 無料 (最大500リソースまで) |
無料 (毎月最初の500リソースまで、それ以降有料) |
有料 | 有料 |
コードによる プロビジョニング |
○ | ○ | ○ | ○ |
コードの組織内共有、 VCS連携 |
○ | ○ | ○ | ○ |
制限ポリシーの 管理・適用 |
○ | ○ | ○ | |
高度なセキュリティ ・統制機能 |
○ | ○ | ||
統合運用ツール (ServiceNow, Configuration Designer)との連携 |
○ | ○ | ||
並列処理 | 1 | 3 | 制限なし | 制限なし |
サポート | ○ | ○ | ○ |
Terraform Enterprise |
HCP Terraform Plus |
Terraform Cloud Standard |
Terraform Cloud Free |
---|---|---|---|
ライセンス区分 | |||
有料 | 有料 | 無料 (毎月最初の500リソースまで、それ以降有料) |
無料 (最大500リソースまで) |
コードによるプロビジョニング | |||
○ | ○ | ○ | ○ |
コードの組織内共有、VCS連携 | |||
○ | ○ | ○ | ○ |
制限ポリシーの管理・適用 | |||
○ | ○ | ○ | |
高度なセキュリティ・統制機能 | |||
○ | ○ | ||
統合運用ツール (ServiceNow, Configuration Designer)との連携 |
|||
○ | ○ | ||
並列処理 | |||
制限なし | 制限なし | 3 | 1 |
サポート | |||
○ | ○ | ○ |
価格
お客様の環境によって異なりますので、個別にお見積りいたします。お気軽にお問い合わせください。
- LAC×HashiCorpリソースセンター
- 関連記事
- Vaultの動的シークレットでTerraformのセキュリティレベルを向上させるには
- 技術者でない人のためのTerraform入門
- 釘を打つのにドライバーを使ってませんか?正しいプロビジョニングツールを使いましょう
- 人的ミスによる情報漏えいを回避!TerraformとSentinelでAWS S3のセキュリティベストプラクティスを実現
- 5分で分かるTerraform(Infrastructure as Code)
- TerraformとAnsible~それぞれの得意領域と使い分け~
- Terraformに学ぶ、Infrastructure as Codeの導入と組織に起こる変化
- TerraformによるRed Hat OpenShift on IBM Cloudの構築
- Terraform+Snykで、セキュアなクラウドインフラ構築&運用自動化を実現しよう!
- TerraformでSpotifyのプレイリストを作成してみよう!
- イチから学べるTerraform~基礎から実践を紹介するウェビナー動画を無料公開~
- Terraformerで既存AWS環境をIaC化してみた