本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
創建一個 Amazon EC2 啟動模板
您可以透過為執行個體組態參數指定自己的值,或從現有啟動範本或 Amazon EC2 執行個體取得值,以建立 Amazon 啟動範本。EC2
您不需要為啟動範本中的每個參數指定值;您只需指定一個執行個體設定參數即可建立啟動範本。若要指出您選擇不指定的參數,請選取 [使用主控台時不要包含在啟動範本中]。使用命令列工具時,請勿加入參數以表示您選擇不在啟動範本中指定這些參數。
如果您要在啟動範本AMI中指定一個,您可以選取AMI或指定將指向執行個AMI體啟動時的「Systems Manager」參數。
使用啟動範本啟動執行個體時,會使用在啟動範本中指定的值來設定對應的執行處理參數。如果未在啟動範本中指定值,則會使用對應執行個體參數的預設值。
透過指定參數建立啟動範本
若要建立啟動範本,您必須指定啟動範本名稱和至少一個執行個體組態參數。
如需每個參數的描述,請參閱Amazon EC2執行個體組態參數的參考。
- Console
-
若要使用主控台建立啟動範本
在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/。
-
在導覽窗格中,選擇 Launch Templates (啟動範本) 接著選擇 Create launch template (建立啟動範本)。
-
在「啟動範本名稱與說明」下,執行下列動作:
-
針對 Launch template name (啟動範本名稱),輸入啟動範本的描述性名稱。
-
在 Template version description (範本版本描述) 中,提供此啟動範本版本的簡短描述。
-
若要在建立時標記啟動範本,請展開 [範本標籤],選擇 [新增標籤],然後輸入標籤索引鍵和值配對。為每個要新增的其他標籤重新選擇新增新的標籤。
要標記啟動執行個體時建立的資源,您必須在 Resource tags (資源標籤) 下指定標籤。如需詳細資訊,請參閱此程序中的步驟 9。
-
在 [應用程式和作業系統映像 (Amazon Machine Image)] 下,您可以保持選取 [不包含在啟動範本中],或選擇執行個體的作業系統 (OS),然後選擇一個AMI。或者,您可以指定「Systems Manager」參數,而不是指定AMI。如需詳細資訊,請參閱使用「Systems Manager」參數而不是 AMI ID。
AMI是包含啟動執行個體所需的作業系統和軟體的範本。
-
在「執行個體類型」下,您可以選取「不要包含在啟動範本中」,或選取執行個體類型,或指定執行個體屬性,讓 Amazon 使用這些屬性EC2識別執行個體類型。
執行個體類型會決定執行個體所使用的硬體組態 (CPU記憶體、儲存空間和網路容量) 和主機電腦的大小。
如果您不確定要選擇哪種執行個體類型,可以執行下列動作:
如果您的使用時間少 AWS 帳戶 於 12 個月,您可以在免費方案EC2下選擇 t2.micro 執行個體類型,或在 t2.micro 無法使用的區域中選擇 t3.micro 執行個體類型。請注意,當您啟動 t3.micro 執行個體時,它會預設為「無限制」模式,這可能會根據使用情況產生額外費用。CPU如果某個執行個體類型符合免費方案的條件,則標記為 Free tier eligible (符合免費方案條件)。
-
在 [key pair (登入)] 下,對於 [金鑰配對名稱],請保持 [不包含在啟動範本中選取],或選擇現有的金鑰配對,或建立新的金鑰配對。
-
在 [網路設定] 下,您可以選取 [啟動範本中不包含],也可以指定各種網路設定的值。
-
在 [設定儲存區] 下,如果您AMI在啟動範本中指定了,則會AMI包含一或多個儲存磁碟區,包括根磁碟區 (磁碟區 1 (AMI根)。您可以選擇性地指定要附加至執行個體的其他磁碟區。若要新增磁碟區,請選擇 Add new volume (新增磁碟區)。
-
在 [資源標籤] 底下,若要標記啟動執行個體時所建立的資源,請選擇 [新增標籤],然後輸入標籤鍵和值配對。針對 Resource types (資源類型),請指定建立時要標記的資源。您可以為所有資源指定相同的標籤,或者為不同的資源指定不同的標籤。為每個要新增的其他標籤重新選擇 Add tag (新增標籤)。
您可以針對使用啟動範本時建立的以下資源指定標籤:
-
執行個體
-
磁碟區
-
Elastic Graphics
-
Spot 執行個體請求
-
網路介面
若要標記啟動範本本身,您必須在 Template tags (範本標籤) 下指定標籤。如需詳細資訊,請參閱此程序中的步驟 3。
-
如需「進階」詳細資訊,請展開區段以檢視欄位,並選擇性地指定執行處理的任何其他參數。
-
使用「摘要」面板來檢閱您的啟動範本組態。您可以通過選擇其鏈接導航到任何部分,然後進行任何必要的更改。
-
當您準備好建立啟動範本時,請選擇 Create launch template (建立啟動範本)。
- AWS CLI
-
下列範例會使用命create-launch-template令來建立具有指定名稱和執行個體組態的啟動範本。
aws ec2 create-launch-template \
--launch-template-name TemplateForWebServer
\
--version-description WebVersion1
\
--tag-specifications 'ResourceType=launch-template,Tags=[{Key=purpose
,Value=production
}]' \
--launch-template-data file://template-data
.json
以下是指定執行個體組態的啟動範本資料的範JSON例。儲存JSON至檔案並將其包含在--launch-template-data
參數中,如範例指令所示。
{
"NetworkInterfaces": [{
"AssociatePublicIpAddress": true,
"DeviceIndex": 0,
"Ipv6AddressCount": 1
,
"SubnetId": "subnet-7b16de0c
"
}],
"ImageId": "ami-8c1be5f6
",
"InstanceType": "r4.4xlarge
",
"TagSpecifications": [{
"ResourceType": "instance",
"Tags": [{
"Key":"Name
",
"Value":"webserver
"
}]
}],
"CpuOptions": {
"CoreCount":4
,
"ThreadsPerCore":2
}
}
下列為範例輸出。
{
"LaunchTemplate": {
"LatestVersionNumber": 1,
"LaunchTemplateId": "lt-01238c059e3466abc",
"LaunchTemplateName": "TemplateForWebServer",
"DefaultVersionNumber": 1,
"CreatedBy": "arn:aws:iam::123456789012:root",
"CreateTime": "2017-11-27T09:13:24.000Z"
}
}
- PowerShell
-
下列範例會使用指New-EC2LaunchTemplate令程式,建立具有指定名稱和執行個體組態的啟動範本。
$launchTemplateData = [Amazon.EC2.Model.RequestLaunchTemplateData]@{
ImageId = 'ami-8c1be5f6'
InstanceType = 'r4.4xlarge'
NetworkInterfaces = @(
[Amazon.EC2.Model.LaunchTemplateInstanceNetworkInterfaceSpecificationRequest]@{
AssociatePublicIpAddress = $true
DeviceIndex = 0
Ipv6AddressCount = 1
SubnetId = 'subnet-7b16de0c'
}
)
TagSpecifications = @(
[Amazon.EC2.Model.LaunchTemplateTagSpecificationRequest]@{
ResourceType = 'instance'
Tags = [Amazon.EC2.Model.Tag]@{
Key = 'Name'
Value = 'webserver'
}
}
)
CpuOptions = [Amazon.EC2.Model.LaunchTemplateCpuOptionsRequest]@{
CoreCount = 4
ThreadsPerCore = 2
}
}
$tagSpecificationData = [Amazon.EC2.Model.TagSpecification]@{
ResourceType = 'launch-template'
Tags = [Amazon.EC2.Model.Tag]@{
Key = 'purpose'
Value = 'production'
}
}
New-EC2LaunchTemplate -LaunchTemplateName 'TemplateForWebServer' -VersionDescription 'WebVersion1' -LaunchTemplateData $launchTemplateData -TagSpecification $tagSpecificationData
下列為範例輸出。
CreatedBy : arn:aws:iam::123456789012:root
CreateTime : 9/19/2023 16:57:55
DefaultVersionNumber : 1
LatestVersionNumber : 1
LaunchTemplateId : lt-01238c059eEXAMPLE
LaunchTemplateName : TemplateForWebServer
Tags : {purpose}
從現有啟動範本建立啟動範本
您可以複製現有啟動範本,然後調整參數以建立新版啟動範本。但是,您只能在使用 Amazon EC2 控制台時執行此操作。 AWS CLI 不支援複製範本。如需每個參數的描述,請參閱Amazon EC2執行個體組態參數的參考。
- Console
-
若要從現有啟動範本建立啟動範本
在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/。
-
在導覽窗格中,選擇 Launch Templates (啟動範本) 接著選擇 Create launch template (建立啟動範本)。
-
針對 Launch template name (啟動範本名稱),輸入啟動範本的描述性名稱。
-
在 Template version description (範本版本描述) 中,提供此啟動範本版本的簡短描述。
-
若要在建立時標記啟動範本,請展開 [範本標籤],選擇 [新增標籤],然後輸入標籤索引鍵和值配對。
-
展開來源範本,並針對啟動範本名稱,選擇要以新啟動範本為基礎的啟動範本。
-
針對 Source template version (來源範本版本),選擇要做為新啟動範本基礎的啟動範本版本。
-
視需要調整任何啟動參數,然後選擇 Create launch template (建立啟動範本)。
從執行個體建立啟動範本
您可以複製現有 Amazon EC2 執行個體的參數,然後調整參數以建立啟動範本。如需每個參數的描述,請參閱Amazon EC2執行個體組態參數的參考。
- Console
-
- AWS CLI
-
您可以使用從現有執行個體建立啟動範本,方法是先從執行個體取得啟動範本資料,然後使用啟動範本資料建立啟動範本。 AWS CLI
若要從執行個體啟動範本資料
-
使用指get-launch-template-data令並指定執行個體 ID。您能以輸出做為基礎,用以建立新啟動範本或啟動範本版本。根據預設,輸出包括最上層 LaunchTemplateData
物件,而此物件無法於啟動範本資料中指定。使用 --query
選項排除此物件。
aws ec2 get-launch-template-data \
--instance-id i-0123d646e8048babc
\
--query "LaunchTemplateData"
下列為範例輸出。
{
"Monitoring": {},
"ImageId": "ami-8c1be5f6",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"DeleteOnTermination": true
}
}
],
"EbsOptimized": false,
"Placement": {
"Tenancy": "default",
"GroupName": "",
"AvailabilityZone": "us-east-1a"
},
"InstanceType": "t2.micro",
"NetworkInterfaces": [
{
"Description": "",
"NetworkInterfaceId": "eni-35306abc",
"PrivateIpAddresses": [
{
"Primary": true,
"PrivateIpAddress": "10.0.0.72"
}
],
"SubnetId": "subnet-7b16de0c",
"Groups": [
"sg-7c227019"
],
"Ipv6Addresses": [
{
"Ipv6Address": "2001:db8:1234:1a00::123"
}
],
"PrivateIpAddress": "10.0.0.72"
}
]
}
例如,您可以將輸出直接寫入檔案:
aws ec2 get-launch-template-data \
--instance-id i-0123d646e8048babc
\
--query "LaunchTemplateData" >> instance-data.json
使用「Systems Manager」參數而不是 AMI ID
您可以指定參數,而不是在啟動範本中指 AWS Systems Manager 定 AMI ID。如果 AMI ID 變更,您可以透過更新「系統管理員參數存放區」中的「Systems Manager」參數,在一個位置更新 AMI ID。參數也可以與其他參數共用 AWS 帳戶。您可以在一個帳戶中集中存儲和管理AMI參數,並與需要引用它們的每個其他帳戶共享它們。透過使用 Systems Manager 參數,您可以在單一動作中更新所有啟動範本。
「Systems Manager」參數是您在「參數存放區」AWS Systems Manager 中建立的使用者定義鍵值對。參數存放區提供一個中央位置來存放應用程式組態值。
在下圖中,參數會先對映至「golden-ami
參數存放區」AMI ami-aabbccddeeffgghhi
中的原始參數。在啟動範本中,AMIID 的值為golden-ami
。使用此啟動範本啟動執行個體時,AMIID 會解析為ami-aabbccddeeffgghhi
。稍後會AMI更新,產生新的 AMI ID。在參數存放區中,golden-ami
參數會映射至新的 ami-00112233445566778
。啟動範本保持不變。使用此啟動範本啟動執行個體時,AMIID 會解析為新的ami-00112233445566778
。
使用啟動範本時,使用者定義的「Systems Manager」參數必須遵循下列格式來取AMI代 ID:
若要取得有關為 AMI ID 建立有效參數的更多資訊,請參閱《AWS Systems Manager 使用指南》中的〈建立 Systems Manager 參數〉。
若要使用「Systems Manager」參數代替啟動範本中的 AMI ID,在啟動範本中指定參數時,必須使用下列其中一種格式:
若要參照公用參數:
若要參照儲存在同一帳戶中的參數:
-
resolve:ssm:parameter-name
-
resolve:ssm:parameter-name
:version-number
- 版本編號本身是預設標籤
-
resolve:ssm:parameter-name
:label
若要參考從另一個參數共用的參數 AWS 帳戶:
-
resolve:ssm:parameter-ARN
-
resolve:ssm:parameter-ARN
:version-number
-
resolve:ssm:parameter-ARN
:label
參數版本
Systems Manager 參數是版本化資源。更新參數時,會建立新的連續參數版本。Systems Manager 支援參數標籤,您可以將其映射至特定參數版本。
例如,golden-ami
參數可以有三個版本:1
、2
和 3
。您可以建立映射至版本 2
的參數標籤 beta
,以及映射至版本 3
的參數標籤 prod
。
在啟動範本中,可以使用下列其中一種格式來指定 golden-ami
參數的版本 3:
指定版本或標籤是可選操作。如果未指定版本或標籤,則會使用最新版本的參數。
在啟動範本中指定 Systems Manager 參數
當您建立啟動範本或新版本的啟動範本時,您可以在啟動範本中指定 Systems Manager 參數,而不是 AMI ID。
- Console
-
在啟動範本中指定 Systems Manager 參數
在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/。
-
在導覽窗格中,選擇 Launch Templates (啟動範本) 接著選擇 Create launch template (建立啟動範本)。
-
針對 Launch template name (啟動範本名稱),輸入啟動範本的描述性名稱。
-
在應用程式和作業系統映像 (Amazon 機器映像) 下,選擇瀏覽更多AMIs。
-
選擇搜尋列右側的箭頭按鈕,然後選擇指定自訂值/Systems Manager 參數。
-
在指定自訂值或 Systems Manager 參數對話方塊中,執行下列操作:
-
對於 AMIID 或 Systems Manager 參數字串,請使用下列其中一種格式輸入「Systems Manager」參數名稱:
若要參照公用參數:
若要參照儲存在同一帳戶中的參數:
-
resolve:ssm:parameter-name
-
resolve:ssm:parameter-name
:version-number
-
resolve:ssm:parameter-name
:label
若要參考從另一個參數共用的參數 AWS 帳戶:
-
resolve:ssm:parameter-ARN
-
resolve:ssm:parameter-ARN
:version-number
-
resolve:ssm:parameter-ARN
:label
-
選擇 Save (儲存)。
-
視需要指定任何其他啟動範本參數,然後選擇建立啟動範本。
如需詳細資訊,請參閱透過指定參數建立啟動範本。
- AWS CLI
-
在啟動範本中指定 Systems Manager 參數
-
使用create-launch-template指令建立啟動範本。若要指定AMI要使用的,請使用下列其中一種格式輸入「Systems Manager」參數名稱:
若要參照公用參數:
若要參照儲存在同一帳戶中的參數:
-
resolve:ssm:parameter-name
-
resolve:ssm:parameter-name
:version-number
-
resolve:ssm:parameter-name
:label
若要參考從另一個參數共用的參數 AWS 帳戶:
-
resolve:ssm:parameter-ARN
-
resolve:ssm:parameter-ARN
:version-number
-
resolve:ssm:parameter-ARN
:label
以下範例建立的啟動範本會指定下列項目:
aws ec2 create-launch-template \
--launch-template-name TemplateForWebServer
\
--tag-specifications 'ResourceType=launch-template,Tags=[{Key=purpose
,Value=production
}]' \
--launch-template-data file://template-data
.json
下列範例JSON檔案包含執行個體組態的啟動範本資料。ImageId
的值為 Systems Manager 參數名稱,以所需格式 resolve:ssm:golden-ami
輸入。
{"LaunchTemplateData": {
"ImageId": "resolve:ssm:golden-ami
",
"InstanceType": "m5.4xlarge
",
"TagSpecifications": [{
"ResourceType": "instance",
"Tags": [{
"Key":"Name
",
"Value":"webserver
"
}]
}]
}
}
確認啟動範本取得正確的 AMI ID
將「Systems Manager」參數解析為實際 AMI ID
使用指describe-launch-template-versions令並包括--resolve-alias
參數。
aws ec2 describe-launch-template-versions \
--launch-template-name my-launch-template
\
--versions $Default
\
--resolve-alias
回應包含的AMI識別碼ImageId
。在此範例中,當使用此啟動範本啟動執行個體時,AMIID 會解析為ami-0ac394d6a3example
。
{
"LaunchTemplateVersions": [
{
"LaunchTemplateId": "lt-089c023a30example",
"LaunchTemplateName": "my-launch-template",
"VersionNumber": 1,
"CreateTime": "2022-12-28T19:52:27.000Z",
"CreatedBy": "arn:aws:iam::123456789012:user/Bob",
"DefaultVersion": true,
"LaunchTemplateData": {
"ImageId": "ami-0ac394d6a3example",
"InstanceType": "t3.micro",
}
}
]
}
若要取得有關使用 Systems Manager 參數的更多資訊,請參閱「Systems Manager」文件中的下列參考資料。
限制
-
只有使用具有指定 Systems Manager 參數而取AMI代 ID 的啟動範本類型instant
支援的EC2叢集。
-
EC2類型為maintain
和和 request
Spot 叢集的叢集不支援使用已指定 Systems Manager 參數來取代 ID 的啟動範本。AMI對於類型為maintain
和request
的EC2叢集以及 Spot 叢集,如果您在啟動範本AMI中指定,則必須指定 AMI ID。
-
如果您在EC2叢集中使用以屬性為基礎的執行個AMI體選取項,則無法指定 Systems Manager 參數來取代 ID。使用以屬性為基礎的例證選取時,您必須指定 AMI ID。
-
Amazon EC2 Auto Scaling 提供其他限制。如需詳細資訊,請AWS Systems Manager 參閱 Amazon EC2 Auto Scaling 使用者指南中的使用參數而非啟動範本。AMI IDs