この数年間、多くの開発チームが従来のデータセンターからクラウド ホスティング インフラへの移行を進めてきました。クラウドの導入は広がり続けており、既存のアプリケーションもクラウドベースのサービスを利用できるように更新が進められています。しかし、一般的に、クラウドプロバイダー 1 社にすべてのアプリケーションとデータをホストしてしまうと、ビジネスリスクが生じるおそれがあります。このリスクを軽減するために、特別な手法で複数のクラウドプロバイダーにリソースを分散する組織が増えつつあります。
この記事では、こうしたマルチクラウド戦略が広まっている要因と、この戦略のメリットおよびデメリットについて解説します。また、複数のクラウドプロバイダーを利用する際に、最も効果的に環境を構築するためのヒントもご紹介します。
マルチクラウドとは?
マルチクラウド(Multicloud)戦略は、単に複数のクラウドプロバイダーにワークロードを配置することを指すのではありません。適切なマルチクラウド戦略を立てるには、リソースの設計とデプロイを具体的に立案することが求められます。これには、複数のプロバイダーを利用してサービスをデプロイする際のアプローチを計画することも含まれます。たとえば、コンシューマーベースのプロバイダー (AWS、Azure、GCP など) を複数利用する、同じプロバイダーが提供している複数のクラウドを利用する、プライベートクラウドプロバイダーを組み合わせる、といったアプローチが考えられます。いずれにしても複数のクラウドプロバイダーを利用する際に重要なのは、利用の意図と要件を明確化することです。
一般的なマルチクラウドサービスのアーキテクチャには、次のようなものがあります。
- コンテナ化したアプリケーションやサービスを複数のプロバイダーにデプロイして負荷を分散させ、”常時稼働” 環境を実現する
- サービスをビジネス機能ごとにグループ化して複数のクラウド プロバイダーに分散しつつ、それぞれに冗長化したコールドスタートコンポーネントを用意する
- 各クラウドプロバイダーが提供するアプリケーションやコンポーネントを “ベストオブブリード (最高の組み合わせ)” または技術連携型で利用する
これらのアーキテクチャに欠かせないのは、パターンをビジネス目標に合わせて一貫性を保ちながら実装する戦略的思考です。マルチクラウド戦略ではこうした思考とともに、戦略の対象となるアプリケーションやサービスのアーキテクチャや設計とも整合性をとることが求められます。
マルチクラウド戦略のメリット
組織がマルチクラウド戦略を採用する理由はさまざまです。最も多いのは、シングルクラウド環境のリスクを軽減するためにマルチクラウド環境に移行する、というものです。また、複数のプロバイダーの強みやテクノロジースタックを活用するためにマルチクラウド戦略を採用している組織もあります。動機にもよりますが、マルチクラウド戦略を採用することで得られる主なメリットは以下の 3 つです。
- 耐障害性
- 柔軟性
- コンプライアンス
耐障害性
今や多くの組織が世界中の顧客にサービスを提供しており、アプリケーションやシステムの 24 時間稼働が必須になっています。クラウドベンダー環境の停止などでサービスが中断されないように、耐障害性のある環境の構築は欠かせません。Google、Azure、AWS などの最大手のクラウドプロバイダーであっても、停止は発生します。
1 つのクラウドで障害が発生しても重要なサービスを停止させずにすむことが、マルチクラウドアプローチの大きなメリットの 1 つです。別のクラウドプロバイダーのコールドバックアップサービスを利用することで、事態を収拾し、長期的な対策を講じる体制を整えられる場合もあります。たとえば、Web アプリケーションのノードを複数のベンダーのクラウドに分散させておけば、ベンダー環境が停止した場合でも、サービスを稼働させ続けられます (使えるリソースは少なくなります)また、セカンダリクラウドにサービスをデプロイし、必要なときに起動できる待機状態にしておけば、問題発生時に解決までのつなぎとして簡単かつ迅速に事態を修正できます。
柔軟性
ワークロードを初めてクラウド環境に移行する場合、最もよく見られるのが、自社の基準を最大限に満たしてくれるプロバイダーを 1 社だけ利用するアプローチです。しかし、このアプローチでは、ワークロードが増えれば増えるほど、そのベンダーのサービスへの依存度も高くなります。ベンダーの戦略やサービス、契約内容、価格モデルは頻繁に変更されがちです。単一のベンダーに縛られると、調整がきかずコストが増えたり、より良いサービスを利用できなくなったり、アプリケーションやサービスを強制的に更新されかねません。クラウド環境には、ワークロードの移動や作成を簡単に行えるという利点がある一方で、予定外の移動を行おうとすると煩雑化しコストがかさむおそれもあるのです。
アプリケーションとサービスのアーキテクチャから設計するマルチクラウド戦略を採用すれば、ベンダーロックインを最小限に抑えられます。共通のテクノロジースタックとコンテナ化などの機能を使用することで、複数のクラウド環境にわたって同じサービスを効率よくスムーズに設計、デプロイできます。さらに、複数のクラウドサービスから、自社に最もメリットがあるものを選べるようにもなります。
とはいうものの、マルチクラウド戦略を採用する際には、選択するオプションの柔軟性をチェックすることも重要です。たとえば、Azure Functions はイベント駆動型のサーバーレスコンピューティングプラットフォームであり、ニーズに合わせたサイズ調整やスケーリングの手間なく、サービスを構築、デプロイすることができます。また、機能をコンテナにデプロイし、Azure の外部でホストすることも可能であるため、必要に応じたサービスの変更にも対応できます。
コンプライアンス
多くの組織には、ベンダーロックインの回避と同様に、IT システムのコンプライアンス (英語)についても固有の要件があります。こうしたコンプライアンス要件の範囲は、災害復旧や軽減策の仕様など、データのプライバシーや主権に関する懸念にまで及びます。
マルチクラウド戦略を採用する際に、コンプライアンス要件に照らしてサービスやデータを評価すれば、重要なコンポーネントに適した環境やアーキテクチャを確立できます。個人を特定できる情報や財務情報など、機密性の高いデータセットは、セキュリティが強固なプライベートクラウド環境に保存することが求められる場合があります。パブリッククラウド環境のアプリケーションからこうしたデータへのアクセス方法については、データセキュリティ要件で指定します。
マルチクラウドのデメリット
マルチクラウド戦略の導入には大きなメリットがありますが、デメリットになりうる 2 つの要素として “環境の複雑さ” と “コストの増加” への注意が必要です。これらの要素は前述のメリットで克服、相殺できるものですが、準備を怠ると組織にとって問題となる可能性もあります。
複雑さ
利用するクラウドプロバイダーを 1 社にすると、使えるサービスの幅が限られるため、スタッフの学習効率は高くなります。クラウドプロバイダーを 2 社に増やすと、IT スタッフが習得しなければならないサービス、マルチクラウドシステム、プロセスの数も 2 倍に増える可能性があります。リソースに制約のある組織にとって、スタッフにマルチクラウド環境への習熟を求めるのは、たやすいことではありません。マルチクラウド環境では、プラットフォームエンジニアリング専門のチームや部門横断型の IT 運用チームがさまざまな統合を駆使して、複数のデプロイターゲットとテクノロジースタックの保護、管理、最適化を行わなければならないことも少なくありません。
コスト
マルチクラウド戦略を採用する際にもう 1 つ障壁となり得るのが、全体的なコストです。利用しているリソースが実際には各プロバイダー間できれいに分割されていたとしても、環境間のトラフィックや管理レイヤーが加わるため、コストはいくらか増加します。特に同一のテクノロジースタックを使用する場合は、プロバイダー間のコストの違いを理解しておかないと、不要な出費が発生することがあります。
マルチクラウドへの移行に要する費用を試算する際は、移行前後の環境両方に対応するスタッフの雇用やトレーニングにかかるコストも忘れずに計算に入れてください。また、環境の複雑さが原因ですべてのリソースを可視化できない場合に発生する、未使用リソースのコストも見落とせません。マルチクラウド戦略にコスト削減の効果はありますが、それだけではこの戦略を採用する理由にはなりません。
マルチクラウド戦略を採用するべきか
マルチクラウド戦略の採用を検討すべきタイミングとは、いつでしょうか。この問いに答えるのは容易ではありません。マルチクラウドは複雑さとコストの増加を伴うため、マルチクラウド戦略を採用するなら、そのメリットで解決したいビジネス上の重要な課題を特定すべきです。相応のビジネスニーズもなくマルチクラウドを導入した場合、大きな収穫もないまま、複雑さとコストが激増するだけという結果になりかねません。
マルチクラウド戦略で解決可能なビジネス上の課題には、次のようなものがあります。
- 業界や法規制への懸念事項に対応しないと、大きなリスクやコストが生じかねない
- 開発スピードを上げるために、ツール、サービス、テクノロジーの柔軟性を高める必要に迫られている
- 複数のベンダーに分散しているコンテナサービスのダウンタイムを短縮したい
上述のような課題がある場合でも、チームにマルチクラウド戦略を効率的に浸透させるには、強力な支援体制と堅実な技術リソースが必要不可欠です。
CI/CD ワークフローでマルチクラウドデプロイを管理する
マルチクラウド戦略を採用する際は、アプリケーションやサービスを複数の異なる環境に一貫性を保ちながらデプロイすることが肝要です。以下に、マルチクラウド環境のメリットを最大限に引き出す CI/CD ワークフロー設定のヒントをご紹介します。
- できる範囲でパイプラインを標準化し、全チームが従うべきデプロイ戦略を作成する
- 別のベンダーにデプロイする際にコンポーネント単位で交換できるように、デプロイを可能な限りモジュール化する
- インフラの再構成を最小限に抑えられるように、Terraform や Ansible など、マルチクラウドに対応した Infrastructure-As-Code テンプレートを導入する
- 目的の環境に適切なビルドをデプロイできるように、リリース管理ツールを使用する
まとめ
クラウドベンダーを複数利用すると、さまざまなメリットが得られる一方で、環境が煩雑化し多大なコストがかかる可能性があります。戦略を明確に定義しておかなければ、この複雑さとコストによってあっという間に制御不能に陥りかねません。マルチクラウドの導入を成功させるには、計画的に取り組み、組織の技術的成熟度を客観的に評価することが重要です。
CircleCI は、アプリケーションやサービスをマルチクラウドにデプロイするための CI/CD パイプラインの構築を支援しています。ぜひ、無料アカウントを作成し、こちらの Web ページでマルチクラウド環境に対応したパイプラインを準備する方法をご覧ください。