1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS・Azure・GCPのネットワーク設計思想をIPレベルから比較する ~各サービスの比較表付き~

1
Posted at

はじめに:サービス対応表では見えないNW思想の違い

AWSを使っていて、AzureやGCPも学ぼうとしたとき、まずやるのは「サービス名の対応表」を見ることだと思う。Google Cloudの公式にもAWS・AzureとGoogle Cloudのサービス比較表がある。

EC2 = VM = GCE、RDS = Azure SQL = Cloud SQL、S3 = Blob Storage = Cloud Storage…こういう対応は分かりやすい。

しかし、ネットワークについてはサービス名を対応させるだけでは理解できなかった。AWSではECSタスクにENIがついてVPC内にいるのが当たり前。ところがAzureのApp ServiceはデフォルトでVNet外にいて、プライベート化するには■ PE(Private Endpoint)や▲ VNet統合が必要になる。GCPのCloud Runも同じ。この違いは、サービス名の対応表からは見えてこない。

調べていくうちに、そもそも3社ではネットワークの設計思想が根本的に異なることに気づいた。この違いを正しく理解するために、各サービスがどんなIPを持ち、どこから到達でき、どんな機能を内蔵しているかをIPレベルから積み上げて整理してみた。


結論:3社で異なる「マネージド」の意味 ~IaaS/PaaSで理解する思想の違い~

3社の設計思想

3社とも「マネージドサービスを使え」と公式に推奨しているが、その意味が根本的に異なる。

CSP 設計思想 「マネージドサービスを使え」の意味
AWS:ビルディングブロック型(Primitives) コンピュートはVPC内にENIを持つのがデフォルト。名前解決・振り分け・通信制御は別サービスを組み合わせて実現する 「EC2に全部載せるな。RDS、SQS、S3等の専用ビルディングブロックを使え。ただし組み合わせは自分でやれ」
Azure:PaaSファースト型 PaaSはVNet外がデフォルト。名前解決・振り分けはプラットフォームに内蔵されており、プライベート化には追加設定(■ PE / ▲ VNet統合)が必要 「VMに全部載せるな。App Service等のPaaSに載せろ。名前解決もスケールもプラットフォームがやる」
GCP:フルマネージド型(Simplicity) Azureと同様にPaaSはVPC外がデフォルトだが、URL一つで完結する思想。プライベート化にはAzure同様の追加設定(■ PSC / ▲ VPCコネクタ/Direct VPC)が必要 「GCEに全部載せるな。Cloud Run等のフルマネージドサービスに載せろ。URL一つで完結する」

AWSの「マネージド」は部品が個別にマネージドされている(RDSはDBをマネージド、SQSはキューをマネージド)。ただし組み立ては利用者の仕事。Azure/GCPの「マネージド」は組み立て込みでマネージド。名前解決・振り分け・スケールまでサービスが内蔵している。AzureとGCPの違いは「組み立て込み」の度合いで、Azureは選択肢が多く設定項目も多い(PE、VNet統合、スロット等)。GCPは選択肢を絞って「考えなくていい」方向に振っている。

この思想の違いがIaaS/PaaS/FaaSの密度として表に現れる

各サービスのIPと機能を整理した結果、IaaS / CaaS / PaaS / FaaSの本質的な違いが、種別(そのサービスが何であるか)と機能(何を内蔵しているか)の密度として可視化された。

分類 種別密度 ⚖️ランク VPC/VNetとの関係
IaaS EC2、VM、GCE 💻 −(振り分けは外付け) 中にいる
CaaS ECSタスク、AKS、GKE 💻 −(振り分けは外付け) 中にいる
PaaS App Service、Cloud Run 💻🔀📋 ⚖️※(スティッキーあり) 外にいる(プライベート化は追加設定)
FaaS Lambda、Azure Functions、Cloud Functions 💻🔀📋 ⚖️※※(最小限) 外にいる(プライベート化は追加設定)

IaaS/CaaSは「箱だけ」。種別は💻(コンピュート)のみで、名前解決(📋)も振り分け(🔀)も持たない。オートスケール時のトラフィック制御は、ALBやCloud Mapなど外部の🔀📋サービスを組み合わせて実現する。AWSのECS + ALB + Cloud Mapという構成は、まさにこのビルディングブロック型の典型である。

PaaS/FaaSは「統合型」。種別が💻🔀📋で、名前解決・振り分け・ヘルスチェックをサービス自体が内蔵している。AzureのApp Service、GCPのCloud Run、AWSのLambdaがこれに当たる。利用者が別途LBやDNSを用意する必要がない。オートスケールで増減したインスタンスへの振り分けも、サービス内部でマネージドに行われる。

PaaSとFaaSの違いは⚖️※と⚖️※※に現れる。PaaS(App Service、Cloud Run等)はスティッキーセッション等の制御が可能(⚖️※)。FaaS(Lambda、Cloud Functions等)は「状態を持たない関数」という思想のため、スケール上限(同時実行数等)のみ制御可能でスティッキーセッションなし(⚖️※※)。

パブリックアクセスに注意

PaaS/FaaSはデフォルトでCSPマネージドのパブリックIP(☆共有)でインターネットからアクセス可能。■ PE/■ PSCでプライベートアクセスを追加しても、パブリックアクセスは自動では無効にならない。パブリックアクセスの無効化は明示的な設定が必要であり、■ PEを作成しただけでは、パブリック(☆共有)経由のアクセスが残る。これはAzure(App Service、Azure SQL、Blob Storage等)、GCP(Cloud Run、Cloud SQL等)、AWS(DynamoDB、S3等)で共通の挙動であり、「PEをつけたから安全」と思い込むと見落としやすいポイントである。


目次


1. 凡例

この表ではオートスケール(リソースの増減)自体は扱わない。個々のリソースのIPは固定であり、「スケールするとIPが変わる」のは古いリソースが消え新しいリソースが別のIPで生まれるという話で、レイヤーが異なる。オートスケール時の名前解決・振り分けの問題は、この表の「機能」列で各サービスが何を持っているかとして表現する。

1.1 種別(そのサービスは何か)

絵文字 意味 付与条件
💻 コンピュート(EC2、ECSタスク、VM、App Service、Cloud Run等) コンピュートを実行する
🗄️ DB(RDS、Azure SQL、Cloud SQL等) DBである
📦 ストレージ(S3、Blob Storage、Cloud Storage、EFS等) ネットワーク越しにデータを保持・配信する
🔀 ネットワーク(トラフィックを中継・振り分け・検査する) 機能列に⚖️/⚖️※/⚖️※※/💓/🔄のいずれかがある
📋 名前解決(配下リソースのIPを解決する) 機能列に🌐か🏠がある

1つのサービスが複数の種別を兼ねる場合は絵文字を並記する。AWSでは種別が分かれる傾向があり、Azureでは1サービスに同居する傾向がある(💻🔀📋)。

1.2 機能(オートスケール時の問題をどう解くか)

絵文字 意味
🌐 パブリック名前解決(DNS名でパブリックIPを返す)
🏠 プライベート名前解決(DNS名でプライベートIPを返す)
⚖️ 振り分け・フル制御(利用者がターゲットを定義・登録し、振り分けルール・スティッキーセッション等を制御する。ALB、NLB、Cloud LB等)
⚖️※ 振り分け・制限付き(ターゲットはサービスが自動管理。利用者はスケール上限やスティッキーセッション等の制約を制御可能。Cloud Run、App Service、Container Apps等)
⚖️※※ 振り分け・最小限(ターゲットはサービスが自動管理。利用者はスケール上限(同時実行数等)のみ制御可能。スティッキーセッションなし。Lambda、Cloud Functions等)
💓 ヘルスチェック(異常なターゲットの自動除外)
🔄 リリース制御(異なるバージョン/リビジョン間のトラフィック分割。カナリア、B/G等。⚖️/⚖️※/⚖️※※が同一バージョン内のインスタンス振り分けであるのに対し、🔄はバージョン間の制御)
🛡️ セキュリティ(WAF、ファイアウォール、DDoS防御、認証・レート制限等のトラフィック検査・遮断)。3種類ある:①自身のIPを持ち中継・検査する(Network Firewall、Azure Firewall)→ 🔀🛡️、②他サービスにアタッチして動作する(AWS WAF、Cloud Armor)→ 🛡️のみ、③ルールセット(SG、NSG、GCP Firewall Rules)→ 🛡️のみ。いずれもIP列は自身のIPの有無を表す

※ の付記がある場合は、利用者の制御が制限されていることを示す。※の数が多いほど制御度が低い(例:⚖️※ = スティッキーやスケール上限は制御可、⚖️※※ = スケール上限のみ制御可、🏠※ = 名前解決は別サービス依存)。

1.3 パブリックIPの選択肢

AWS Azure GCP 概念 備考
● EIP ● 静的 ● 静的 固定パブリックIP。リソースと独立して存在し、付け替え可能 IGW経由でENI/NICのプライベートIPにNATされる
○ 自動 ○ 動的 ○ 動的 動的パブリックIP。リソース再作成で変わりうる IGW経由でNATされる。利用者は制御不可
☆ 共有 ☆ 共有 ☆ 共有 CSPマネージド共有エンドポイント。全利用者共通のパブリックIP DNS名はリソース固有だがIPはCSP管理。■ PE/■ PSCでプライベート化しても、パブリックアクセスの無効化は明示的な設定が必要
パブリックIPなし

1.4 プライベートIPの選択肢

AWS Azure GCP 概念 備考
● ENI ● NIC ● NIC リソース自身のネットワークインターフェースにプライベートIPが固定で付与される
■ EP(VPCエンドポイント) ■ PE(プライベートエンドポイント) ■ PSC(Private Service Connect) CSPマネージドサービスへのプライベート接続。エンドポイントにプライベートIPが付与される 利用者がエンドポイントを作成すれば利用可能
−(不要) ▲ VNet統合 ▲ VPCコネクタ / ▲ Direct VPC PaaSからVPC/VNetへのアウトバウンド専用接続 AWSにはない。コンピュートが最初からVPC内にいるため不要
★ 予約(VPC Lattice) −(該当なし) −(該当なし) CSPマネージド予約アドレス(169.254.x.x等) VPC Lattice固有
プライベートIPなし

▲がAWSにだけ存在しない理由が、3社の思想の違いを端的に表す。AWSのコンピュート(ECSタスク等)は最初からVPC内にENIを持つので、アウトバウンド専用接続という概念が不要。Azure/GCPのPaaS(App Service、Cloud Run等)はデフォルトでVNet/VPC外にいるため、VPC内リソースにアクセスするには▲が必要になる。


2. AWS:IPと機能の統合表

AWSもプライベートIPを2列(インバウンド/アウトバウンド)で表記する。大半のサービスはENI一つでイン・アウト共用だが、Lambda等はインバウンドとアウトバウンドで仕組みが異なる。

サービス 種別 パブリックIP プライベート(イン) プライベート(アウト) 機能 備考
EC2 💻 ● EIP / ○ 自動 ● ENI ● ENI IP持つだけ
ECSタスク(awsvpc) 💻 ○ 自動 ● ENI ● ENI IP持つだけ。オートスケール時の振り分けは外部の🔀📋(ALB等)が必要
RDS 🗄️ ○ 自動 ● ENI 受ける側。アウトバウンドなし
DynamoDB 🗄️ ☆ 共有 ■ EP(Gateway EP / Interface EP) RDSと異なりVPC外のマネージドサービス。Gateway EP(無料、ルートテーブル経由、パブリックIP使用)とInterface EP(PrivateLink、プライベートIP使用、オンプレからも到達可)の2種類あり
S3 📦 ☆ 共有 ■ EP
EFS 📦 ● ENI(マウントターゲット) NFS。複数EC2/ECS/Lambdaから同時マウント可
ALB(外部) 🔀📋 ○ 自動 ● ENI ● ENI 🌐🏠⚖️💓 L7振り分け。IP固定不可
ALB(内部) 🔀📋 ● ENI ● ENI 🏠⚖️💓
NLB(外部) 🔀📋 ● EIP ● ENI ● ENI 🌐🏠⚖️💓 L4振り分け。IP固定可
NLB(内部) 🔀📋 ● ENI ● ENI 🏠⚖️💓
API Gateway(パブリック) 🔀📋🛡️ ☆ 共有 ■ EP 🌐⚖️🛡️ スロットリング、認証、DDoS防御内蔵
API Gateway(プライベート) 🔀📋🛡️ ■ EP 🏠⚖️🛡️
VPC Lattice 🔀📋🛡️ ★ 予約 🏠⚖️💓🔄🛡️ 169.254.171.x。IAM認証内蔵。SGはプレフィックスリストで制御
Service Connect 🔀📋 ● ENI(サイドカー) ● ENI(サイドカー) 🏠⚖️💓 ECSタスク間のみ。同一名前空間内、VPCまたぎ可
App Mesh(2026/9廃止) 🔀 ● ENI(サイドカー) ● ENI(サイドカー) 🏠※⚖️💓🔄 ※📋はCloud Map依存。mTLS、サーキットブレーカーあり
Cloud Map(パブリック名前空間) 📋 ☆ 共有 ■ EP 🌐🏠 IPを教えるだけ。中継しない。ECS連携ではプライベートIPが登録される
Cloud Map(プライベート名前空間) 📋 ☆ 共有 ■ EP 🏠 IPを教えるだけ。中継しない
Route 53 📋 ☆ 共有 ■ EP 🌐🏠🔄 DNS層。加重ルーティング可
NAT Gateway 🔀 ● EIP ● ENI アウトバウンド専用。📋なし
Amplify Hosting 📦💻🔀📋 ☆ 共有 🌐⚖️※💓 静的+SSR(Lambda@Edge)。CloudFront統合。プライベート化不可
SageMaker エンドポイント 💻🔀📋 ☆ 共有 ■ EP ● ENI 🌐🏠⚖️💓🔄 推論。複数バリアント振り分け+カナリア/B/G対応
Lambda(呼ばれる側) 💻🔀📋 ☆ 共有 ■ EP 🌐⚖️※※ Invoke APIはVPC設定に無関係。☆共有経由で呼ばれる。振り分けは自動。同時実行数のみ制御可
Lambda(呼ぶ側・VPC内) 💻 ● ENI Hyperplane ENI経由でVPC内リソースに到達。外に出るにはNAT GWか■ EP必要
Lambda(呼ぶ側・VPC外) 💻 ☆ 共有 AWS基盤経由で外部に到達。NAT GW不要
AWS WAF 🛡️ 🛡️ 自身のIPなし。ALB・API GW・CloudFrontにアタッチして動作
AWS Shield 🛡️ 🛡️ 自身のIPなし。DDoS防御。CloudFront・ALB等にアタッチ
AWS Network Firewall 🔀🛡️ ● ENI ● ENI 🛡️ 自身のENIを持ちVPC内でトラフィックを中継・検査
セキュリティグループ 🛡️ 🛡️ 自身のIPなし。ENIに付与するルールセット
AWSマネージドAPI全般 ☆ 共有 ■ EP KMS、STS、Secrets Manager、ECR、CloudWatch、SNS、SQS、Step Functions、Bedrock等。パブリックAPIあり、VPCエンドポイントでプライベート化可能

3. Azure:IPと機能の統合表

AzureはプライベートIPが2列(インバウンド/アウトバウンド)。PaaSはデフォルトでVNet外のため、インバウンドは■ PE、アウトバウンドは▲ VNet統合という別々の仕組みでプライベート化する。

サービス 種別 パブリックIP プライベート(イン) プライベート(アウト) 機能 備考
VM 💻 ● 静的 / ○ 動的 ● NIC ● NIC IP持つだけ
AKSノード 💻 ○ 動的 ● NIC ● NIC
Azure SQL、Cosmos DB等 🗄️ ☆ 共有 ■ PE
Blob Storage 📦 ☆ 共有 ■ PE
Azure Files 📦 ☆ 共有 ■ PE SMB/NFS。EFS相当
Azure LB(外部) 🔀📋 ● 静的 🌐⚖️💓 L4
Azure LB(内部) 🔀📋 ● NIC 🏠⚖️💓
Application Gateway 🔀📋🛡️ ● 静的 ● NIC ● NIC 🌐🏠⚖️💓🔄🛡️ L7+WAF内蔵。VNet内にデプロイ
Front Door 🔀📋🛡️ ☆ 共有 🌐⚖️💓🔄🛡️ グローバルL7+CDN+WAF+DDoS内蔵
App Service(デフォルト) 💻🔀📋 ☆ 共有 🌐🏠⚖️※💓 名前解決+振り分け内蔵。VNet外
App Service + ■ PE 💻🔀📋 ☆ 共有(無効化可) ■ PE 🌐🏠⚖️※💓 インバウンドをプライベート化
App Service + ▲ VNet統合 💻🔀📋 ☆ 共有 ▲ VNet統合 🌐🏠⚖️※💓 アウトバウンドをVNet経由に
App Service + ■ + ▲ 💻🔀📋 ☆ 共有(無効化可) ■ PE ▲ VNet統合 🌐🏠⚖️※💓 完全プライベート化
Azure Functions(デフォルト) 💻🔀📋 ☆ 共有 🌐🏠⚖️※※💓 App Serviceと同じ基盤。スティッキーセッションなし
Azure Functions + ■ + ▲ 💻🔀📋 ☆ 共有(無効化可) ■ PE ▲ VNet統合 🌐🏠⚖️※※💓
Container Apps(デフォルト) 💻🔀📋 ☆ 共有 ● 環境内DNS ▲ VNet統合 🏠⚖️※💓 環境内で名前解決自動
Container Apps + Dapr 💻🔀📋 ☆ 共有 ● 環境内DNS ▲ VNet統合 🏠⚖️※💓🔄 mTLS、Pub/Sub等
Static Web Apps 📦💻🔀📋 ☆ 共有 ■ PE ▲ VNet統合 🌐⚖️※💓 Vercel相当。静的+SSR+API統合。■ PE対応
Azure ML エンドポイント 💻🔀📋 ☆ 共有 ■ PE ▲ VNet統合(マネージドVNet) 🌐🏠⚖️💓🔄 SageMakerエンドポイント相当。トラフィック分割対応
API Management 🔀📋🛡️ ☆ 共有 ■ PE ▲ VNet統合 🌐🏠⚖️💓🔄🛡️ 認証、レート制限内蔵
Azure DNS 📋 ☆ 共有 🌐🏠🔄 Route 53相当
NAT Gateway 🔀 ● 静的 アウトバウンド専用
Azure Firewall 🔀🛡️ ● 静的 ● NIC ● NIC 🛡️ 自身のIPを持ちVNet内で中継・検査。FQDN/アプリケーションルール対応
Azure WAF 🛡️ 🛡️ 自身のIPなし。Application Gateway・Front Doorに内蔵される形で動作
Azure DDoS Protection 🛡️ 🛡️ 自身のIPなし。VNet全体に適用
NSG 🛡️ 🛡️ 自身のIPなし。NIC・サブネットに付与するルールセット
AzureマネージドAPI全般 ☆ 共有 ■ PE Key Vault、Service Bus、Event Hubs、Azure Container Registry、Azure OpenAI等。パブリックAPIあり、PEでプライベート化可能

4. GCP:IPと機能の統合表

GCPもAzureと同様にプライベートIPが2列。PaaSはデフォルトでVPC外。Azureとの違いは、Cloud Runがゼロスケール対応であること、中間の選択肢(Container Apps+Daprに相当するもの)が少なく、Cloud RunかGKE+Istioの二択に近いこと。

サービス 種別 パブリックIP プライベート(イン) プライベート(アウト) 機能 備考
GCE(Compute Engine) 💻 ● 静的 / ○ 動的 ● NIC ● NIC IP持つだけ
GKEノード 💻 ○ 動的 ● NIC ● NIC
Cloud SQL 🗄️ ☆ 共有 ■ PSC Private Services Accessでも● NIC相当のプライベートIP付与可
Cloud Storage 📦 ☆ 共有 ■ PSC
Filestore 📦 ● NIC NFS。EFS / Azure Files相当。VPC内にデプロイ
Cloud Load Balancing(外部) 🔀📋 ● 静的 🌐⚖️💓🔄 グローバルL7/リージョナルL4。加重ルーティング可
Cloud Load Balancing(内部) 🔀📋 ● NIC 🏠⚖️💓🔄
Cloud Run(デフォルト) 💻🔀📋 ☆ 共有 🌐🏠⚖️※💓 URL一つで完結。ゼロスケール対応。VPC外
Cloud Run + ingress internal 💻🔀📋 内部LBまたは■ PSC経由 🏠⚖️※💓 インバウンドを内部のみに制限
Cloud Run + ▲ VPCコネクタ 💻🔀📋 ☆ 共有 ▲ VPCコネクタ 🌐🏠⚖️※💓 アウトバウンドをVPC経由に
Cloud Run + ▲ Direct VPC 💻🔀📋 ☆ 共有 ▲ Direct VPC 🌐🏠⚖️※💓 コネクタ不要の新方式。低レイテンシ
Cloud Functions(デフォルト) 💻🔀📋 ☆ 共有 🌐🏠⚖️※※💓 Cloud Runと同じ基盤。スティッキーセッションなし
Cloud Functions + ▲ VPCコネクタ 💻🔀📋 ☆ 共有 ▲ VPCコネクタ 🌐🏠⚖️※※💓
Firebase Hosting 📦💻🔀📋 ☆ 共有 🌐⚖️※💓 Amplify相当。静的+Cloud Run統合。プライベート化不可
Vertex AI エンドポイント 💻🔀📋 ☆ 共有 ■ PSC ● NIC(VPCピアリング経由) 🌐🏠⚖️💓🔄 SageMaker / Azure MLエンドポイント相当。トラフィック分割対応
GKE + kube-dns 💻🔀📋 ○ 動的 ● NIC ● NIC 🏠⚖️💓 K8s標準機能
GKE + Istio 💻🔀📋 ○ 動的 ● NIC ● NIC 🏠⚖️💓🔄 mTLS、カナリア。運用が重い
Cloud DNS 📋 ☆ 共有 🌐🏠🔄 Route 53 / Azure DNS相当
Cloud NAT 🔀 ● 静的 アウトバウンド専用
Cloud Armor 🛡️ 🛡️ 自身のIPなし。Cloud Load Balancingにアタッチして動作
GCP Firewall Rules 🛡️ 🛡️ 自身のIPなし。VPC・VMに付与するルールセット。SG/NSG相当
GCPサービスAPI全般 ☆ 共有 ■ PSC Cloud KMS、Artifact Registry、Pub/Sub等。Private Google Access有効ならVPCからパブリックIP不要で到達可能

5. 3社比較で見えること

5.1 種別列の密度が思想を表す

  • AWS:💻と🔀📋が別の行。ECSタスク(💻)+ ALB(🔀📋)+ Cloud Map(📋)を組み合わせる。ただしLambdaは例外で💻🔀📋を1行で持ち、App Service/Cloud Runと同じ統合型
  • Azure:App Serviceが💻🔀📋を1行で持つ。1サービスで名前解決+振り分け+コンピュートが完結
  • GCP:Cloud Runが💻🔀📋を1行で持つ。Azureと同じだがゼロスケール対応で更にシンプル

5.2 ⚖️の3ランクが設計思想を表す

  • ⚖️(フル制御):ALB、NLB、Cloud LB等。利用者がターゲットを登録し、振り分けルール・スティッキーセッション等を定義する。EC2/ECSはこれを外部に用意しないとオートスケール時の振り分けができない
  • ⚖️※(制限付き):App Service、Cloud Run、Container Apps等。ターゲットはサービスが自動管理。利用者はスケール上限やスティッキーセッション等の制約を制御可能
  • ⚖️※※(最小限):Lambda、Cloud Functions、Azure Functions等。ターゲットはサービスが自動管理。利用者はスケール上限(同時実行数等)のみ制御可能。スティッキーセッションなし
  • 🔄(リリース制御):上記3ランクとは別の軸。同一バージョン内のインスタンス振り分け(⚖️)ではなく、異なるバージョン間のトラフィック分割(カナリア、B/G等)

5.3 プライベートIP列の数が思想を表す

  • AWS:2列だが、大半のサービスはイン・アウトとも● ENIで同じ値。コンピュートが最初からVPC内にいるため。ただしLambdaのようにインバウンド(☆ 共有 / ■ EP)とアウトバウンド(● ENI)が異なるサービスもある
  • Azure/GCP:2列。■ PE/■ PSC(インバウンド)と▲ VNet統合/▲ VPCコネクタ(アウトバウンド)が別の仕組み。PaaSがデフォルトでVNet/VPC外にいるため

5.4 プライベート化の方向が逆

  • AWS:デフォルトでVPC内(プライベート)。パブリックにするには追加設定(パブリックIP付与、IGW、ALB等)
  • Azure/GCP:デフォルトでパブリック(☆ 共有)。プライベートにするには追加設定(■ PE/■ PSC、▲ VNet統合/▲ VPCコネクタ)

5.5 ▲がAWSにだけない理由

AWSのECSタスクは最初からVPC内にENIを持つので、「PaaSからVPCに接続する」という概念自体が不要。Azure/GCPのPaaSは「VPCの外に存在するサービスを、必要に応じてVPCに接続する」という逆の思想のため、▲というAWSにはない仕組みが必要になる。

5.6 🛡️の付与基準

セキュリティサービスは3種類に分かれ、IP列の値でその違いが可視化される。

  • 🔀🛡️(自身のIPを持ち中継・検査する):AWS Network Firewall、Azure Firewall。VPC/VNet内にENI/NICを持ち、トラフィックを中継しながら検査する。GCPには対応するマネージドサービスがない(Cloud Armorはアタッチ型)
  • 🛡️(アタッチ型):AWS WAF、AWS Shield、Azure WAF、Azure DDoS Protection、Cloud Armor。自身のIPを持たず、ALB・API Gateway・LB等にアタッチして動作する
  • 🛡️(ルールセット):SG、NSG、GCP Firewall Rules。自身のIPを持たず、ENI/NIC・サブネット・VPCに付与されるルール

また、API Gateway・VPC Lattice・Application Gateway・Front Door・API Managementのように、セキュリティ機能を内蔵するサービスは種別に🛡️を並記する(🔀📋🛡️等)。

5.7 📋名前解決は至るところにある

名前解決=Route 53やCloud DNSだけだと思いがちだが、表の📋を数えると驚くほど多い。ALB、API Gateway、Lambda、App Service、Cloud Run、SageMaker、Amplify…振り分けや中継をするサービスは全て何らかの名前解決をしている。「カスタムドメインを使う」のはDNSサービス(Route 53、Azure DNS、Cloud DNS)の仕事だが、「サービスが自動で割り当てたDNS名でトラフィックを届ける」という意味での名前解決は、ほぼ全ての🔀サービスに内蔵されている。

5.8 機能列を眺めるだけで設計判断ができる

⚖️の3ランクと🔄の組み合わせパターンを見るだけで、各サービスの性格が浮かび上がる。

パターン 意味
⚖️💓 フル制御LB ALB、NLB
⚖️💓🔄 フル制御+カナリア Cloud LB、VPC Lattice
⚖️※💓 自動振り分け+スティッキー可 Cloud Run、App Service
⚖️※💓🔄 自動振り分け+カナリア Container Apps+Dapr
⚖️※※ 全自動・最小限 Lambda、Cloud Functions
何もなし、箱だけ EC2、ECS

EC2/ECSの「−」が一番雄弁である。何も持っていないからこそ、ALBやCloud Mapを外付けする必要がある。それがAWSの「ビルディングブロック型」の本質であり、逆にLambdaやCloud Runの行に⚖️※や⚖️※※が並んでいるのは、これらがPaaS/FaaSとして「統合型」であることの証拠である。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?