一般問題
問:為什麼應該使用 AWS App Runner?
答:AWS App Runner 是在 AWS 上執行 Web 應用程式 (包括 API 服務、後端 Web 服務和網站) 的最簡單方法。使用 App Runner 時,無需執行任何基礎設施或容器協調。在幾分鐘之內,您就可從現有的容器映像、容器註冊表、原始程式碼儲存庫或現有的 CI/CD 工作流程轉到 AWS 上全面執行的容器化 Web 應用程式。
App Runner 與您的開發工作流程無縫整合,以提供適當層級的自動化來部署程式碼或容器映像,而無需您了解、佈建、擴展或管理任何 AWS 運算、聯網和路由資源。您可以輕鬆地執行成千上萬的應用程式,這些應用程式將根據您的流量需求自動進行擴展。您的應用程式還可以在由 AWS 維護和運作的基礎設施上執行,從而提供安全性和合規性最佳實務,例如自動執行安全修補程式和加密。
問:如何開始使用 AWS App Runner?
答:您可以透過轉到 App Runner 主控台或使用 AWS CLI 並建立 App Runner 應用程式,在 AWS 上部署 AWS App Runner 應用程式。建立 App Runner 應用程式時,您可以提供容器映像,連線容器註冊表或原始程式碼儲存庫,然後輸入任何可選的建置和啟動命令。App Runner 將自動建立具有相應安全 URL 的服務。
問:如果未使用容器,我是否仍然可以使用 AWS App Runner?
答:可以。AWS App Runner 支援在包含所支援運行時和架構的專業 App Runner 平台上自動建置容器映像。關聯現有的原始程式碼儲存庫並有選擇地向 App Runner 提供運行時建置和啟動命令時,App Runner 會自動將您的 Web 應用程式容器化,同時提供一個執行中 Web 應用程式。
問:如果我需要更大程度的靈活性,是否可以從 AWS App Runner 遷移到 Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS) 或其他 AWS 服務?
答:可以。您可以使用 Amazon ECS 或 Amazon EKS 上部署到 App Runner 的相同容器映像。這可讓在需求變更時靈活地轉移到不同的服務。可以使用該服務提供的工具和布設工作流程,將程式碼或容器直接部署到所選的新 AWS 服務。
問:使用 Amazon Virtual Private Cloud (Amazon VPC) 的 App Runner 支援哪些使用案例?
答:App Runner 上的 Amazon VPC 支援使您的服務能夠存取在 VPC 中執行的 Amazon Relational Database Service (RDS) 執行個體中的資料庫引擎,如 Amazon Aurora、MySQL、PostgreSQL 和 MariaDB。此支援還使您的服務能夠存取 VPC 中 Amazon ElastiCache 節點上受管的 Redis 快取;將訊息推送到訊息代理程式,如 VPC 中的 Amazon Managed Streaming for Apache Kafka或 Amazon MQ;並與執行在 AWS Fargate 上的後端服務交談,其由 Amazon Elastic Container Service 和 Amazon Elastic Kubernetes Service,或在 VPC 中的 Amazon Elastic Compute Cloud 支援。最後,您還可以使您的服務與內部部署資料庫進行談話,其可以透過在 VPC 中設定的 AWS Direct Connect 進行連接。
開發人員
問:我可以在 AWS App Runner 上執行哪些類型的應用程式?
答:AWS App Runner 支援完整堆疊開發,包括使用 HTTP 和 HTTPS 協定的前端和後端 Web 應用程式。這些應用程式包括 API 服務、後端 Web 服務和網站。App Runner 支援容器映像以及各種運行時和 Web 架構,包括 Node.js 和 Python。
問:使用 AWS App Runner 時可採用哪些類型的部署選項?
答:AWS App Runner 支援多種部署選項,包括能夠使用 App Runner 主控台或 AWS CLI 立即部署容器映像。如果您已有使用 AWS CodePipeline、Jenkins、Travis CI、CircleCI 或其他 CI/CD 工具鏈的 CI/CD 工作流程,則可以使用 App Runner API 或 AWS CLI 輕鬆將 App Runner 作為部署目標新增。如果希望 App Runner 自動提供連續部署,則可以輕鬆地連線到現有的容器註冊表或原始程式碼儲存庫,App Runner 將自動提供連續的部署管道。
使用 App Runner,您可以為每個容器映像或原始程式碼分支設定唯一的應用程式,並採用單獨的環境變數、部署類型 (例如開發型應用程式或生產型應用程式) 以及建置和啟動命令。部署後,您將獲得在 App Runner 上執行 Web 應用程式的所有優點,包括預設安全性、自動擴展和監控。
問:AWS App Runner 如何根據不同需求擴展應用程式?
答:AWS App Runner 監控傳送到應用程式的並行請求數,並根據請求量自動新增其他執行個體。如果您的應用程式未收到傳入請求,則 App Runner 會將容器縮減至已佈建的執行個體,即已調節 CPU 執行個體,可以在幾毫秒內處理傳入的請求。還可以選擇在應用程式的 AutoScaling 設定中設定傳送到執行個體的並行請求數。
問:我可以對在 AWS App Runner 上執行的 Web 應用程式使用自己的網域名稱嗎?
答:只需使用 App Runner 主控台或 AWS CLI 將自訂網域新增至 AWS App Runner 應用程式。新增自訂網域名稱後,App Runner 將提供說明,以幫助您與 DNS 供應商一起更新 DNS 記錄。App Runner 支援自訂子網域 (www.example.com)、自訂根網域 (example.com) 和萬用字元網域 (*.example.com)。
問:如果我的應用程式需要存取儲存、資料庫或快取服務,該怎麼辦?
答:AWS App Runner 不限制您將應用程式連線到其他儲存、資料庫或應用程式整合服務的能力。客戶可以輕鬆地使用必要的程式碼和連線說明來設定其應用程式或容器,並且他們的應用程式可以透過網路安全地與這些外部服務進行通訊。
問:如何檢視在 AWS App Runner 上執行的應用程式的日誌?
答:AWS App Runner 與 Amazon CloudWatch Logs 完全整合,並為您提供運行時日誌和部署日誌,這些日誌是從所有系統元件、Web 架構、運行時、建置和部署命令以及應用程式/Web 伺服器的輸出串流中彙總而來。App Runner 將這些日誌彙總到一個綜合管道中,可透過 App Runner 主控台、CloudWatch 主控台和 AWS CLI 使用此管道。
問:我是否可以使用協調器在 AWS App Runner 上執行 Web 應用程式並在 AWS Fargate 上執行持久性應用程式?
答:可以。如果您需要執行其他應用程式 (例如需要持久性檔案系統或機器學習任務的內容管理系統),則可以將 AWS Fargate 與能夠支援多種資源 (例如圖形加速或持久性磁碟區) 的協調器搭配使用。如果使用的是 Copilot CLI,則可以繼續使用該工具,因為它同時支援 App Runner 和 ECS/Fargate。還可以將 Amazon CloudWatch 用作單個窗格,以監控跨 App Runner 執行的應用程式、在 Fargate 上執行的 Amazon ECS 任務以及在 Fargate 上執行的 Amazon EKS pod。
問:Copilot 是否支援 AWS App Runner?
答:AWS Copilot 是一種命令列界面 (CLI),能讓客戶在 AWS 上快速啟動和輕鬆管理容器化應用程式。可使用 Copilot 在 AWS App Runner 上快速啟動並執行。還可以將 Copilot 用作標準 CLI,以在 AppRunner 和/或 ECS/Fargate 中運作。
問:如何為 App Runner 應用程式啟用 VPC 支援?
答:在建立 App Runner 應用程式時,您可以傳遞 VPC ID、子網路和安全群組。這些資訊將用於建立允許與 VPC 通訊的網路介面。如果您傳遞多個子網路,App Runner 將為每個子網路建立多個網路介面。為了獲得更好的可用性,我們建議您至少指定兩個子網路。
定價和計費
問:AWS App Runner 如何計費?
答:您需要為應用程式使用的運算和記憶體資源付費。還可以為其他 App Runner 功能付費,例如從原始程式碼建置部署或自動化部署。如需相關資訊,請參閱我們的定價頁面。
問:AWS App Runner 有哪些預算控制措施?
答:您可以為應用程式使用的作用中容器執行個體數設定最大限制,以使成本不會超出預算。
問:我需要為 App Runner 上的 VPC 存取付費嗎?
答:不需要。您只需支付資料傳輸費用 — 例如,如果您的 App Runner 應用程式和您的 Amazon Relational Database Service 執行個體位於不同的可用區域,您將支付它們之間的通訊費用。