<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Vendor-Mapping on Tarragon</title><link>https://tarrragon.github.io/blog/tags/vendor-mapping/</link><description>Recent content in Vendor-Mapping on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Wed, 27 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/vendor-mapping/index.xml" rel="self" type="application/rss+xml"/><item><title>0.19 雲端服務對照地圖（AWS / GCP / Azure）</title><link>https://tarrragon.github.io/blog/backend/00-service-selection/cloud-vendor-capability-mapping/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/backend/00-service-selection/cloud-vendor-capability-mapping/</guid><description>&lt;p>面對「我該選 AWS 還是 GCP？」這類問題、第一步是把後端能力分類對應到三家雲廠商的具體服務名稱、技術細節放後面。本章提供這份對照地圖、同時警告一件事：AWS、GCP、Azure 在大部分能力上都有對應產品，但「對應」不等於「等價」— 同樣是 managed SQL、AWS RDS、GCP Cloud SQL、Azure SQL 在備份頻率、replica 行為、failover 時間、跨區複製成本上都有差異。對照表是入口、不是決策本身。&lt;/p>
&lt;h2 id="為什麼需要這張對照地圖">為什麼需要這張對照地圖&lt;/h2>
&lt;p>兩種使用情境會需要這張表。第一是初次選型時，讀者已經選定主要雲廠商，要對照各能力分類找出 vendor 名稱。第二是跨雲遷移評估，讀者要對照源端跟目標端的能力 gap。沒有這張表，每次都要重新查文件、容易漏掉某個能力。&lt;/p>
&lt;p>但這張表不能取代深入評估。每個 vendor 都有不在表格內的差異，例如配額、區域可用性、跨服務整合、計價模型。表格是路由起點，後續判讀要進到該 vendor 的 deep article。&lt;/p>
&lt;h2 id="能力--雲廠商對照表">能力 × 雲廠商對照表&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>能力分類&lt;/th>
 &lt;th>AWS&lt;/th>
 &lt;th>GCP&lt;/th>
 &lt;th>Azure&lt;/th>
 &lt;th>對照判讀重點&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>關聯式 DB（OLTP）&lt;/td>
 &lt;td>RDS / Aurora&lt;/td>
 &lt;td>Cloud SQL / AlloyDB&lt;/td>
 &lt;td>Azure SQL / Azure Database for Postgres&lt;/td>
 &lt;td>failover 時間、跨區 replica、IOPS 計價&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>全球分散式 DB&lt;/td>
 &lt;td>Aurora DSQL / DynamoDB Global Tables&lt;/td>
 &lt;td>Spanner&lt;/td>
 &lt;td>Cosmos DB&lt;/td>
 &lt;td>一致性模型、寫入延遲、計價單位&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>KV / Document DB&lt;/td>
 &lt;td>DynamoDB&lt;/td>
 &lt;td>Firestore / Bigtable&lt;/td>
 &lt;td>Cosmos DB&lt;/td>
 &lt;td>partition key 設計、capacity mode、跨區一致性&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>快取&lt;/td>
 &lt;td>ElastiCache（Redis / Memcached）&lt;/td>
 &lt;td>Memorystore&lt;/td>
 &lt;td>Azure Cache for Redis&lt;/td>
 &lt;td>跨區複製、persistence、容量上限&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>訊息佇列&lt;/td>
 &lt;td>SQS / SNS / Kinesis&lt;/td>
 &lt;td>Pub/Sub&lt;/td>
 &lt;td>Service Bus / Event Hubs&lt;/td>
 &lt;td>delivery guarantee、ordering、retention 期&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>事件流（Kafka）&lt;/td>
 &lt;td>MSK / Kinesis&lt;/td>
 &lt;td>Pub/Sub&lt;/td>
 &lt;td>Event Hubs (Kafka compatibility)&lt;/td>
 &lt;td>Kafka 相容性、partition 數量、跨區複製&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>物件儲存&lt;/td>
 &lt;td>S3&lt;/td>
 &lt;td>Cloud Storage&lt;/td>
 &lt;td>Blob Storage&lt;/td>
 &lt;td>一致性模型、跨區複製、lifecycle policy&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>容器執行平台&lt;/td>
 &lt;td>ECS / EKS / Fargate&lt;/td>
 &lt;td>GKE / Cloud Run&lt;/td>
 &lt;td>AKS / Container Apps&lt;/td>
 &lt;td>managed 程度、cold start、計價單位&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Serverless 函式&lt;/td>
 &lt;td>Lambda&lt;/td>
 &lt;td>Cloud Functions / Cloud Run&lt;/td>
 &lt;td>Azure Functions&lt;/td>
 &lt;td>最大執行時間、cold start、整合方式&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Load Balancer&lt;/td>
 &lt;td>ELB（ALB / NLB / CLB）&lt;/td>
 &lt;td>Cloud Load Balancing&lt;/td>
 &lt;td>Azure Load Balancer / App Gateway&lt;/td>
 &lt;td>L4 vs L7、跨區 LB、TLS termination&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>API Gateway&lt;/td>
 &lt;td>API Gateway&lt;/td>
 &lt;td>API Gateway / Apigee&lt;/td>
 &lt;td>API Management&lt;/td>
 &lt;td>rate limit、auth 整合、計價&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>CDN / 邊緣&lt;/td>
 &lt;td>CloudFront&lt;/td>
 &lt;td>Cloud CDN / Media CDN&lt;/td>
 &lt;td>Azure Front Door / CDN&lt;/td>
 &lt;td>edge POP 數、purge API、cache key 彈性&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>監控&lt;/td>
 &lt;td>CloudWatch&lt;/td>
 &lt;td>Cloud Monitoring&lt;/td>
 &lt;td>Azure Monitor&lt;/td>
 &lt;td>metric retention、dashboard 表達力、整合範圍&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Log 聚合&lt;/td>
 &lt;td>CloudWatch Logs&lt;/td>
 &lt;td>Cloud Logging&lt;/td>
 &lt;td>Log Analytics&lt;/td>
 &lt;td>ingestion 成本、query 語言、retention&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Tracing&lt;/td>
 &lt;td>X-Ray&lt;/td>
 &lt;td>Cloud Trace&lt;/td>
 &lt;td>Application Insights&lt;/td>
 &lt;td>sampling 策略、跨服務 trace、整合 SDK&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Secret Management&lt;/td>
 &lt;td>Secrets Manager / SSM Parameter&lt;/td>
 &lt;td>Secret Manager&lt;/td>
 &lt;td>Key Vault&lt;/td>
 &lt;td>旋轉支援、整合 IAM、稽核 log&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Identity / IAM&lt;/td>
 &lt;td>IAM&lt;/td>
 &lt;td>IAM&lt;/td>
 &lt;td>Entra ID（前 AAD） + Azure RBAC&lt;/td>
 &lt;td>跨服務 policy、token lifetime、federation&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>CI/CD&lt;/td>
 &lt;td>CodePipeline / CodeBuild&lt;/td>
 &lt;td>Cloud Build / Cloud Deploy&lt;/td>
 &lt;td>Azure Pipelines&lt;/td>
 &lt;td>整合 Git 平台、執行環境彈性、計價單位&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>這張表以全球 hyperscaler 三巨頭為主、不是市場全貌。&lt;strong>Oracle Cloud (OCI)&lt;/strong> 在 enterprise / Java workload 跟金融受監管環境有顯著市佔；&lt;strong>Alibaba Cloud&lt;/strong> 在亞太 / 跨境電商是主流；&lt;strong>IBM Cloud&lt;/strong> 在金融 / 受監管環境仍存在；&lt;strong>Hetzner / DigitalOcean / Vultr&lt;/strong> 在 cost-leader 區段提供完全不同的計價模型；&lt;strong>Sovereign cloud&lt;/strong>（GDPR Schrems II 後在歐洲、JEDI / JWCC 在美國政府）是另一條獨立軸、跟資料主權合規綁定、比較對象不在這張表內。對照判讀邏輯（「對應 ≠ 等價」）可以同樣套用、但具體 vendor 名稱與差異維度要按目標廠商各自查證。&lt;/p></description><content:encoded><![CDATA[<p>面對「我該選 AWS 還是 GCP？」這類問題、第一步是把後端能力分類對應到三家雲廠商的具體服務名稱、技術細節放後面。本章提供這份對照地圖、同時警告一件事：AWS、GCP、Azure 在大部分能力上都有對應產品，但「對應」不等於「等價」— 同樣是 managed SQL、AWS RDS、GCP Cloud SQL、Azure SQL 在備份頻率、replica 行為、failover 時間、跨區複製成本上都有差異。對照表是入口、不是決策本身。</p>
<h2 id="為什麼需要這張對照地圖">為什麼需要這張對照地圖</h2>
<p>兩種使用情境會需要這張表。第一是初次選型時，讀者已經選定主要雲廠商，要對照各能力分類找出 vendor 名稱。第二是跨雲遷移評估，讀者要對照源端跟目標端的能力 gap。沒有這張表，每次都要重新查文件、容易漏掉某個能力。</p>
<p>但這張表不能取代深入評估。每個 vendor 都有不在表格內的差異，例如配額、區域可用性、跨服務整合、計價模型。表格是路由起點，後續判讀要進到該 vendor 的 deep article。</p>
<h2 id="能力--雲廠商對照表">能力 × 雲廠商對照表</h2>
<table>
  <thead>
      <tr>
          <th>能力分類</th>
          <th>AWS</th>
          <th>GCP</th>
          <th>Azure</th>
          <th>對照判讀重點</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>關聯式 DB（OLTP）</td>
          <td>RDS / Aurora</td>
          <td>Cloud SQL / AlloyDB</td>
          <td>Azure SQL / Azure Database for Postgres</td>
          <td>failover 時間、跨區 replica、IOPS 計價</td>
      </tr>
      <tr>
          <td>全球分散式 DB</td>
          <td>Aurora DSQL / DynamoDB Global Tables</td>
          <td>Spanner</td>
          <td>Cosmos DB</td>
          <td>一致性模型、寫入延遲、計價單位</td>
      </tr>
      <tr>
          <td>KV / Document DB</td>
          <td>DynamoDB</td>
          <td>Firestore / Bigtable</td>
          <td>Cosmos DB</td>
          <td>partition key 設計、capacity mode、跨區一致性</td>
      </tr>
      <tr>
          <td>快取</td>
          <td>ElastiCache（Redis / Memcached）</td>
          <td>Memorystore</td>
          <td>Azure Cache for Redis</td>
          <td>跨區複製、persistence、容量上限</td>
      </tr>
      <tr>
          <td>訊息佇列</td>
          <td>SQS / SNS / Kinesis</td>
          <td>Pub/Sub</td>
          <td>Service Bus / Event Hubs</td>
          <td>delivery guarantee、ordering、retention 期</td>
      </tr>
      <tr>
          <td>事件流（Kafka）</td>
          <td>MSK / Kinesis</td>
          <td>Pub/Sub</td>
          <td>Event Hubs (Kafka compatibility)</td>
          <td>Kafka 相容性、partition 數量、跨區複製</td>
      </tr>
      <tr>
          <td>物件儲存</td>
          <td>S3</td>
          <td>Cloud Storage</td>
          <td>Blob Storage</td>
          <td>一致性模型、跨區複製、lifecycle policy</td>
      </tr>
      <tr>
          <td>容器執行平台</td>
          <td>ECS / EKS / Fargate</td>
          <td>GKE / Cloud Run</td>
          <td>AKS / Container Apps</td>
          <td>managed 程度、cold start、計價單位</td>
      </tr>
      <tr>
          <td>Serverless 函式</td>
          <td>Lambda</td>
          <td>Cloud Functions / Cloud Run</td>
          <td>Azure Functions</td>
          <td>最大執行時間、cold start、整合方式</td>
      </tr>
      <tr>
          <td>Load Balancer</td>
          <td>ELB（ALB / NLB / CLB）</td>
          <td>Cloud Load Balancing</td>
          <td>Azure Load Balancer / App Gateway</td>
          <td>L4 vs L7、跨區 LB、TLS termination</td>
      </tr>
      <tr>
          <td>API Gateway</td>
          <td>API Gateway</td>
          <td>API Gateway / Apigee</td>
          <td>API Management</td>
          <td>rate limit、auth 整合、計價</td>
      </tr>
      <tr>
          <td>CDN / 邊緣</td>
          <td>CloudFront</td>
          <td>Cloud CDN / Media CDN</td>
          <td>Azure Front Door / CDN</td>
          <td>edge POP 數、purge API、cache key 彈性</td>
      </tr>
      <tr>
          <td>監控</td>
          <td>CloudWatch</td>
          <td>Cloud Monitoring</td>
          <td>Azure Monitor</td>
          <td>metric retention、dashboard 表達力、整合範圍</td>
      </tr>
      <tr>
          <td>Log 聚合</td>
          <td>CloudWatch Logs</td>
          <td>Cloud Logging</td>
          <td>Log Analytics</td>
          <td>ingestion 成本、query 語言、retention</td>
      </tr>
      <tr>
          <td>Tracing</td>
          <td>X-Ray</td>
          <td>Cloud Trace</td>
          <td>Application Insights</td>
          <td>sampling 策略、跨服務 trace、整合 SDK</td>
      </tr>
      <tr>
          <td>Secret Management</td>
          <td>Secrets Manager / SSM Parameter</td>
          <td>Secret Manager</td>
          <td>Key Vault</td>
          <td>旋轉支援、整合 IAM、稽核 log</td>
      </tr>
      <tr>
          <td>Identity / IAM</td>
          <td>IAM</td>
          <td>IAM</td>
          <td>Entra ID（前 AAD） + Azure RBAC</td>
          <td>跨服務 policy、token lifetime、federation</td>
      </tr>
      <tr>
          <td>CI/CD</td>
          <td>CodePipeline / CodeBuild</td>
          <td>Cloud Build / Cloud Deploy</td>
          <td>Azure Pipelines</td>
          <td>整合 Git 平台、執行環境彈性、計價單位</td>
      </tr>
  </tbody>
</table>
<p>這張表以全球 hyperscaler 三巨頭為主、不是市場全貌。<strong>Oracle Cloud (OCI)</strong> 在 enterprise / Java workload 跟金融受監管環境有顯著市佔；<strong>Alibaba Cloud</strong> 在亞太 / 跨境電商是主流；<strong>IBM Cloud</strong> 在金融 / 受監管環境仍存在；<strong>Hetzner / DigitalOcean / Vultr</strong> 在 cost-leader 區段提供完全不同的計價模型；<strong>Sovereign cloud</strong>（GDPR Schrems II 後在歐洲、JEDI / JWCC 在美國政府）是另一條獨立軸、跟資料主權合規綁定、比較對象不在這張表內。對照判讀邏輯（「對應 ≠ 等價」）可以同樣套用、但具體 vendor 名稱與差異維度要按目標廠商各自查證。</p>
<h2 id="三家雲共同缺的能力分類">三家雲共同缺的能力分類</h2>
<p>對照表覆蓋的能力都有 vendor 直接對應，但有兩類能力三家雲廠商都沒有提供等價的原生服務，要靠第三方工具補完。把這兩類獨立成段，避免在對照表中用「（無原生）」填空造成模板化。</p>
<p><strong>壓測 / 流量重放</strong>：三家雲都沒有像 RDS 對 PostgreSQL 那樣的「managed 壓測服務」。團隊要從 k6、JMeter、Gatling、Locust、Vegeta、AWS Distributed Load Testing（這是 reference architecture 而非 managed service）這類第三方工具選擇。選型考量在於：是否支援該團隊熟悉的腳本語言（k6 用 JS / Gatling 用 Scala / Locust 用 Python）、能否分散執行、能否在 CI 整合、能否重放 production traffic（GoReplay、AWS VPC Traffic Mirroring）。各工具的選型細節見 <a href="/blog/backend/09-performance-capacity/load-test-tooling/" data-link-title="9.3 壓測工具選型" data-link-desc="k6 / JMeter / Gatling / Locust / Vegeta / Production Replay 的工程選型">9.3 壓測工具選型</a>。</p>
<p><strong>事故管理 / on-call 通知</strong>：三家雲都沒有原生的 incident management 平台。CloudWatch / Cloud Monitoring / Azure Monitor 只到 alert 層、不負責 escalation、on-call rotation、incident timeline 與 retrospective。這層責任目前由 PagerDuty、Opsgenie、Splunk On-Call（前 VictorOps）、Grafana OnCall 等第三方平台承擔。三家雲提供的 alert 可以 webhook 到這些平台，但 incident workflow 本身不在 cloud vendor scope 內。事故管理流程見 <a href="/blog/backend/08-incident-response/" data-link-title="模組八：事故處理與復盤" data-link-desc="用 IR 領域詞彙建問題節點、以服務級案例庫累積事故脈絡，先建概念與案例庫再進實作交接">08 事故處理模組</a>。</p>
<p>辨識這兩類「跨雲共缺」能力的價值在於：跨雲遷移時這兩層不會增加 vendor lock-in，可以保留現有第三方工具直接接到新雲；反之，cloud-native incident management 或 cloud-native 壓測這類規劃要在採購前確認是否真實存在，避免被命名類似的工具誤導。</p>
<h2 id="對應--等價的具體差異範例">「對應 ≠ 等價」的具體差異範例</h2>
<p>對照表只給名稱對應，實際選型要看差異細節。下面四個常見的差異維度示範如何把名稱對應翻成選型判讀。</p>
<h3 id="失效切換時間差異rds-vs-cloud-sql-vs-azure-sql">失效切換時間差異（RDS vs Cloud SQL vs Azure SQL）</h3>
<p>同樣是 managed PostgreSQL，三家 vendor 文件給的 failover 時間參考值差距明顯。下列數字以各雲廠商公開文件為基準、實測長尾可能拖到更長：</p>
<ul>
<li>AWS RDS Multi-AZ：vendor 文件寫「typically 60–120 seconds」、P99 實測可達數分鐘</li>
<li>AWS Aurora：vendor 文件寫「typically less than 30 seconds」、實測 30–90 秒常見</li>
<li>GCP Cloud SQL HA：vendor 文件寫「1–2 minutes」</li>
<li>Azure SQL Business Critical：vendor 文件寫「around 30 seconds」、實測 30–60 秒</li>
</ul>
<p>選擇關鍵不是「哪個快」、而是「業務能容忍多少 downtime」。30 秒對 banking、ticketing 是不能接受的；對內部後台是無感的。失效切換時間直接影響 SLO 設定跟業務連續性 — 數字以 vendor 公開文件為參考、實際決策時要用該 vendor 自己的 SLA 條款跟 incident report 驗證。</p>
<h3 id="一致性模型差異dynamodb-vs-firestore-vs-cosmos-db">一致性模型差異（DynamoDB vs Firestore vs Cosmos DB）</h3>
<p>三家的 NoSQL 在一致性語意上分歧：</p>
<ul>
<li>DynamoDB：預設 eventual consistent read、可選 strongly consistent read（成本 2 倍）</li>
<li>Firestore：strongly consistent read 是預設、跨 region 用 multi-region 配置</li>
<li>Cosmos DB：五種一致性等級可選（strong / bounded staleness / session / consistent prefix / eventual）</li>
</ul>
<p>如果應用程式假設「寫完馬上能讀到」（read-after-write），在 DynamoDB 預設模式下會撞牆。在 Cosmos DB 選 session consistency 可以保證單一 client 內 read-after-write、跨 client 仍是 eventual。這類差異要在選型階段對齊，不是事後改 code。</p>
<h3 id="計價模型差異lambda-vs-cloud-functions-vs-azure-functions">計價模型差異（Lambda vs Cloud Functions vs Azure Functions）</h3>
<p>三家的 <a href="/blog/backend/knowledge-cards/serverless/" data-link-title="Serverless" data-link-desc="說明按請求 / 按用量計費、由平台管理執行環境與擴縮的運算交付模型、與其冷啟動與計價邊界">serverless</a> 在計價單位有差異：</p>
<ul>
<li>Lambda：請求數 + 執行時間 (GB-秒)</li>
<li>Cloud Functions：請求數 + 執行時間 + 網路流量</li>
<li>Azure Functions：執行次數 + 執行時間 + 記憶體（Consumption Plan）或固定費用（Premium / Dedicated Plan）</li>
</ul>
<p>對於低流量服務、三家差異不大；對於高頻率短時間函式、計價差異可能放大數倍（具體倍數視 memory size / 執行時間 / 流量分布、用 vendor calculator 算）。選型時要用實際 workload 估算、不能看單位價格表面數字。</p>
<h3 id="跨服務整合差異消息佇列-vs-觸發器">跨服務整合差異（消息佇列 vs 觸發器）</h3>
<p>AWS SQS + Lambda 整合非常成熟、有 native trigger；GCP Pub/Sub + Cloud Functions 同樣 native；Azure Service Bus + Functions 也有 trigger，但細節（dead-letter 處理、retry 策略、batch size）跟前兩家有差異。</p>
<p>跨服務的整合成熟度通常會在事故時放大差異。同樣的事件處理流程，在 AWS 上 90% 用 native 路徑、在另一家可能需要 30% 自己寫 glue code。</p>
<h2 id="跨雲遷移的判讀重點">跨雲遷移的判讀重點</h2>
<p>把這張對照表反過來讀，就是跨雲遷移的 gap 分析起點。但實際遷移要看四類風險：</p>
<table>
  <thead>
      <tr>
          <th>風險類型</th>
          <th>判讀重點</th>
          <th>對應緩解</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>語意差異</td>
          <td>兩家「對應」服務的一致性 / 失效 / 順序語意是否一致</td>
          <td>在抽象層（repository、queue adapter）封裝差異</td>
      </tr>
      <tr>
          <td>配額差異</td>
          <td>限制（每秒請求數、partition 上限、batch size）是否相當</td>
          <td>對照新平台配額重新設計批次大小</td>
      </tr>
      <tr>
          <td>計價差異</td>
          <td>計價單位不同，舊有 cost model 在新平台失準</td>
          <td>用新平台計價重做 cost engineering</td>
      </tr>
      <tr>
          <td>生態差異</td>
          <td>周邊工具（監控、log、IAM）整合不對等</td>
          <td>預估遷移成本要含「重建 observability / IAM」</td>
      </tr>
      <tr>
          <td>Data gravity / egress lock-in</td>
          <td>PB 級資料的 egress fee 跟一致性轉移時程</td>
          <td>決定資料「同步轉移 / 漸進複製 / 保留在原雲、運算跨雲」</td>
      </tr>
  </tbody>
</table>
<p>第五類風險常被低估：以 AWS S3 為例、egress 約 $0.09/GB、PB 級資料即 $90k 帶寬費；GCP / Azure 同等級。跨雲遷移最大單筆成本經常是 data gravity、需要先決策資料拓樸再算其他三類風險。</p>
<p>跨雲遷移不是把服務名稱換掉就完成。每一個對應都要做 deep audit，這是 <a href="/blog/backend/01-database/large-scale-db-migration/" data-link-title="1.12 大規模 DB 遷移實戰" data-link-desc="跨 DB 遷移的 dual-write、[shadow read](/backend/knowledge-cards/shadow-read/)、cutover、rollback 流程 — 從實戰案例提煉的工程做法">01 大規模 DB 遷移實戰</a> 等模組的責任。</p>
<h2 id="混合雲與多雲的情境">混合雲與多雲的情境</h2>
<p>常見的混合或多雲組合：</p>
<ul>
<li><strong>資料留 AWS、ML 跑 GCP</strong>：因為 BigQuery、Vertex AI 在資料分析優勢</li>
<li><strong>主要 Azure、ML 跑 AWS</strong>：因為 SageMaker 跟 Bedrock 提供的選項</li>
<li><strong>DR 在另一家雲</strong>：主要在 AWS、DR 站在 Azure 避免單一雲廠商故障</li>
</ul>
<p>混合 / 多雲要解的核心問題是跨雲流量成本（egress）跟身分聯邦（cross-cloud IAM）。這兩個成本通常被低估，要在規劃階段就做進 cost model。</p>
<h2 id="對照表使用的判讀順序">對照表使用的判讀順序</h2>
<p>讀這張表時，避免以下兩種誤用：</p>
<p>第一是「看完表格就決定 vendor」。表格只給名稱對應，沒給選型理由。先確認自己的能力需求（容量、一致性、failover 時間、計價型態），再用表格找候選 vendor，再進該 vendor 的 deep article 驗證細節。</p>
<p>第二是「把『對應』當作可互換」。已經提到的失效時間、一致性語意、計價模型差異會直接影響業務。在做技術選型時不能假設「換家雲就行」，要驗證每一條差異。</p>
<p>正確的使用順序：能力需求 → 對照表找候選 → vendor deep article 驗證 → cost / failure / consistency 驗算 → 決策。</p>
<h2 id="判讀訊號">判讀訊號</h2>
<table>
  <thead>
      <tr>
          <th>訊號</th>
          <th>判讀重點</th>
          <th>對應動作</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>同樣 workload 在新雲上 cost 翻倍</td>
          <td>計價模型差異未被估到</td>
          <td>重做 cost engineering、用實際 traffic 估算</td>
      </tr>
      <tr>
          <td>遷移後 latency 升高</td>
          <td>區域、跨服務整合或一致性模式不同</td>
          <td>確認 region 選擇、跨服務整合方式</td>
      </tr>
      <tr>
          <td>跨雲 egress 成本失控</td>
          <td>流量設計沒考慮 inter-cloud transfer</td>
          <td>重新設計流量拓樸、考慮 cache 或聚合</td>
      </tr>
      <tr>
          <td>跨雲 IAM 設定爆炸</td>
          <td>身分聯邦設計不足、每個服務各管各的</td>
          <td>引入統一身分平台或 federation</td>
      </tr>
      <tr>
          <td>新雲服務功能對應不上</td>
          <td>「對應 ≠ 等價」的 gap 出現</td>
          <td>抽象層封裝差異、或評估是否值得換</td>
      </tr>
  </tbody>
</table>
<h2 id="常見誤區">常見誤區</h2>
<p>把 vendor 對照表當「採購清單」，看完直接照表選。選型必須回到需求，不是看哪家有對應名稱就選。</p>
<p>把雲廠商當「commodity 商品」，假設換家就好。三家的整合生態、配額限制、計價單位都有差異、遷移成本經常被嚴重低估（特別是 data gravity / IAM / 監控重建這三類隱性成本）。</p>
<p>把單一雲廠商當「永遠不會變」。雲廠商會調整定價、棄用服務、改 API。設計時要有抽象邊界，避免直接綁定 vendor SDK 到業務邏輯，方便未來換家或多雲。</p>
<h2 id="定位邊界">定位邊界</h2>
<p>本章預設「自建於雲端基礎設施」已成立；讀者若在對照表看到 Firestore 而想問「乾脆整個用 Firebase？」、那是 BaaS / 託管平台層的交付形態判斷、見 <a href="/blog/backend/00-service-selection/delivery-mode-selection/" data-link-title="0.21 交付形態選型：從全託管到自建的光譜與邊界" data-link-desc="在進入資料庫、快取與部署選型之前、先判斷服務該用託管平台（Wix / Shopify / Google Sites）、辦公生態自動化（Apps Script）、BaaS（Firebase）、半託管 CMS（WordPress）還是自建、並為日後遷往自建保留可遷出路徑">0.21 交付形態選型</a>。</p>
<p>本章專注「能力分類到 vendor 名稱的翻譯與對應差異」。當問題進入具體 vendor 配置（例如 RDS 怎麼設 backup）、跨 vendor 遷移流程（例如從 MySQL 遷到 Aurora），分別交給各模組的 <code>vendors/</code> 目錄跟 migration playbook。當問題進入需求分類（這個業務需要強一致還是最終一致？）回到 <a href="/blog/backend/00-service-selection/backend-demand-taxonomy/" data-link-title="0.0 後端需求分類地圖" data-link-desc="先從需求形狀辨識狀態、讀取、非同步、即時、診斷、交付與可靠性問題">0.0 後端需求分類地圖</a>。</p>
<h2 id="案例回寫">案例回寫</h2>
<p>雲端服務選型可用以下案例回寫：</p>
<ul>
<li><a href="/blog/backend/00-service-selection/enterprise-selection-case-atlas/" data-link-title="0.14 企業選型案例圖譜" data-link-desc="蒐集不同類型與不同規模企業的技術選型案例，作為後端選型判讀的跨情境補充。">0.14 企業選型案例圖譜</a> — 0.14 收錄不同產業、不同規模階段企業的雲端選型決策；對照本章「跨雲遷移的判讀重點」段：合規、計價、IAM 整合是三家雲決策的主要分歧軸。</li>
<li><a href="/blog/backend/09-performance-capacity/cases/zomato-tidb-to-dynamodb-migration/" data-link-title="9.C20 Zomato：從 TiDB 遷移到 DynamoDB、吞吐 4 倍、延遲降 90%、成本減 50%" data-link-desc="Zomato 帳單系統從 TiDB 遷移到 DynamoDB、吞吐 2K→8K RPM、延遲降 90%、成本減 50%">9.C20 Zomato：TiDB 遷到 DynamoDB</a> — Zomato 把 SQL 介面（TiDB）換成 KV 介面（DynamoDB）、用一致性語意差異換取 4 倍吞吐 + 50% 成本；對照本章「對應 ≠ 等價」段中的一致性模型差異子段。</li>
<li><a href="/blog/backend/09-performance-capacity/cases/netflix-aurora-consolidation/" data-link-title="9.C23 Netflix：把關聯式 DB 統一到 Aurora、效能 &#43;75%、成本 -28%" data-link-desc="Netflix 把多套關聯式 DB 統一到 Aurora、效能提升 75%、成本下降 28%、串流數十億小時">9.C23 Netflix：Aurora consolidation</a> — 案例是 AWS 內 DB 種類整併（多 RDB → Aurora），可對照本章「對應 ≠ 等價」段中的計價模型與整合成熟度差異。雖然不涉及跨雲，但在同一家雲廠商內整併服務、跟跨雲整併共用同一條決策邏輯：權衡 vendor lock-in 代價 vs 運維碎片化代價。</li>
<li><a href="/blog/backend/05-deployment-platform/cases/tradeshift-self-managed-k8s-to-eks/" data-link-title="5.C1 Tradeshift：self-managed Kubernetes 遷移到 EKS" data-link-desc="零停機平台遷移的分段策略案例。">5.C1 Tradeshift：self-managed K8s → EKS</a> — Tradeshift 從自管 K8s control plane 遷到 EKS managed control plane、運維責任邊界從「整套 cluster」收斂到「workload + worker node」。對照本章「容器執行平台」對照行：managed 程度是同一能力分類下的主要分歧軸。</li>
</ul>
<p>這些案例回答的是不同問題、不是同一個問題的不同切面。對照表本身只回答「叫什麼名字」；Zomato / Tradeshift 補「換掉名字後實際差多少」（介面 / 計價 / 一致性差異）；Netflix Aurora 補「同一雲內怎麼收斂」；0.14 補「真實企業在什麼壓力下選什麼」。讀者按手邊的問題進入對應案例、不需要也不適合串成同一條 narrative。</p>
<h2 id="跨模組路由">跨模組路由</h2>
<ol>
<li>與 <a href="/blog/backend/00-service-selection/service-capability-map/" data-link-title="0.1 後端服務能力地圖" data-link-desc="用需求類型判斷應先評估資料庫、快取、訊息佇列、觀測平台或部署平台">0.1 後端服務能力地圖</a> 的交接：先確認能力分類，再用本章找 vendor 對應。</li>
<li>與 <a href="/blog/backend/00-service-selection/cost-risk-tradeoffs/" data-link-title="0.6 成本、風險與選型取捨" data-link-desc="用人力成本、雲端成本、操作成本與失敗代價判斷後端能力投入順序">0.6 成本、風險與選型取捨</a> 的交接：cost model 是 vendor 選型的關鍵維度。</li>
<li>與各模組的 <code>vendors/</code> 目錄的交接：對照表只給名稱、deep article 給配置與運維。</li>
<li>與 <a href="/blog/backend/01-database/large-scale-db-migration/" data-link-title="1.12 大規模 DB 遷移實戰" data-link-desc="跨 DB 遷移的 dual-write、[shadow read](/backend/knowledge-cards/shadow-read/)、cutover、rollback 流程 — 從實戰案例提煉的工程做法">01 大規模 DB 遷移實戰</a> 的交接：跨 vendor 遷移的具體流程。</li>
</ol>
<h2 id="下一步路由">下一步路由</h2>
<p>對照表是查 vendor 名稱的第一層、進入細節要走 deep article：</p>
<ul>
<li>實際企業選型案例 → <a href="/blog/backend/00-service-selection/enterprise-selection-case-atlas/" data-link-title="0.14 企業選型案例圖譜" data-link-desc="蒐集不同類型與不同規模企業的技術選型案例，作為後端選型判讀的跨情境補充。">0.14 企業選型案例圖譜</a></li>
<li>資料庫 vendor 細節對比 → <a href="/blog/backend/01-database/vendors/" data-link-title="資料庫 Vendor 清單" data-link-desc="規劃 SQL、managed SQL、document、KV 與 distributed SQL 的服務頁撰寫順序與教學大綱">01 模組 vendors/</a></li>
<li>部署平台 vendor 細節對比 → <a href="/blog/backend/05-deployment-platform/vendors/" data-link-title="部署平台 Vendor 清單" data-link-desc="規劃 workload runtime、orchestration、traffic、IaC 與 discovery 的服務頁撰寫順序與判準">05 模組 vendors/</a></li>
</ul>
<p>本章不在規模成長路線上、是 sibling 工具型入口。要進規模成長路線、從 <a href="/blog/backend/10-system-evolution/service-decomposition-boundaries/" data-link-title="10.1 服務拆分與邊界判讀" data-link-desc="整理 monolith vs microservice 取捨、服務邊界判讀訊號、拆分時機與回退路徑">10.1 服務拆分</a> 或 <a href="/blog/backend/09-performance-capacity/scaling-axes/" data-link-title="9.13 擴展軸與 Stateless 前提" data-link-desc="整理垂直 / 水平擴展取捨、stateless vs stateful 前提、auto scaling 操作模型與兩種擴展的 hidden cost">9.13 擴展軸</a> 開始。</p>
]]></content:encoded></item></channel></rss>