How to Speak Like a Data Center Geek

コードとしてのインフラストラクチャ

デジタルトランスフォーメーションを推進する上で、オンデマンドのデジタルインフラストラクチャのプロビジョニングが不可欠である理由

Ramchandra Koty
Vanjikumaran Sivajothy
コードとしてのインフラストラクチャ

デジタルトランスフォーメーション戦略の成功の鍵は、エンドユーザーの要求に基づきデジタルインフラストラクチャのフットプリントを自律的にスケーリングすることだと言えます。COVID-19終息後の世界では、大小関わらずあらゆる規模のサービスプロバイダや企業が、インフラストラクチャを自動操縦モードで実装して、お客様へのサービス提供に注力する方法を模索しています。

API Playgroundで本番前試験

エクイニクスのモックAPIコレクションでは、モックのリクエストとレスポンスオブジェクトを使って、プロジェクトの設計を開始できます。

詳細を読む
callout image - developer

Infrastructure as codeコードとしてのインフラストラクチャ)の活用

Infrastructure as code(コードとしてのインフラストラクチャ、IaC)とは

ウィキペディアで「コードとしてのインフラストラクチャ」を調べてみると、「物理的なハードウェア構成やインタラクティブな構成ツールを使用するのではなく、機械可読な定義ファイルを使用してコンピュータデータセンターを管理およびプロビジョニングするプロセス。このプロセスによって管理されるITインフラストラクチャは、物理機器(ベアメタルサーバーなど)と仮想マシン、および関連する構成リソースで構成される。」と記載されています。

簡単に説明すると、インフラストラクチャ(物理または仮想)をコードとして扱うということは、構成をプラットフォームから分離し、ソフトウェア駆動型またはソフトウェア定義のアプローチ(テンプレート、スクリプト、またはポリシー)でインフラストラクチャをプロビジョニング、構成、および管理を可能にすると言うことです。

IaCは、物理、仮想、およびクラウドインフラストラクチャに開発方針を適用することで推進されます。テンプレート、スクリプト、およびポリシーはコードとして扱われ、個別のインフラストラクチャ要素として管理するのではなく、一元化されたリポジトリからレビュー、バージョン管理、およびプロビジョニングされる必要があります。

IaCは、物理、仮想、およびクラウドインフラストラクチャに開発方針を適用することで推進されます。

「コードとしてのインフラストラクチャ」が重要な理由

  1. プロビジョニングのスピード

「コードとしてのインフラストラクチャ」を使うと、ソフトウェアスクリプトを実行することでインフラストラクチャを完全にプロビジョニングできるようになります。プロビジョニングは、ネットワーク、セキュリティ、アプリケーション、ストレージなど、プラットフォームのあらゆる側面に対して実行できます。また、開発環境からステージング、QA、本番稼働に至るまでのさまざまな環境で実行できます。

  1. 一貫性の向上

手動プロセスはエラーを招き、手動によるインフラストラクチャ管理は矛盾や構成のズレの原因となります。しかしIaCは、設定ファイルを唯一の「正」のソースとすることで、この問題を解決します。そうすることで、矛盾を生じさせることなく、同じ構成を繰り返し展開することが保証されます。

  1. モニタリング

IaCは一元化されたソースからのコードを介してすべての設定を可能にするため、業界標準のツールを使用してインフラストラクチャを監視し、プロビジョニング、エラー、使用状況などに関する重要なインサイトを可視化できます。

  1. コスト

IaCの一番の特徴としては、自動化を実現しコストを大幅に削減します。

インフラストラクチャを自動化するIaCへのアプローチを実践するのに必要な基礎知識とは?

IaCは継続的インテグレーション/継続的デリバリー(CI/CD)のツールチェーンを強化しますが、IaCテクノロジーの選択の前に検討すべき要素がいくつかあります。

多くのIaCツールは宣言型アプローチを使用しており、必要なインフラストラクチャを自動的にプロビジョニングします。

1. IaCを採用するにあたっての宣言型と命令型アプローチ

a. 宣言型アプローチでは、システムの望ましい状態(必要なリソースとそのプロパティなど)を定義し、IaCツールがそれを構成します。また、お客様のシステムオブジェクトの現状をリスト化し保持されるため、インフラストラクチャの撤収をよりシンプルにし、管理しやすくなります。

b. 命令型アプローチでは、希望する構成を実現するために必要となる特定のコマンドを定義し、これらのコマンドを正しい順序で実行する必要があります。

多くのIaCツールは宣言型アプローチを採用し、必要なインフラストラクチャを自動的にプロビジョニングします。希望する状態に変更を加えると、宣言型のIaCツールはこれらの変更を適用します。命令型ツールでは、このような変更をどのように適用すべきかを、お客様が理解する必要があります。IaCツールは、多くの場合、両方のアプローチで動作します。しかし、一方のアプローチを優先する傾向があります。

2. ミュータブルとイミュータブルインフラストラクチャの選択

a. イミュータブルIaCは、展開後に再利用および変更されることのない一連の定義セットであり、変更が必要な場合にオンデマンドでインフラストラクチャを再構築します。

b. ミュータブルIaCは、オンデマンドで変更できる一連の定義であり、要件に応じて構成されます。ミュータブルIaC定義の一般的な例には、必要に応じたパッチ展開、構成の変更、オンデマンドでのサーバーのスケールアップ/スケールダウンが含まれます。

現行のほとんどのIaCツールでは、ミュータブルおよびイミュータブルインフラストラクチャの両方のパラダイムを作成することができ、インフラストラクチャ展開のハイブリッドアプローチを構成できます。

3. オーケストレーション管理と構成管理

a. オーケストレーション管理ツールの主な目標は、環境を継続的に「計画した状態」に維持、保証することです。

b. 構成管理ツールの目的は、インフラストラクチャをリセットするのではなく、インフラストラクチャの問題を修復して修正することです。

ほとんどのIaCツールは、構成管理ツールまたはオーケストレーション管理ツールとして設計されています。但し、エンドツーエンドのインフラストラクチャ自動化に対応するワンストップショップとして両方のツールを提供しているのは、市場ではかなり限られたベンダーのみです。

IaCツールを実現するための代表的な選択肢としては、Terraform、Chef、Puppet、Red Hat Ansible Platform、AWS CloudFormationなどが挙げられます。これらのツールを使うことで、ソフトウェア定義コンピュート、ネットワーク、およびストレージなどのインフラストラクチャを作成、プロビジョニング、および設定をサポートします。

そして、エクイニクスは、Terraformの公式プロバイダーとして登録されています。お客様が、Terraformテンプレートを活用し、Equinix Fabric™Network Edge、およびEquinix Metal™インフラストラクチャのプロビジョニングができるようにサポートします。

エクイニクスのサポート内容の詳細については、Equinix Terraform Registryをご確認下さい。

この記事の関連記事:

IBM「コードとしてのインフラストラクチャ」チュートリアル

HashiCorp「ミュータブルとイミュータブルインフラストラクチャ」チュートリアル

多くのIaCツールは宣言型アプローチを使用しており、必要なインフラストラクチャを自動的にプロビジョニングします。
Ramchandra Koty
Ramchandra Koty Director of Engineering, Global IT
Vanjikumaran Sivajothy
Vanjikumaran Sivajothy Senior Engineering Manager, API & Developer Experience