ビジネス向けクラウドサービスを提供する主要3社から、オンライン上での作業に必要なことをすべてカバーする製品がたくさんリリースされていますが、価格設定、サービスの命名法、グループ化手法などがすべて異なっています。この記事では、各社のサービスを並べて比較し、どこが違うか説明します。
Amazon Web Services(AWS)、Google Cloud Platform(GCP)、マイクロソフトのAzureで提供されるサービスを中心に解説します。サービスのすべて、クラウドコンピューティングのインフラの詳細までは説明しません。しかし、利用可能なプロダクトをたくさん紹介しますので、おそらく3つのクラウドサービスのコンセプトは理解できるでしょう。
なぜクラウドなのか
公営、民間の区分に関わらず多くの企業(Netflix、AirBNB、Spotify、Expedia、PBSなどが代表的)が、オンライン作業においてクラウドサービスに依存しています。クラウドサービスを利用することでコアビジネスに集中でき、すでに確立され常にアップグレードされているインフラを利用しながら、多くの技術的な問題は放っておいても解決できます。オンライン作業のために必要となる物理的なインフラを個々の企業が構築する必要がある場合、その問題に対処する技術者チームや多くの追加予算、時間が必要になり、多くのスタートアップがこれらの問題を解決できません。
人ごとではない
しかし、問題は著名企業だけの問題ではありません。今日、著名企業だけでなく実質的に初期資本を持っていないような若者のほんの2人でも家にいながらにして世界トップクラスのストレージ、コンピューティング、管理などのインフラを利用して大規模なオンラインサービスを提供できるのです。そして、時間に応じて料金を支払います。文字通り、1時間ごとに使用料を支払います。
適宜の(ときに複雑な)価格設定
料金は以下の事項によって大きく異なります。どの程度の処理能力を求めるか、どれほど多くのインスタンス(つまり、仮想サーバー数)を求めるか、どこでそれらのインスタンスをデプロイするか(これについては「場所」の項で後述します)です。また、バルク利用すると大きな値引きがあります。どちらにしても、通常、以下のメリットがあります。
- 事前にコストがかからない
- 解約料がいらない
- 使用した分だけ支払えば良い
- 分単位の課金になっている
もっと正確なことを知りたい人はAWS、GCP、Azureの価格に関する細則を読んでください。
プロダクトかソリューションか
「プロダクト」と「サービス」という言葉は混同して使われています。一方で「ソリューション」という言葉は、クラウドサービスを利用する場合にしばしば耳にするより具体的なコンセプトです。簡単に言うと、ソリューションは特定の用途向けにあらかじめ作られた一連のプロダクトです。また、ソリューションにはクラウドのインフラを採用する手順を説明するドキュメント、使用事例、証明書などがたくさん用意されています。
「特定の用途向け」のソリューションの典型例は以下です。
- ビッグデータ — AWS、 GCP、 Azure
- デジタルマーケティング — AWS、Azure
- Eコマース — AWS、 GCP、 Azure
- ゲーム — AWS、GCP
- 政府 — AWS(政府、 州と地方自治体)
- モノのインターネット(IoT)— AWS、GCP、Azure(予知保全、遠隔モニタリング)
- プライベートクラウド
- ホスティング再販業者
比較してみましょう!
比較してみましょう!
アマゾンは2004年に最初のAWSサービスとして「商品化した」クラウドコンピューティングサービスを売り出しました。そのあとも改良を重ねて機能を追加し、業界で有利な立場に立ち、クラウド用のサービスやソリューションを業界最大規模で展開しました。また、それらのサービスやソリューションはあらゆる面で業界でもっとも費用が高いものとなっています。
グーグル、そしてのちにマイクロソフトはこのゲームに参入し、独自のインフラとアイデアを駆使し、ビジネスを提案、価格を引き下げてすぐに業界標準に追いつきました。
以下の動画で各企業の代表者がそれぞれのクラウド戦略について語っています。
コンピューティング
このためにコンピュータがあると言っても過言ではありません。データを計算、処理、つまり、コンピューティングです。グラフィックのレンダリング、データ解析などのためにより高速な処理が必要な場合、ハードウェアを買い足すか、クラウドを利用します。
当たり前ですが、ハードウェアを購入すると自分の物になります。いわば、自己資産です。しかし、そうすると、コンピュータが実際に動いていない時間やメンテナンスにも料金を支払っていることになります。データセンターを建てようものならその費用は莫大です。
一方でクラウドを利用すると、サービスの利用分だけ使用料を支払えばよく、ほんの数分で何千もの処理ノードを実現できます(注意していないと多額のクレジットカードの請求が来てしまいますが)。
Amazon Elastic Compute Cloud(Amazon EC2)は、オンデマンドのスケーラブルコンピューティングのアマゾン フラッグシップサービスで、競合サービスにはグーグルのCompute EngineやAzureのVirtual Machines、Virtual Machine Scale Setsなどがあります。アマゾンのサービスがもっとも包括的ですが、先ほど述べたようにAmazon EC2の料金体系は非常に複雑です。AzureのVMの料金体系にも同じです。グーグルの提供するサービスは多少柔軟性に欠けますが、価格体系はずっと分かりやすいです(価格体系の項を参照してください)。
また、Webやモバイルアプリ用のコンピューティング処理サービスをレンタルする選択肢もあります。この方法を選択してAmazon EC2やCompute Engineの代わりに利用すると、大幅に費用を抑えられます。ただし、利用しているアプリがこのサービスのスペックに適合している必要があります(より詳しい情報を知りたい人は、AWS Elastic Beanstalk、Google App Engineを参考にしてください)。
Dockerを備えたソフトウェアコンテナをデプロイしたい場合、Amazon EC2 Container Service (ECS)、Amazon EC2 Container Registry (ECR)を検討してください。これらのサービスはグーグルのContainer Engine、Container Registryに相当するものです。AzureもContainer ServiceにDockerを備えていますが、いまのところプライベートDockerレジストリは提供していません。
Azureはマイクロソフトのサービスですから、RemoteAppサービスを利用してWindowsクライアントアプリをデプロイできます。
ストレージ
コンピューティングに加えストレージはクラウドサービスの核となるものです。クラウドでは数GBから数PBまで(1ペタバイト=1024テラバイト=1048576ギガバイト)保存にかかる手間は変わりません。ただし、ソリューションの実装が重要だということを覚えておいてください。というのは、ファイルをFTPでアップロードする場合、ユーザー名やパスワードだけでよい通常のホスティングとは違うからです。クラウドの利用にあたっては、APIやサードパーティプログラムが必要になります。また、クラウド上でストレージをきちんと動作させるにはある程度の時間がかかる可能性があります。
オブジェクト(あらゆるオブジェクト)を保存するサービスとしては、Amazon S3(Amazon Simple Storage Service)がもっとも長い歴史を持っています。Amazon S3それ自体に多くの特典が付いています。たとえば、無料のオンラインセミナー、大量のサンプルコード、ライブラリー、記事、チュートリアル、アマゾンの開発者が定期的に有益なフィードバックを提供してくれる盛況な討論フォーラムなどです。もちろん、Google Cloud ストレージやAzureのStorageも信頼できるしっかりしたサービスを提供していますが、そのリソースはアマゾンのそれにおよびません。とはいえ、グーグルやマイクロソフトは価格面では優れていますので詳しくは細則を読んでみてください。
ときには「cold storage(冷凍保管:通常定期的に利用しないオブジェクトを保存する場合など)」と呼ばれるアーカイブのために、画面表示や接続スピードが遅くなります。しかし、たいていの場合、特に問題にはなりません。サービスの特徴や価格体系はプロバイダーが変わってもほぼ同じです。おそらく、バックエンドに実装したAPIによって条件が変わってきます。サービスのスペックや詳細に関してはAmazon Glacier、Google Storage Nearline、AzureのBackupを検討してください。また、これらのプロバイダーが提供しているアーカイブのソリューションもチェックしてみてください。たとえば、AWSのData Archive、AzureのBackup and Archiveなどがあります。
保存やアーカイブとは別に、プロバイダーはより具体性を持った選択肢を提供しています。たとえば、Google Cloud CDNやAzureのContent Delivery Networkと同様のコンテンツ配信ネットワーク(CDN)を構築することを目的としたAmazon CloundFrontなどです。しかし、要件が独特なものである場合は必ず該当Webサイトを確認します。
解析
コンピューティングやストレージ、配信などを一度に統合し最大限活用できる素晴らしい時代に入ったのですから、いまこそ真剣に考えるときです。クラウドでしかできないことが確かに存在します(インフラに巨額投資できない場合です)。解析について説明します。
ビッグデータの課題は大量の膨大なデータセットの処理(あまりにも膨大なのでメモリに入りきらない)、意味付け、予測利用、これまでにないもの(たとえば、新しい製品、サービス、治療法、都市計画手法など)のモデル作成などがあります。
ビッグデータの活用には特別な技術やプログラミングモデルが必要です。その1つがグーグルが開発したMapReduceです。それから考えればグーグルが先陣を切ってビッグデータの世界を切り開き、たくさんのプロダクトを世に送り出していることはおそらく驚きはないでしょう。プロダクトには、BigQuery(大規模データ解析のためのデータウェアハウスの管理をする)、Cloud Dataflow(リアルタイムデータ処理)、Cloud Dataproc(SparkやHadoopを管理する)、Cloud Datalab(大規模データの調査、解析、見える化)、Cloud Pub/Sub(データのメッセージングやストリーミング)、Genomics(数ペタバイトにおよぶゲノムデータの処理)などがあります。アマゾンやAzureはそれぞれElastic MapReduce(EMR)やHDInsightを使ってビッグデータの活用を試みています。もっと詳しく知りたい人は提供されているビッグデータソリューションのGCP、AWS、Azureを参考にしてください。
しかし、必ずしもデータに意味付けするためにビッグデータを活用する必要はありません。構築された、または構築されていない大量のデータでさえビジネスの機会を見つけるのに役立ちます。これはビジネスインテリジェンス(BI)として知られ、戦略は非常に多様で分野によって大きく異なります。当該ビジネスに関するデータセットがあれば、貴重な材料が埋まっている可能性があります。アマゾンだけがこのニッチ市場をQuickSightで担っています。
こういった事情がありますので、人工知能(AI)分野の1つである機械学習(ML)を利用する必要性がおそらく出てきます。興味深いことに、グーグルはこの分野でも優位に立っており、一般的な機械学習という目的のためだけにCloud Machine Learningを提供しているわけではありません。独自のアプリ用に作成する必要のあったプロダクトにテコ入れをして、アプリを利用するためのインターフェイスまで提供しています。これらのプロダクトはまだ半分がベータ版で機械学習の特定の用途向けに作られたものです。たとえば、Cloud Vision、 Cloud Speech、Cloud Natural Language、Google Translate用のAPIなどがあります。一般的な利用目的での代替手段としてはAmazon Machine Learning、AzureのMachine Learningなどがあります。
場所
サービスをデプロイする場合、主要な対象ユーザーに近いデータセンターを選択したいと考えるかもしれません。たとえば、アメリカの西海岸で不動産や小売りの管理をするとします。遅延を最小限にし、より良いユーザーエクスペリエンス(UX)を提供するために地元でサービスをデプロイしたいと考えます。もちろん、遠くからでもデプロイできますが、UXに悪影響を与えます。
アマゾンが広範囲をカバーしていることは明らかです。
Azureも広がって来ています。アジア地域へのサポートも充実しています。
グーグルはアメリカではしっかりと広い地域をカバーしていますが、ヨーロッパ、そして特にアジアでは遅れをとっており(台湾1箇所だけです)、南アメリカに至ってはまったくカバーできていません。また、どの企業もアフリカではデプロイできていません。
しかし、デプロイの場所によって料金が異なることに注意してください。アメリカ、ヨーロッパの順で通常もっとも料金が安いです。
さらに詳しく知りたい人は、下記を参照してください。
そのほかの製品およびサービス
はじめに述べたとおり、主要なクラウドサービスのみをいくつか紹介しました。最後に、気になるプロダクトをざっと紹介しておきます。
■ネットワーク
- アマゾンのRoute 53、Google DNSまたはAzure DNSを使ってドメイン名システム(DNS)を利用すると、クラウド上でネットワークを構築できる
- アマゾンのElastic Load Balancing、Google Cloud Loud Balancing、AzureのLoad Balancerなどでバランスを取りながらロードする
- アマゾンのVirtual Private Cloud VPC、グーグルのCloud Virtual Network、AzureのVPN Gatewayなどを利用して仮想プライベートネットワーク(VPN)を設定する
■データベース
- アマゾンのRelational Database Service(RDS)(たくさんのDBMSをサポート)やグーグルのCloud SQL(現在、MySQLのみをサポート)、AzureのSQL Database、SQL Data Warehouse、SQL Server Stretch Databaseを使ってSQLソリューションを実装できる
- アマゾンのDynamoDB、グーグルのBigtable、Cloud Datastore、AzureのDocumentDB、Table storageを使って新しいNoSQLソリューションも利用できる
- しかし、キャッシュだけが必要なときにDBを使う人はおらず、そのような場合、アマゾンのElastiCacheやAzureのRedis Cacheがお勧め
- もっと詳しい情報を知りたい人は、アマゾンが提供するソリューションAWSを利用したCloud Databasesを参考に
開発者ツール、管理、安全、アイデンティティ、災害からの復旧…
あげだしたらキリがありません。ここでやめておきます。
そのほかの企業
記事では著名な企業のみを取り上げましたが、クラウドの業界は非常に流動的です。安価な価格でしっかりしたインフラを提供するプロバイダーはたくさんあります。そのほとんどが企業以上に開発者のニーズに注目しています。特にスケーリングのニーズが小規模から中規模程度である場合は、そうしたプロバイダーのサービスを使用してみるのも良いかもしれません。
代替サービスとして、以下のような企業があります。
- Brightbox:イギリスに拠点を置く年中無休をうたうクラウド管理チーム
- Codero:クラウド管理専門
- DigitalOcean:クラウドコンピューティングを開発者向けに安価な価格で提供
- Kyup:Linuxコンテナ上でスケーラブルなクラウド管理を提供
- Linode:要望の多いインフラに対し高性能なSSD Linuxサーバーを提供
- Packet:開発者向けベアメタルクラウドを提供
- Rackspace Cloud:オープンソース技術のOpenStackを提供
- SoftLayer(IBM Cloud):IBM提供の広い地域で利用可能なビジネス向けオプションサービス
- Vultr:安価な価格で世界14都市で利用可能な高性能SSDクラウドを提供
これからすべきこと
アマゾン、グーグル、マイクロソフト、そのほかの企業として紹介したほとんどが、始めやすいプランや新しいアカウントをクレジットカード登録さえなしで提供しています。つまり、クレジットカードを使わず、今後も利用するという約束なしにクラウドサービスを試しに使用できるようになったということです。
ここで止まらないでください! ほかにもたくさんの選択肢があるかもしれません。しかし、ニーズに応じたものから選びます。特定の用途や場所に特化したソリューションが必要な場合はその開発から、または小さな会社から始めるほうが合っていると思うつつましい開発者ならそこから始めてください。
(原文:A Side-by-Side Comparison of AWS, Google Cloud and Azure)
[翻訳:中村文也/編集:Livit]