マルチクラウドとは、複数のクラウド(パブリッククラウド)を同時に利用する方法です。
クラウドの利用がずいぶん普及し、最近ではこうした複数のクラウド環境を同時に利用するようなユースケースが増えて来ています。

この記事では、最近注目されているマルチクラウドへの期待感と、マルチクラウド実現のための課題をデメリットと言う形で説明します。
マルチクラウドに期待されること
まずは、マルチクラウドに対して期待されること、つまり、マルチクラウドを実現した際に得られるメリットについて代表的なものを説明していきます。
ベンダーロックインからの回避
ベンダーロックインとは、あるメーカやプラットフォーマーがユーザを自社サービスで囲い込み、よそへ逃さないことを指します。
一度ロックインに陥ると、他のサービスへ乗り換えるために現実的ではないスイッチングコストを払うケースがほとんどです。
また、ベンダーに対する交渉力も減衰しますので、結局はベンダの良いようにコントロールされてしまいます。
このような状況を回避するために最もシンプルな方法は、複数のベンダを一定の比率で利用し、スイッチングコストをコントロールすることです。
複数のクラウドにワークロードを分散させることにより、万が一特定のクラウドベンダが値上げや、ユーザにとって不利になる契約への変更を仕掛けてきた際には他のクラウドプラットフォームの比率を高めることによってロックインを回避することができます。
セキュリティと可用性の向上
残念ながら、クラウドでも大きな障害は定期的に発生しているのが現状です。
マルチクラウドにすることで、物理的な障害が同時に起きる可能性を小さくすることができます。
事実、日本国内のリージョンに限定してもAWSとAzureとGCPが同時に大規模障害を起こしたことはありません。
各クラウドの強みを活かすことができる
マルチクラウドを検討される動機の一番多くはこれではないでしょうか。
よくある使い方の想定としては
- 社内システムはオンプレADなども使っているのでAzureとO365の組み合わせ
- WEBや外販向けのサービスはストレージやコンピュートの安いAWS
- 分析やAI、モバイルはBig QueryやFirebaseの使えるGCP
などです。私の経験から言うと、概ね上記のようなイメージで検討されているお客様が多いです。
マルチクラウドにするということは各プラットフォームの使い方を自由に選べるということなので、こういったクラウドごとの得意な領域で使うことも考えられます。
マルチクラウドのデメリット
次に、マルチクラウドのデメリットについて。
学習コスト
まずは学習コストです。人的コストと言ってもいいでしょう。
クラウド技術の進歩はとんでもなく速いです。具体的に言うと、AWSでは年間およそ2,000件、Azureでは1,000件ほどのアップデートがあります。
しかも、このペースはクラウドの需要に応じ、年々上昇しています。
代表的なクラウドプラットフォームであるAWS、Azure、GCPに絞ったとしても、年間何千もの大小のアップデートが発生することになります。
このペースに追随できる個人はこの世に存在しないでしょうし、企業単位であっても教育コストが非常にかかることが予想されます。
構築・移行コスト
例えば今、どこかひとつのクラウドプラットフォームを利用していて、マルチクラウド戦略のためにそれを別のクラウドへ移行したいとしましょう。
100%がIaaSベースの利用であればさほど苦労はありませんが、各プラットフォームが提供するPaaSやサーバレスは移行を前提に作られていませんので、当然アプリケーションのアーキテクチャを変更する必要があります。
運用コスト
構築や移行だけでなく、運用のコストにも注目必要があります。
近年ではプラットフォームに依存せず、すべてを管理可能なサードパーティツールも存在しますが、それだけで運用を完結するのは不可能です。
また、各社の運用ルールに関してはプラットフォームに関係なく定める必要があります。
前述の学習コストも踏まえた上で、プラットフォームごとの運用ルールとツール群を管理することが非常に高コストであることは想像に難くないでしょう。
ボリュームディスカウントが適用できない
見落としがちですが、ワークロードを分散させるとその分各社のボリュームディスカウントが利用できないか、利用できても割引率が高くありません。
当然ですが、購入している単位が大きいほど割引率は大きくなりますので、割引の観点で言えばプラットフォームは一つにまとめた方が有利です。
「マルチクラウドでしか達成できない」は真実か?
以上のように、マルチクラウドでは特定のクラウドプラットフォームに依存することを避け、各クラウドの「いいとこどり」ができるように一見思えます。
また、各クラウドで障害が発生していることも確かなので、マルチクラウドにすれば単一プラットフォームによるシステム停止も回避できるかのように思えます。
そのシステムはコストに見合うか
一方で、単一の障害点を持たないということは、同じシステムを違うプラットフォーム上で複数系統構築することが前提となります。
共通したプラットフォームであれば片系統をActiveにし、もう片方をStand-byなどにする構成によりコスト最適をしつつ可用性を高める方法もあり得ますが、同じことをプラットフォームをまたいで実装しようとすればそれはすべてが人手に頼ることになります。
また、前述のように最先端の技術であるクラウドを、それも複数プラットフォームについて熟知するのは容易ではありません。
おそらく、すべてのコストの合計に見合うシステムなどそうそう存在しないのではないかと思います。
そのシステムはクラウドの良さを活かしているか
本来、クラウドの良さは構築や運用の手間を削減したり、マネージドサービスやInfrastructure as Codeによって管理を容易にすることにあるはずです。
ですが、マルチクラウドによる手作業の増大はいかがでしょうか。ベンダーロックインや極めて可能性の低い超大規模障害を懸念するあまり手動部分があまりに増えてしまえば、結局はクラウドで実装する意味が薄れてしまいます。
マルチクラウド戦略を検討する前に
マルチクラウドを検討されるお客様のモチベーションは主に
- ベンダーロックインの回避
- 耐障害性、可用性
- 各クラウドの特性を活かす
であると述べました。一方で、その果実を手に入れるコストは現実的でないほど高価です。
ですので、マルチクラウドを実行する前に、是非下記の点を再度振り返ってみてください。
ロックインは発生するもの
身も蓋もない話ですが、多かれ少なかれロックインは発生します。
ですが、クラウドでは契約書に明記されているようにクラウドの利用はいつでもやめることができます。最低利用期間などはありません。
これまでのベンダであったような意味でのロックインは起きにくと言えます。
可用性に関する議論は十分?
マルチクラウドを検討するまえに、まずは今使っているプラットフォーム内でマルチリージョンやマルチAZを検討してみましょう。
アプリケーションの構成がベストプラクティスに則っているかもきちんと確認する必要があります。
先程も申し上げたように、全てのクラウドが同時に停止したことは今までありませんし、同様に全てのリージョン、AZが停止した例もそうそうありえません。
まずはマルチリージョンやマルチAZを十分に研究してからでもマルチクラウド戦略は遅くはありません。
クラウドの特徴は思い込みなことも
クラウドの機能拡張ペースは非常に速く、去年できなかったことが今はできるということも多くあります。
例えばAzure上で動くOSの半分はLinuxですし、AWSでMicrosoft ADを新規に構築することもできます。
クラウドの特徴を過信することなく、まずは同様の機能を今つかっているクラウドで実現する方法を考える。どうしても駄目だったら部分的に他のクラウドを使う、という棲み分けが実際は最もコストを抑える方法になります。

まとめ
この記事では、最近注目されているマルチクラウド戦略についてメリットとデメリットを述べさせていただきました。
私個人としては、現状多くの企業ではマルチクラウド戦略へ進む前に、現行プラットフォームでの最適化を図るのが合理的と考えています。そのくらい、まだまだ真にクラウドを使いこなせている企業は多くありません。
また、マルチクラウドは後戻りが容易ではない戦略です。実際にシステムを移行してしまった後で維持コストの高さを嘆いても、元の状態に戻すにはまたコストがかかります。ベンダーロックイン以上の悲劇と言えるでしょう。
十分に検討した上で、実行に移すことをオススメします。
今回は以上です。お読みいただきありがとうございました。
コメント