本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
識別在單一請求中啟動的每個執行個體
此範例會示範如何使用使用者資料和執行個體中繼資料,設定您的 Amazon EC2 執行個體。
注意
本節中的範例使用 IMDS 的 IPv4 地址:169.254.169.254
。如果您要透過 IPv6 地址擷取 EC2 執行個體的執行個體中繼資料,請確定您啟用並改用 IPv6 地址:[fd00:ec2::254]
。IMDS 的 IPv6 地址與 IMDSv2 命令相容。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 命令擷取適用於該執行個體的使用者資料部分。