IaaSについて、AWSとAzureとGCPを比較してみました。

注)
Azureについては、リソースマネージャーモデルについて記載しています。
GCPについては、サブネットネットワークについて記載しています。

1. ネットワークの構成要素

AWS Azure GCP
1 リージョン リージョン リージョン
2 VPC 仮想ネットワーク VPCネットワーク
3 アベイラビリティゾーン(AZ) 可用性ゾーン* ゾーン
4 サブネット サブネット サブネット
5 EC2 仮想マシン Compute Engine
6 ネットワークインターフェイス 仮想NIC ネットワークインターフェイス
7 セキュリティーグループ ネットワークセキュリティグループ(NSG) ファイアウォールルール
8 ネットワークACL ネットワークセキュリティグループ(NSG) ファイアウォールルール

*プレビュー

2. リージョンとアベイラビリティゾーンとVPCとサブネット

IaaS比較vpc (1).png

リージョンは地理的に離れたロケーションことで、さらに1つのリージョンはデータセンターが設置される複数の独立したアベイラビリティゾーン(Azure:可用性ゾーン、GCP:ゾーン)から構成されます。
(*但しAzure:可用性ゾーンは未だプレビュー)

VPC(Azure:仮想ネットワーク)は、他と論理的に切り離された仮想ネットワークのことで、その中に1つまたは複数のサブネットを定義してEC2(Azure:仮想マシン、GCP:Compute Engine)を配置します。

複数のアベイラビリティゾーン(Azure:可用性ゾーン、GCP:ゾーン)にEC2等を配置し冗長構成をとることにより、可用性を高めることができます。(AWS用語でMulti-AZ)

Azureの可用性ゾーンは未だプレビューなので、現時点で冗長構成をとるためには可用性セットを構成します。
一方AWSは2017のre:InventでAzureの可用性セットと似た機能を提供するスプレッドプレイスメントグループをリリースしています。こちらは複数のアベイラビリティゾーンにまたがることが可能です。

・各クラウド間での違い-その1

AWSはアベイラビリティゾーンをまたがってサブネットを構成することができませんが、AzureとGCPは可用性ゾーン・ゾーンをまたがってサブネットを構成します。

・各クラウド間での違い-その2

AWSとAzureはVPC・仮想ネットワークに対しCIDR表記でIPアドレス空間を指定する必要があり、サブネットはVPCのIPアドレス空間の範囲に制限されますが、GCPはVPCに対しIPアドレス空間を指定せず、サブネットはRFC1918の範囲で自由に割り当てることができます。(例:192.168.0.0/24と10.0.1.0/24等)

3. セキュリティーグループとネットワークACL

IaaS比較sg.png

AWSはEC2のネットワークインターフェースに対しセキュリティグループを、サブネットに対しネットワークACLを関連づけることにより、INとOUTのネットワークトラフィックを制御します。
Azureは仮想マシンのNICやサブネットに対しネットワークセキュリティグループ(NSG)を関連づけることにより、INとOUTのネットワークトラフィックを制御します。
一方GCPはVPCネットワークに対しファイアウォールルールを設定することにより、INとOUTのネットワークトラフィックを制御します。設定がサブネット単位ではなくまた宛先をCIDRで指定できないため、サブネット単位で制御したい場合はタグを利用する場合もあります。

・各クラウド間での違い-その3

AWSのネットワークACLはセキュリティーグループと違いステートレスなので、明示的に戻りのトラフィックを許可する必要があります。

・各クラウド間での違い-その4

AWSのセキュリティーグループは、ネットワークACLやAzure・GCPと異なり許可のみ設定が可能です。

4.コスト

AWS Azure GCP
インスタンスの課金単位 秒単位(最小課金時間60秒) 分単位 秒単位(最小課金時間60秒)
長期利用割引の仕組み リザーブドインスタンス(1年または3年) Reserved VM Instances(1年または3年) 確約利用割引(1年または3年)・継続利用割引(自動適用)
短期利用割引の仕組み スポットインスタンス (Batch low-priority VM)* プリエンプティブインスタンス

*現在はAzure Batchのみ

秒単位の課金のAWSとGCPに比べ分単位の課金のAzureの方が不利に見えますが、下記ブログを信じる限り秒以下を切り捨てて課金するためAWSやGCPよりちょっとお買い得です。
 In Azure, we bill all virtual machines (VMs) running Linux and Windows on a per-minute basis, rounded down to the nearest minute.

・各クラウド間での違い-その5

AWSのスポットインスタンス、GCPのプリエンプティブインスタンスに相当するものがAzureにはありません。
ただ現在Azure Batchに限りlow-priority VMが利用できます。Azureのドキュメントに下記記述があるので、将来は仮想マシンでも利用できるようになるかもしれません。
 Low-priority VMs are currently available only for workloads running in Batch.

5. まとめ

AWS・Azure・GCP間でいくつか違いがあるものの、基本的な部分はそこまで大きな差はないようです。
他クラウドにあるがまだ無い機能がプレビュー提供中だったりと、どんどん違いが無くなって均質化していく感じがします。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.