Azure プロフェッショナルのための Google Cloud Platform: コンピューティング

2017 年 7 月 18 日更新

Microsoft と Google がそれぞれのクラウド環境で提供しているネットワーキング サービスを、比べてみましょう。コンピューティング サービスには、通常、次の 4 つのサービスモデルがあります。

  • サービスとしてのインフラストラクチャ(IaaS): ユーザーは、仮想マシンと、共通タスクを自動化する一連の関連サービスに、直接オンデマンド アクセスする。
  • サービスとしてのプラットフォーム(PaaS): マシンレイヤが完全に抽象化され、ユーザーは高度なサービスと API を利用してリソースを操作する。
  • サービスとしてのコンテナ(CaaS): マシン層は抽象化するが、IaaS モデルの多くの柔軟性が維持される IaaS / PaaS ハイブリッドである。
  • サービスとしての機能(FaaS): ユーザーは、完全なアプリケーションを構築しなくても、サーバーレス PaaS スタイルのマイクロサービスを作成できる。

この記事では、Google および Microsoft によって提供されている IaaS サービスに焦点を当てています。

IaaS に関する比較

IaaS について、Microsoft Azure は Azure 仮想マシン(VM)を提供し、Google Cloud Platform は Compute Engine を提供します。Google と Microsoft は IaaS サービスに関して同様の手法を取っています。両方ともそれぞれのクラウド環境に必須のものであり、ほぼすべてのタイプのカスタマー ワークロードがそれらに基づいて実行されます。

大まかに言うと、Azure と Google Compute Engine の IaaS の用語とコンセプトは、それぞれ次のように対応します。

機能 Azure Compute Engine
仮想マシン 仮想マシン 仮想マシン インスタンス
イメージ イメージ(ブートディスクのみとフルマシンの両方) イメージ(ブートディスクのみ)
カスタム イメージ 一般化された Azure VM カスタム イメージ
VM テンプレート リソース マネージャ テンプレート インスタンス テンプレート
自動インスタンス スケーリング Azure Autoscale Compute Engine オートスケーラー
サポートされる VM インポート形式 VHD RAW、OVA、VMDK、および VHD
デプロイの範囲 リージョン(Cloud Platform のゾーンに相当) ゾーン
プリエンプティブル VM
増分スナップショット

仮想マシン

Compute Engine VM インスタンスと Azure VM には、多数の共通機能があります。両サービス共に次のようなことが可能です。

  • ブートディスク イメージからインスタンスを作成
  • オンデマンドでインスタンスを起動および終了
  • 制限なくインスタンスを管理
  • インスタンスにタグ付け
  • インスタンスで利用可能な各種オペレーティング システムをインストール

マシンアクセス

Compute Engine と Azure の両方で、Windows Remote Management サービスや Remote Desktop Protocol(RDP)などの標準的な方法で Windows マシンにアクセスできます。

Linux マシンの場合、Compute Engine と Azure では SSH ベースでマシンへのアクセスが行われますが、その方法はわずかに異なります。Azure では、VM へ SSH ベースのアクセスを行う場合、SSH 認証鍵を提供する必要があります。これに対して、Compute Engine では、VM インスタンスがすでに実行中であっても、必要なときに鍵を作成できます。

Compute Engine ではブラウザからの SSH も使用することができるため、指定された VM インスタンスに対してブラウザベースの SSH 端末を使用できます。 各プラットフォームに対してエフェメラル コマンドライン インターフェースを提供する Azure Cloud Console や Google Cloud Shell とは異なり、ブラウザからの SSH では、ブラウザから特定の VM インスタンスに直接アクセスできます。Google Cloud Console で利用できるこの機能を使用すれば、ローカルマシンに鍵を保存する必要性がなくなります。

マシンタイプ

Azure と Compute Engine は両方とも、特定の量の仮想 CPU、RAM、およびネットワーク容量を含む、各種の事前定義された仮想マシン構成を提供しています。さらに、Compute Engine では、事前定義された構成ではなく、ワークロードに合わせて VM インスタンスの CPU や RAM リソースをカスタマイズすることができます。

次の表は、2017 年 6 月時点での両方のサービスのマシンタイプを示しています。

マシンタイプ Azure Compute Engine
基本 Basic A0~Basic A4 f1-micro(共有コア)
g1-small(共有コア)
汎用 A0 - A7
A1 v2 - A8 v2
A2m v2 - A8m v2
D1 - D4
D1 v2 - D5 v2
DS1 - DS5
DS1 vs2 - DS5 v2
n1-standard-1~n1-standard-64
コンピューティング最適化 F1 - F16
A8 - A11
H8 - H16mr
n1-highcpu-2~n1-highcpu-64
メモリ最適化 M64ms - M128s
GS1 - GS5
G1 - G5
D11 v2 - D15 v2
D11 - D14
DS11 - DS14
n1-highmem-2~n1-highmem-64
ストレージ最適化 L4s~L32s なし
GPU NC6 - NC24r
NV6 - NV24
すべての非共有コアマシン タイプに接続可能
カスタム VM リソース構成 ×

イメージ

Azure では、ブートディスクのみの OS イメージと、VM のスワップ ディスクまたはデータディスクも含まれている Azure VM イメージが提供されています。Compute Engine マシンのイメージは、ブートディスクのみです。

Azure と Compute Engine のどちらも、Windows、Ubuntu、または Red Hat Enterprise Linux など、一般的に使用されているオペレーティング システムに対応するさまざまなプラットフォームまたはコミュニティ サポート イメージがサポートされています。さらに、SQL Server など、各種の一般的なサーバー アプリケーションが事前にインストールされているイメージもサポートされています。 両方のプラットフォームで、ライセンスが必要なプレミアム オペレーティング システムを使用するイメージを選択すると、通常の VM のコストに加え、ライセンス料の支払いが必要になります。

両方のプラットフォームには、事前構成されたさまざまなエンドツーエンド ソリューションが用意されたマーケットプレイスもあります。Azure には Azure Marketplace があり、Cloud Platform には Cloud Launcher があります。 これらのチャネルを使用して、最小限の構成で、1 つ以上の VM で共通アプリケーションを起動できます。

カスタム イメージのインポート

Azure と Compute Engine には、既存のマシンイメージを各環境にインポートするための方法が用意されています。

  • Azure では、アップロードするマシンイメージが、Azure の Hyper-V バージョンと互換性を持つ VHD になっている必要があります。VHD は、ページ BLOB としてストレージ アカウントに保存します。
  • Compute Engine インポート ツールは RAW、OVA、VMDK、VHD のマシンイメージをサポートします。Google Cloud Storage にイメージをアップロードしてから、gcloud コマンドライン ツールまたは Cloud Console を使用してイメージを Compute Engine にインポートします。イメージやその他の仮想アセットの Compute Engine へのインポートについて詳しくは、インポート方法の選択をご覧ください。

独自のカスタム オペレーティング システムを構築して Compute Engine で実行する場合は、カスタム イメージのハードウェアのサポートとカーネルの要件を満たしている必要があります。

プリエンプティブル VM

Azure は Azure Batch の一部として低優先度 VM を提供しています。これは、高パフォーマンスなバッチ処理用に設計されたサービスです。低優先度 VM は、リソースが完全に利用されていない場合に使用可能になる、一時 VM です。これらの VM は標準 VM よりも料金が安くなりますが、ほとんど通知なく、各コンピューティング サービスによって回収されることがあります。エフェメラル(一時的)という特徴があるため、このような VM は、中断される可能性のあるタスク、もしくは高いコンピューティング機能を使用できるが、それを使用する必要のないタスクをアプリケーションが処理する場合に、非常に役に立ちます。

低優先度 VM は Azure Batch でのみ使用できます。また、デフォルトで Batch アカウントごとに 50 コアに制限されています。2017 年 5 月現在、低優先度 VM はプレビュー状態になっています。

同様に、Compute Engine はプリエンプティブル VM インスタンスを提供しています。これは、Azure の低優先度 VM と用途は同じです。低優先 VM とは異なり、プリエンプティブル VM インスタンスは特定のサービスに関連付けられていないため、柔軟性はわずかに高まります。プリエンプティブル VM インスタンスは、最大で 24 時間持続します。詳細については、プリエンプティブル VM インスタンスをご覧ください。

自動化

スケーリング

Compute Engine と Azure では両方とも、ユーザー定義のポリシーに従ってインスタンスが作成および削除される自動スケーリングがサポートされています。自動スケーリングを使用して、任意の時点で特定の数のインスタンスを維持したり、特定の条件に応じて容量を調節したりすることができます。自動スケーリングされたインスタンスは、ユーザー定義のテンプレートに基づいて作成されます。

Compute Engine と Azure は、同様の方法で自動スケーリングを実装します。

  • Azure Autoscale は、VM スケールセット内でインスタンスをスケーリングします。VM スケールセットは、選択した自動スケーリング ポリシーに従ってインスタンスを作成または削除します。グループ内の新しい各インスタンスは、単一インスタンスの Resource Manager テンプレートに基づいて作成されます。
  • Compute Engine のオートスケーラーは、マネージド インスタンス グループ内のインスタンスをスケーリングします。オートスケーラーによって、選択した自動スケーリング ポリシーに従い、インスタンスが作成および削除されます。インスタンス グループ内の新しいインスタンスは、インスタンス テンプレートから作成されます。

Azure Autoscale では、スケジュール設定と動的という 2 つのタイプの自動スケーリングを使用できます。 スケジュール設定された自動スケーリングでは、スケジュール設定した時間でスケールアップまたはスケールダウンするように VM スケールセットを構成します。動的自動スケーリングでは、CPU 使用率やメッセージ キューの長さなど、メトリックしきい値に基づいてスケールアップおよびスケールダウンするように VM を構成します。

Compute Engine のオートスケーラーでは動的スケーリングのみがサポートされています。ポリシーは、平均 CPU 使用率HTTP 負荷分散処理能力Stackdriver Monitoring の指標に基づいて作成できます。

デプロイメント後の構成

Compute Engine と Azure では両方とも、インスタンスがデプロイされた後に、追加の構成を自動的に実行できる方法が用意されています。Azure では、Azure VM Extensions を追加して、デプロイの後の VM 構成をすばやく行うことができます。Compute Engine では、起動スクリプトを追加して、ソフトウェアのインストール時、更新の実行時、またはサービスをオンにしたときなど、インスタンスを起動するたびに自動化されたタスクを実行できます。

内部ネットワーク

Compute Engine と Azure はどちらも、新しい VM を内部仮想ネットワークに自動接続します。また、追加ネットワークを作成し、両方のサービスでそれらのネットワークに対してインスタンスを起動できます。 Cloud Platform ネットワークと Azure ネットワークの詳細な比較については、ネットワーキングの記事をご覧ください。

ブロック ストレージ

Azure と Compute Engine はどちらも、ネットワーク接続された、およびローカル接続されたブロック ストレージをサポートしています。ブロック ストレージ サービスの詳細な比較については、ブロック ストレージをご覧ください。

料金

このセクションでは、Compute Engine と Azure VM の価格モデルを比較します。

オンデマンド料金

Compute Engine および Azure は、VM の実行に関して似たようなオンデマンド料金体系モデルを有しています。どちらのサービスでも分単位で料金が発生します。Compute Engine には、10 分間の最低利用料金が設定されています。両方のサービスで、VM を無期限に実行できます。

割引料金

Compute Engine と Azure の割引料金のシステムは大きく異なります。

Microsoft は Microsoft Enterprise Agreements によって、非常に大幅な VM 割引を提供しています。これらの契約により、ソフトウェア アシュアランスが完全にカバーされている 1 つ以上の Microsoft Server および Cloud テクノロジーの基本インストールを確約することで、割引価格を適用することができます。Microsoft Enterprise Agreement がない場合でも、販売パートナーを通じて割引を受けられることがあります。

一方、Compute Engine では継続利用割引モデルと確約利用割引モデルの両方が提供されています。

  • 継続利用割引: 1 か月における VM インスタンスの有効時間によって、Compute Engine が自動的に割引をインスタンスに適用します。その月に、インスタンスを長く使用すればするほど、より大きな割引サービスを受けることができます。継続利用割引により、標準的なオンデマンド料金より最大で 30% 安くなります。
  • 確約利用割引: 1 年間または 3 年間のいずれかの期間で、特定の数の仮想 CPU を予約することを確約し、CPU が完全に使用されるかどうかに関係なく、使用に対して課金されます。このモデルは、将来のワークロードに特定の量のコアとメモリを使用することがわかっているような、使用量が予測可能で安定している場合に適しています。 確約使用割引は、標準的なオンデマンド料金よりも最大で 57% 安くなります。

Compute Engine の料金については、Compute Engine の料金をご覧ください。

次のステップ

次へ: ネットワーキング