本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
識別單一請求中啟動的每個執行個體
此範例示範如何使用使用者資料和執行個體中繼資料來設定 Amazon EC2執行個體。
注意
本節中的範例使用 IMDS: IPv4的地址169.254.169.254
。如果您要透過 IPv6 地址擷取執行個體的EC2執行個體中繼資料,請務必啟用並使用IPv6地址:[fd00:ec2::254]
。IPv6 的地址與 IMDSv2 命令IMDS相容。該IPv6地址只能在 IPv6支援的子網路 (雙堆疊或IPv6僅限 ) 中的 Nitro 型執行個體上存取。
Alice 想要啟動她最愛的資料庫的四個執行個體AMI,第一個執行個體做為原始執行個體,其餘三個執行個體做為複本。當她啟動這些執行個體時,她想要為每個複本新增關於複寫策略的使用者資料。她知道資料將會在四個執行個體上可用,因此她需要使用允許每個執行個體識別其適用部分的方式架構使用者資料。她可以使用 ami-launch-index
執行個體中繼資料值執行此作業,每一個執行個體的該值都是唯一的。如果您同時啟動一個以上的執行個體,ami-launch-index
表示執行個體的啟動順序。第一個啟動的執行個體的值為 0
。
下列是 Alice 建構的使用者資料。
replicate-every=1min | replicate-every=5min | replicate-every=10min
replicate-every=1min
資料定義第一個複本的組態,replicate-every=5min
定義第二個複本的組態,以此類推。Alice 決定將此資料作為具有管道符號 (|
) 的ASCII字串提供,以限制個別執行個體的資料。
Alice 使用 run-instances 命令啟動四個執行個體,指定使用者資料。
aws ec2 run-instances \ --image-id
ami-0abcdef1234567890
\ --count 4 \ --instance-type t2.micro \ --user-data "replicate-every=1min | replicate-every=5min | replicate-every=10min"
在啟動它們之後,所有執行個體都會擁有使用者資料的複本,並且常見的中繼資料會顯示於此:
-
AMI ID:ami-0abcdef1234567890
-
保留 ID:r-1234567890abcabc0
-
公有金鑰:無
-
安全群組名稱:預設
-
執行個體類型:t2.micro
不過,每個執行個體都有唯一的中繼資料,如下表所示。
中繼資料 | Value |
---|---|
instance-id | i-1234567890abcdef0 |
ami-launch-index | 0 |
public-hostname | ec2-203-0-113-25.compute-1.amazonaws.com |
public-ipv4 | 67.202.51.223 |
local-hostname | ip-10-251-50-12.ec2.internal |
local-ipv4 | 10.251.50.35 |
中繼資料 | Value |
---|---|
instance-id | i-0598c7d356eba48d7 |
ami-launch-index | 1 |
public-hostname | ec2-67-202-51-224.compute-1.amazonaws.com |
public-ipv4 | 67.202.51.224 |
local-hostname | ip-10-251-50-36.ec2.internal |
local-ipv4 | 10.251.50.36 |
中繼資料 | Value |
---|---|
instance-id | i-0ee992212549ce0e7 |
ami-launch-index | 2 |
public-hostname | ec2-67-202-51-225.compute-1.amazonaws.com |
public-ipv4 | 67.202.51.225 |
local-hostname | ip-10-251-50-37.ec2.internal |
local-ipv4 | 10.251.50.37 |
中繼資料 | Value |
---|---|
instance-id | i-1234567890abcdef0 |
ami-launch-index | 3 |
public-hostname | ec2-67-202-51-226.compute-1.amazonaws.com |
public-ipv4 | 67.202.51.226 |
local-hostname | ip-10-251-50-38.ec2.internal |
local-ipv4 | 10.251.50.38 |
Alice 可以使用 ami-launch-index
值判斷使用者資料中的哪一個部分適用於特定執行個體。
-
她連線到其中一個執行個體,擷取該執行個體的
ami-launch-index
,確保它是其中一個複本: -
她將
ami-launch-index
儲存為變數。 -
她將使用者資料儲存為變數。
-
最後,Alice 使用 cut 命令擷取適用於該執行個體的使用者資料部分。