The Doppler Quarterly (日本語) 冬 2018 | Page 26

インフラストラクチャ管理 ARM テンプレートなどのクラウドネイティブツールや、 Terraform などのクラウドに依存し ないツールの導入に関する意思決定は、極めて重要なものです。なぜなら、選択したツールに よって、クラウドリソースを作成、更新、および削除する方法が決定されるからです。Terra- form と ARM のテンプレートには、それぞれメリットとデメリットがあります。 Terraform は、複数のクラウド環境でワークロードを実行しているチームや、 1 つのクラウド から別のクラウドに移行しているチームにとって、魅力的な自動化ツールです。最新のユース ケースは、 Azure で実行されている AWS (Route 53、 S3 など ) および IAAS の両方のワーク ロードにアプリケーションのフットプリントがある状況を示しています。 全体として、 Terraform の実装では、 (PCI、 NIST など ) 必要とされるセキュリティ基準に基 づく情報セキュリティから Hashicorp のツールを除外することに加えて、 Hashicorp のツー ルを使用するための専門知識が求められます。しかしそれと引き換えに、コードのモジュール 性を保つだけでなく、 AWS および Azure 両方の管理に必要な Azure のリソースおよび同種 のコードベースの状態管理を維持できます。ARM のテンプレートでは、既存のテンプレート を使用して Azure のリソースを展開しますが、すでに展開されている Azure のリソースの状 態を簡単に共有することはできません。このことは、複数の環境や多地域にわたるインフラス トラクチャを含む大規模な展開において、特に重要となります。たとえば、米国東部で NSG を展開する際に、米国西部のサブネットIT が必要となるケースが考えられます。ワークスペー スを加えると、複数の地域や階層にわたって、確実に状態を共有できるようになります。また、 Azure のサポート対象外のリソースについては、 Terraform のリソースブロック内に Azure CLI を統合することが可能です。 Terraform と Consul および Vault Azure Blob ストレージまたは Consul では、 Terraform の状態をローカルに保存すること ができます。Consul を使用すると、インストールおよび構成時の運用オーバーヘッドが増 加しますが、キーバリューストアによって状態が保存されるほか、複数の環境が同じ状態ファ イル上で同時に稼働している際に状態ファイルをロックするメカニズムを備えています。この 機能は、マルチユーザーのケースで大きなメリットをもたらします。さらに、さまざまな地域に わたって状態を同期させることも可能です。また、キーバリューストアである Consul を使用 すれば、物理的に離れた場所にあるワークロードについても、アプリケーションや他の構成 データを保存することができます。 Vault は、機密情報を保存するシステムです。バックエンドとして Consul を使用し、キーや機 密情報などを保存して、管理者の認証情報や接続文字列情報を Terraform または Azure CLI に安全に転 送します。また Vault は、 CA、多地域対応、 Dynamic Secrets などの高 度な機能を備えており、 Terraform とも簡単に統合できます。今後のイテレーションには、 Vault の後継と想定される Azure Key Vault が含まれます。 ロギングと監視 セキュリティ要件を満たすためには、 Azure インフラストラクチャ内のアクティビティをすべて 記録する必要があります。AWS 市場では、ロギングおよび監視用のサードパーティツールが 非常に発達していますが、 Azure については、 Azureアクティビティログ、 Azure ADログなど、 特にクラウドネイティブログの監視に必要なロギングを実現する、専用のフォワーダーが必要 24 | THE DOPPLER | 2018 年冬号