本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 3:建立啟動範本並將其連接至運算環境
當執行個體啟動時,user-data指令碼會自動安裝 Fluent Bit、從 IMDSv2 擷取執行個體 ID、從 Amazon S3 同步組態,以及啟動Fluent Bit服務。如需啟動範本的詳細資訊,請參閱 搭配 使用 Amazon EC2 啟動範本 AWS Batch。如需 IMDS 組態的詳細資訊,請參閱 執行個體中繼資料服務 (IMDS) 組態。
如需範例user-data指令碼,請參閱配套 GitHub 儲存庫。將 launch-template-userdata-minimal.txt 檔案用於您的啟動範本。此檔案會排除註解以縮減user-data大小。launch-template-userdata.txt 檔案是註解版本以供參考。使用前請在範本中取代下列預留位置:
先決條件
- AWS Console
-
建立啟動範本:
前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。
在導覽窗格中,選擇 Launch Templates (啟動範本)。
選擇 Create launch template (建立啟動範本)。
針對啟動範本名稱,輸入名稱,例如 batch-host-logs。
展開 Advanced Details (進階詳細資訊)。
針對 Metadata version (中繼資料版本),選擇 V2 only (token required) (僅限 V2 (需要權杖))。
針對中繼資料回應跳轉限制,輸入 2。
捲動至使用者資料,並從配套 GitHub 儲存庫貼上user-data指令碼。將 取代<BUCKET_NAME>為您的儲存貯體名稱。<FLUENT_BIT_VERSION> 將 取代為您想要的Fluent Bit版本,或將最新版本保留空白。
選擇 Create launch template (建立啟動範本)。
建立運算環境:
在 https://https://console.aws.amazon.com/batch/ 開啟 AWS Batch 主控台。
在導覽窗格中,選擇 Compute environments (運算環境)。
選擇建立。
針對運算環境組態,選擇 Amazon Elastic Compute Cloud (Amazon EC2)。
針對協調類型,選擇受管。
針對名稱,輸入名稱,例如 my-host-logs-ce。
針對執行個體角色,選擇您在步驟 2 中更新或建立的執行個體角色,例如 ecsInstanceRole。
選擇下一步。
在執行個體組態下,展開啟動範本,然後選取您建立的範本。
完成其餘欄位,然後選擇建立運算環境。
- AWS CLI
-
建立啟動範本。將user-data指令碼從配套 GitHub 儲存庫儲存至檔案,並使用 base64 進行編碼:
aws ec2 create-launch-template \
--launch-template-name batch-host-logs \
--launch-template-data '{
"MetadataOptions": {
"HttpTokens": "required",
"HttpPutResponseHopLimit": 2
},
"UserData": "BASE64_ENCODED_USER_DATA"
}'
使用啟動範本建立運算環境:
aws batch create-compute-environment \
--compute-environment-name my-host-logs-ce \
--type MANAGED \
--compute-resources '{
"type": "EC2",
"minvCpus": 0,
"maxvCpus": 256,
"instanceTypes": ["optimal"],
"subnets": ["subnet-12345678"],
"securityGroupIds": ["sg-12345678"],
"instanceRole": "arn:aws:iam::111122223333:instance-profile/ecsInstanceRole",
"launchTemplate": {
"launchTemplateName": "batch-host-logs",
"version": "$Latest"
}
}'
中繼資料回應跳轉限制在啟動範本2中設定為 ,因為在任務容器中執行的應用程式需要額外的網路跳轉才能到達 IMDSv2 端點。如果沒有此設定,來自容器的 IMDSv2 請求會失敗。