本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
ECS 使用 AWS Fargate、 AWS PrivateLink和 Network Load Balancer 私下存取 Amazon 上的容器應用程式
由 Kirankumar Chandrashekar 建立 (AWS)
環境:生產 | 技術:容器和微服務;網路;安全、身分、合規;Web 和行動應用程式 | 工作負載:所有其他工作負載 |
AWS 服務:Amazon EC2 Container Registry;Amazon ECS;Amazon EFS;Amazon RDS;Amazon VPC;Elastic Load Balancing (ELB);AWSLambda |
Summary
此模式說明如何在 Amazon Web Services (AWS) Cloud 上使用具有 AWS Fargate 啟動類型的 Amazon Elastic Container Service (Amazon ECS),在 Network Load Balancer 後方私有託管 Docker 容器應用程式,並使用 存取應用程式AWS PrivateLink。Amazon Relational Database Service (Amazon RDS) 以高可用性 (HA) 託管ECS在 Amazon 上執行之應用程式的關聯式資料庫。如果應用程式需要持久性儲存,您可以使用 Amazon Elastic File System (Amazon EFS)。
此模式針對執行 Docker 應用程式的 Amazon ECS服務使用 Fargate 啟動類型,並在前端使用 Network Load Balancer。然後,它可以與虛擬私有雲端 (VPC) 端點建立關聯,以便透過 存取AWS PrivateLink。然後,可以使用VPCs端點與其他 VPC 共用此VPC端點服務。
您可以使用 Fargate 搭配 Amazon ECS執行容器,而不必管理 Amazon Elastic Compute Cloud (AmazonEC2) 執行個體的伺服器或叢集。您也可以使用 Amazon EC2 Auto Scaling 群組,而非 Fargate。如需詳細資訊,請參閱ECS使用 AWS PrivateLink 和 Network Load Balancer 在 Amazon 上私下存取容器應用程式。
先決條件和限制
先決條件
作用中AWS帳戶
AWS 命令列介面 (AWS CLI) 第 2 版,安裝在 Linux、macOS 或 Windows 上並進行設定
在 Linux、macOS 或 Windows 上安裝和設定 Docker
。 在 Docker 上執行的應用程式
架構
技術堆疊
Amazon CloudWatch
Amazon Elastic Container Registry (Amazon ECR)
Amazon ECS
Amazon EFS
Amazon RDS
Amazon Simple Storage Service (Amazon S3)
AWS Fargate
AWS Lambda
AWS PrivateLink
AWS Secrets Manager
Application Load Balancer
Network Load Balancer
VPC
自動化和擴展
您可以使用 AWS CloudFormation 來建立此模式,方法是使用基礎設施作為程式碼 。
工具
Amazon ECS – Amazon Elastic Container Service (Amazon ECS) 是一種高度可擴展、快速的容器管理服務,可讓您輕鬆地執行、停止和管理叢集上的容器。
Amazon ECR – Amazon Elastic Container Registry (Amazon ECR) 是安全、可擴展且可靠的受管AWS容器映像登錄服務。
Amazon EFS – Amazon Elastic File System (Amazon EFS) 提供簡單、可擴展、完全受管的彈性NFS檔案系統,可與AWS雲端服務和內部部署資源搭配使用。
AWS Fargate – AWS Fargate 是一種技術,您可以搭配 Amazon 使用ECS來執行容器,而不必管理 Amazon EC2執行個體的伺服器或叢集。
AWS Lambda – Lambda 是一種運算服務,可讓您執行程式碼,而無需佈建或管理伺服器。
Amazon RDS – Amazon Relational Database Service (Amazon RDS) 是一種 Web 服務,可讓您更輕鬆地在 AWS Cloud 中設定、操作和擴展關聯式資料庫。
Amazon S3 – Amazon Simple Storage Service (Amazon S3) 是網際網路的儲存體。此服務旨在降低開發人員進行網路規模運算的難度。
AWS Secrets Manager – Secrets Manager 可協助您將程式碼中的硬式編碼憑證取代為密碼,呼叫 API Secrets Manager 以程式設計方式擷取秘密。
Amazon VPC – Amazon Virtual Private Cloud (Amazon VPC) 可協助您將AWS資源啟動至您定義的虛擬網路。
Elastic Load Balancing – Elastic Load Balancing (ELB) 會在多個可用區域中,將傳入的應用程式或網路流量分散到多個目標,例如EC2執行個體、容器和 IP 地址。
Docker
– Docker 可協助開發人員輕鬆封裝、運送和執行任何應用程式,做為輕量、便攜且自給自足的容器。
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
建立 VPC。 |
| 雲端管理員 |
任務 | 描述 | 所需的技能 |
---|---|---|
建立 Network Load Balancer 。 |
如需此故事和其他故事的協助,請參閱相關資源區段。 | 雲端管理員 |
建立 Application Load Balancer 。 |
| 雲端管理員 |
任務 | 描述 | 所需的技能 |
---|---|---|
建立 Amazon EFS 檔案系統。 |
| 雲端管理員 |
為子網路掛載目標。 |
| 雲端管理員 |
確認子網路已掛載為目標。 |
| 雲端管理員 |
任務 | 描述 | 所需的技能 |
---|---|---|
建立 S3 儲存貯體。 | 開啟 Amazon S3 主控台,並視需要建立 S3 儲存貯體以存放應用程式的靜態資產。 | 雲端管理員 |
任務 | 描述 | 所需的技能 |
---|---|---|
建立AWSKMS金鑰以加密 Secrets Manager 秘密。 | 開啟 AWS Key Management Service (AWS KMS) 主控台並建立KMS金鑰。 | 雲端管理員 |
建立 Secrets Manager 秘密以存放 Amazon RDS密碼。 |
| 雲端管理員 |
任務 | 描述 | 所需的技能 |
---|---|---|
建立資料庫子網路群組。 |
| 雲端管理員 |
建立 Amazon RDS執行個體。 | 在私有子網路內建立和設定 Amazon RDS執行個體。確保已開啟多可用區以獲得高可用性 (HA)。 | 雲端管理員 |
將資料載入 Amazon RDS執行個體。 | 將應用程式所需的關聯式資料載入您的 Amazon RDS執行個體。此程序會根據應用程式的需求,以及資料庫結構描述的定義和設計方式而有所不同。 | DBA |
任務 | 描述 | 所需的技能 |
---|---|---|
建立 ECS 叢集 |
| 雲端管理員 |
建立 Docker 映像。 | 遵循相關資源區段中的指示建立 Docker 映像。 | 雲端管理員 |
建立 Amazon ECR儲存庫。 |
| 雲端管理員, DevOps engineer |
將 Docker 映像推送至 Amazon ECR儲存庫。 |
| 雲端管理員 |
建立 Amazon ECS任務定義。 | 在 Amazon 中執行 Docker 容器需要任務定義ECS。
如需設定任務定義的協助,請參閱相關資源區段中的「建立任務定義」。重要事項:請確定您提供推送至 Amazon 的 Docker 映像ECR。 | 雲端管理員 |
建立 ECS 服務,然後選擇 Fargate 作為啟動類型。 |
| 雲端管理員 |
任務 | 描述 | 所需的技能 |
---|---|---|
設定AWS PrivateLink 端點。 |
如需詳細資訊,請參閱相關資源一節。 | 雲端管理員 |
任務 | 描述 | 所需的技能 |
---|---|---|
建立 VPC 端點。 | 為您先前建立的VPC端點建立AWS PrivateLink 端點。VPC 端點完整網域名稱 (FQDN) 將指向AWS PrivateLink 端點 FQDN。這會建立VPC端點服務的彈性網路介面,網域名稱服務端點可以存取。 | 雲端管理員 |
任務 | 描述 | 所需的技能 |
---|---|---|
建立 Lambda 函數。 | 開啟 Lambda 主控台並建立 Lambda 函數,將 Application Load Balancer IP 地址更新為 Network Load Balancer 的目標。如需詳細資訊,請參閱相關資源區段中的「使用 Application Load Balancer 的靜態 IP 地址」部落格文章。 | 應用程式開發人員 |
相關資源
建立負載平衡器:
建立 Amazon EFS 檔案系統:
建立 S3 儲存貯體:
建立 Secrets Manager 秘密:
建立 Amazon RDS執行個體:
建立 Amazon ECS元件:
設定 AWS PrivateLink:
建立VPC端點:
建立 Lambda 函數:
其他資源: