IaaSについて、AWSとAzureとGCPを比較してみました。
(2018.8.5修正)
注)
Azureについては、リソースマネージャーモデルについて記載しています。
GCPについては、サブネットネットワークについて記載しています。
1. ネットワークの構成要素
AWS | Azure | GCP | |
---|---|---|---|
1 | リージョン | リージョン | リージョン |
2 | VPC | 仮想ネットワーク | VPCネットワーク |
3 | アベイラビリティゾーン(AZ) | 可用性ゾーン1 | ゾーン |
4 | サブネット | サブネット | サブネット |
5 | EC2 | 仮想マシン | Compute Engine |
6 | ネットワークインターフェイス | 仮想NIC | ネットワークインターフェイス |
7 | セキュリティーグループ | ネットワークセキュリティグループ(NSG) | ファイアウォールルール |
8 | ネットワークACL | ネットワークセキュリティグループ(NSG) | ファイアウォールルール |
2. リージョンとアベイラビリティゾーンとVPCとサブネット
リージョンは地理的に離れたロケーションことで、さらに1つのリージョンはデータセンターが設置される複数の独立したアベイラビリティゾーン(Azure:可用性ゾーン、GCP:ゾーン)から構成されます。
VPC(Azure:仮想ネットワーク)は、他と論理的に切り離された仮想ネットワークのことで、その中に1つまたは複数のサブネットを定義してEC2(Azure:仮想マシン、GCP:Compute Engine)を配置します。
複数のアベイラビリティゾーン(Azure:可用性ゾーン、GCP:ゾーン)にEC2等を配置し冗長構成をとることにより、可用性を高めることができます。(AWS用語でMulti-AZ)
一方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
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 | |
---|---|---|---|
インスタンスの課金単位2 | 秒単位(最小課金時間60秒) | 秒単位3 | 秒単位(最小課金時間60秒) |
長期利用割引の仕組み | リザーブドインスタンス(1年または3年) | Reserved VM Instances(1年または3年) | 確約利用割引(1年または3年)・継続利用割引(自動適用) |
短期利用割引の仕組み | スポットインスタンス | low-priority VM4 | プリエンプティブインスタンス |
5. まとめ
AWS・Azure・GCP間でいくつか違いがあるものの、基本的な部分はそこまで大きな差はないようです。
他クラウドにあるがまだ無い機能がプレビュー提供中だったりと、どんどん違いが無くなって均質化していく感じがします。
-
但しAzure:可用性ゾーンは日本未導入 ↩
-
秒単位の課金は以下で起動されるインスタンスに適用されます。オンデマンドの予約済みスポットフォーム, すべてのリージョンとアベイラビリティーゾーン, Amazon Linux および Ubuntu ↩
-
[仮想マシンの実行時間に対して秒単位で課金しますが、超過した秒数に対して課金しません。例えば、仮 想マシンの実行時間が 6 分 59 秒だった場合、課金対象となるのは 6 分 (360 秒) のみです。] (http://download.microsoft.com/download/6/1/6/6166d6c1-0ac3-4869-840d-53bcc85319db/1933-NOC1_MS_CnE_license_azure.pdf) ↩
-
Batchでの利用はGA, スケールセットでの利用はプレビュー ↩