[AWS][Azure]ネットワークの基本的な考え方(VPC・VNET周り)[GoogleCloud][OCI]
はじめに
各パブリッククラウドのサービスは、どこかのサービスがリードしてもすぐに追いつけ追い越せで、特にベーシックなサービス群についてはほとんど差が無い状態かと思います。(というと各所から石を投げられそうですが)
各クラウドでは、似たような機能を別の名前で使っていたり、同じ名前で微妙に異なる機能を提供していたり、マルチリンガル(マルチクラウド)なことを考えていると混乱しがちです。
Azureにおいては、公式ドキュメントでも別クラウドエンジニア向けの解説ページがあり、それぞれのエンジニアが理解できるような解説が成されています。
しかし、逆方向の解説はあまり見たことが無いし(Azureエンジニア向けのGCPの解説とか…)、複数クラウドを横並びで解説する…みたいな情報も世の中には少ないです。
ということで、今回は国内で最もベーシックな機能と言っても過言ではない、AWSで言うところのVPC周りの概念について、各クラウドの考え方を整理しました。
※最近伸びている(?)OCIを含める一方で、本当はAlibabaとかも並べてみたいところ。しかし私の力不足により…。
各クラウドのネットワークの基本
AWS
まずはシェアNo.1であるAWSから。
AWSから勉強されるかとも多いと思いますので、詳細は割愛ですが、リージョン(地域/東京や大阪など)の配下にVPCを定義し、VPC配下のサブネットリソースはさらにAvailability Zoneを指定して作成する形になっています。
Azure
AWSとの違いでいうと、サブネットはVNETの配下に作成するだけで特に可用性ゾーンを指定しないというところが差分です。
Azureは元々可用性ゾーンの概念がなかったため、「あるサブネットにVMをデプロイする」という操作をしたときに、「リージョン内のどの可用性ゾーンにデプロイされるかは不定」というのが基本的な動きになっています。
そのため、このような考え方になっているものと想定されます。
GoogleCloud
GoogleCloudのVPCはグローバルなリソースとなるため、リージョンに跨る形で定義されます。
また、サブネットの考え方はAzureに近く、ゾーンを跨って同じネットワークとして作成することができます。
ちなみに、各リージョンにデフォルトで作成されるサブネットが、セキュリティ的にガバガバだから気を付けろ、何ていう話もありますね。
GoogleCloudはやっぱり根底にWEBシステムがあるというか、「世界中からインターネットとしてアクセスしてくるシステム」としての思想があるように思います。なので、同じシステムは全世界同じVPCに所属するんですね。(私見です)
OCI
OCIは名前がちょっと独特な感じです。
VCN(Virtual Cloud Network)はリージョン内のリソースで、AWSのVPCやAzureのVNETと同じ。
サブネットはAvailabnility Domain(他でいうaz、availability zone)を跨ぐことができ、これはAzureやGoogleCloudと似ています。
後発な分、他クラウドの便利そうなところは良いとこ取りしているという感じでしょうか。
おわりに
4つのクラウドサービスの、ベーシックなネットワーク周りについて比較してみました。
私が普段触るのはAzureが中心ですが、AWSも基本的な知識はあり、GoogleCloudやOCIは基礎くらい…という知識レベルなのですが、時々混乱することがあるので一度整理して見ましたというのが今回のまとめです。
こういう記事が伸びるようだったら、他の要素も勉強がてら調べながら書いてみようかな、と思います。
Discussion