本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立執行個體存放區支援 AMI
您AMI在啟動執行個體時指定的決定了根裝置磁碟區的類型。
若要建立以商店為基礎的 Linux 執行個體AMI,請從您從現有執行個體商店支援的 Linux 啟動的執行個體開始。AMI自訂執行個體以滿足您的需求後,請捆綁磁碟區並註冊新的執行個體AMI,您可以使用這些自訂項啟動新的執行個體。
您無法建立執行個體存放區支援的 Windows,AMI因為 Windows AMIs 不支援根裝置的執行個體存放區。
重要
只有下列執行個體類型支援執行個體存放區磁碟區做為根裝置,並且需要執行個體存放區支援AMI:C1、C3、D2、I2、M1、M2、M3、R3 和 X1。
Amazon EBS 支持的AMI創建過程是不同的AMIs。如需詳細資訊,請參閱創建一個 Amazon 支EBS持 AMI。
目錄
AMI創作概述
下圖摘要說明AMI從執行處理商店支援執行處理建立的程序。
首先,從類似於您要建立的執行個AMI體啟動執行個體。AMI您可以連線到您的執行個體並自訂。設定好所要的執行個體後,您可以組合執行個體。完成綁定程序需要幾分鐘。程序完成後,您將擁有 bundle,其中包含映像工作資訊清單檔案 (image.manifest.xml
) 和含有根磁碟區範本的檔案 (image.part.
xx)。接下來,您將捆綁包上傳到您的 Amazon S3 存儲桶,然後註冊您的AMI.
注意
若要將物件上傳至執行個體商店支援 Linux 的 S3 儲存貯體AMI,ACLs必須為儲存貯體啟用。否則,Amazon EC2 將無法在要上傳的對象ACLs上進行設置。如果您的目標儲存貯體使用儲存貯體擁有者強制執行 S3 物件擁有權的設定,這將無法運作,因ACLs為已停用。如需詳細資訊,請參閱使用 S3 物件擁有權控制上傳物件的擁有權。
當您使用新的執行個體啟動執行個體時AMI,我們會使用您上傳到 Amazon S3 的服務包為執行個體建立根磁碟區。Amazon S3 中 bundle 所用的儲存空間會使您的帳戶產生費用,直到刪除為止。如需詳細資訊,請參閱取消註冊 Amazon EC2 AMI。
如果除了根裝置磁碟區之外,您還將執行個體存放區磁碟區新增至執行個體,則新磁碟區的區塊裝置對應AMI包含這些磁碟區的資訊,而從新磁碟區啟動的執行個體的區塊裝置對應AMI會自動包含這些磁碟區的資訊。如需詳細資訊,請參閱Amazon EC2 執行個體上磁碟區的區塊裝置對映。
必要條件
您必須先完成下列工作AMI,才能建立:
-
安裝工AMI具。如需詳細資訊,請參閱設置 Amazon EC2 AMI 工具。
-
安裝 AWS CLI. 如需詳細資訊,請參閱開始設定 AWS Command Line Interface。
-
請確定您有適用於套件的 S3 儲存貯體,並且儲存貯體已ACLs啟用。如需有關設定的詳細資訊ACLs,請參閱設定ACLs。
-
若要使用建立 S3 儲存貯體 AWS Management Console,請在的開啟 Amazon S3 主控台,https://console.aws.amazon.com/s3/
然後選擇建立儲存貯體。 -
若要使用建立 S3 儲存貯體 AWS CLI,您可以使用 mb 命令。如果您安裝的AMI工具版本為 1.5.18 或更新版本,您也可以使用
ec2-upload-bundle
命令建立 S3 儲存貯體。如需詳細資訊,請參閱ec2-upload-bundle。
-
-
確保您服務包中的檔案未在 S3 儲存貯體中加密。如果您需要加密AMI,則可以使用 EBS-backed 來AMI代替。如需詳細資訊,請參閱對 EBS 後端 AMI 使用加密。
-
確保您有您的 AWS 帳戶 ID。如需詳細資訊,請參閱《AWS 帳戶管理參考指南》中的檢視 AWS 帳戶 識別碼。
-
請確定您擁有可使用 AWS CLI的憑證。如需詳細資訊,請參閱《AWS Account Management 參考指南》中的AWS 帳戶最佳做法。
-
請確定您擁有 X.509 憑證和對應的私有金鑰。
-
如果需要建立 X.509 憑證,請參閱管理簽署憑證。X.509 憑證和私密金鑰可用來加密和解密您的AMI.
-
[中國 (北京)] 使用
$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-cn-north-1.pem
憑證。 -
[AWS GovCloud (美國西部)] 使用
$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-gov.pem
憑證。
-
-
連線到您的執行個體並加以自訂。例如,您可以安裝軟體和應用程式、複製資料、刪除暫存檔,以及修改 Linux 組態。
AMI從 Amazon Linux 實例創建一個
下列程序說明如何AMI從執行 Amazon Linux 1 的執行個體商店支援執行個體建立。它們可能不適用於運行其他 Linux 發行版的實例。
準備使用工AMI具(僅HVM實例)
-
這些AMI工具需要GRUB傳統才能正常啟動。使用以下命令進行安裝GRUB:
[ec2-user ~]$
sudo yum install -y grub
-
使用下列命令安裝分割區管理套件:
[ec2-user ~]$
sudo yum install -y gdisk kpartx parted
若要AMI從執行個體以商店支援的 Amazon Linux 執行個體建立
此程序假設您已滿足 必要條件 中的先決條件。
在以下命令中,替換每個命令 user input placeholder
使用您自己的信息。
-
將您的登入資料上傳到執行個體。我們使用這些登入資料來確保只有您和 Amazon 才EC2能存取您的AMI.
-
在執行個體上為登入資料建立如下的暫時目錄:
[ec2-user ~]$
mkdir /tmp/cert
如此您就能將登入資料從建立的映像中排除。
-
使用 scp 等安全複製工具從電腦上將 X.509 憑證和對應的私有金鑰複製到執行個體上的
/tmp/cert
目錄內。下列scp命令中的-i
選項是您用來連線至執行個體的私密金鑰SSH,而非 X.509 私密金鑰。例如:my-private-key
.pemyou@your_computer:~ $
scp -i
my-private-key
.pem/path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
/path/to/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
ec2-user@ec2-203-0-113-25.compute-1.amazonaws.com
:/tmp/cert/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 717 0.7KB/s 00:00 cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 685 0.7KB/s 00:00
或者,由於這些檔案為純文字檔案,因此您可用文字編輯器開啟憑證和金鑰,然後將內容複製到
/tmp/cert
中的新檔案內。 -
-
從執行個體內執行 ec2-bundle-vol 命令,準備要上傳至 Amazon S3 的 bundle。務必指定
-e
選項,以排除憑證存放位置的目錄。根據預設,bundle 程序不包含可能帶有敏感資訊的檔案。這些檔案包含*.sw
、*.swo
、*.swp
、*.pem
、*.priv
、*id_rsa*
、*id_dsa*
*.gpg
、*.jks
、*/.ssh/authorized_keys
和*/.bash_history
。若要包含所有這些檔案,請使用--no-filter
選項。若要包含這些檔案中的一部分,請使用--include
選項。重要
依預設,AMI捆綁程序會在代表您的根磁碟區的
/tmp
目錄中建立壓縮、加密的檔案集合。如果/tmp
內沒有足夠的可用磁碟空間可存放 bundle,您需要用-d
選項指定其他的 bundle 存放位置。某些執行個體會掛載在/path/to/bundle/storage
/mnt
或您可以使用/media/ephemeral0
的暫時儲存,或者您也可以建立、連接和掛接新的 AmazonEBS) 磁碟區來存放組合。如需詳細資訊,請參閱 Amazon EBS使用者指南中的建立 Amazon EBS 磁碟區。-
您必須以 root 執行 ec2-bundle-vol 命令。針對多數命令,您皆能用 sudo 來取得更高級的許可,但在此情況下您應執行 sudo -E su 以保持環境變數。
[ec2-user ~]$
sudo -E su
請注意,bash 提示現在將您識別為根使用者,且貨幣符號已換成雜湊標籤,表示您正在根 shell 下:
[root ec2-user]#
-
若要建立AMI套裝軟體,請執行下列ec2-bundle-vol命令:
[root ec2-user]#
ec2-bundle-vol -k /tmp/cert/
pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
-c /tmp/cert/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
-u123456789012
-r x86_64 -e /tmp/cert --partitiongpt
注意
對於中國 (北京) 和 AWS GovCloud (美國西部) 區域,請使用
--ec2cert
參數並根據必要條件指定憑證。建立映像可能需要幾分鐘。完成此指令後,您的
/tmp
(或非預設) 目錄會包含套件 (image.manifest.xml
加上多個)image.part.
xx
文件)。 -
退出根 shell。
[root ec2-user]#
exit
-
-
(選擇性) 若要新增更多執行個體儲存磁碟區,請在
image.manifest.xml
檔案中為您的AMI. 如需詳細資訊,請參閱Amazon EC2 執行個體上磁碟區的區塊裝置對映。-
為您的
image.manifest.xml
檔案建立備份。[ec2-user ~]$
sudo cp /tmp/image.manifest.xml /tmp/image.manifest.xml.bak
-
重新格式化
image.manifest.xml
檔案,以方便讀取和編輯。[ec2-user ~]$
sudo xmllint --format /tmp/image.manifest.xml.bak > /tmp/image.manifest.xml
-
使用文字編輯器編輯
image.manifest.xml
中的區塊型裝置映射。下列範例顯示ephemeral1
執行個體存放磁碟區的新項目。注意
如需排除檔案清單,請參閱 ec2-bundle-vol。
<block_device_mapping> <mapping> <virtual>ami</virtual> <device>sda</device> </mapping> <mapping> <virtual>ephemeral0</virtual> <device>sdb</device> </mapping>
<mapping> <virtual>ephemeral1</virtual> <device>sdc</device> </mapping>
<mapping> <virtual>root</virtual> <device>/dev/sda1</device> </mapping> </block_device_mapping> -
儲存
image.manifest.xml
檔案並結束文字編輯器。
-
-
若要上傳 bundle 至 Amazon S3,請照下列所示執行 ec2-upload-bundle 命令。
[ec2-user ~]$
ec2-upload-bundle -b
amzn-s3-demo-bucket
/bundle_folder
/bundle_name
-m /tmp/image.manifest.xml -ayour_access_key_id
-syour_secret_access_key
重要
若要AMI在美國東部 (維吉尼亞北部) 以外的區域註冊,您必須同時指定目標區域與
--region
選項,以及已存在於目標區域中的值區路徑,或指定可在目標區域建立的唯一值區路徑。 -
(選用) bundle 上傳至 Amazon S3 之後,您可使用下列
/tmp
命令將 bundle 從執行個體的 rm 目錄中移除:[ec2-user ~]$
sudo rm /tmp/image.manifest.xml /tmp/image.part.* /tmp/image
重要
如果用
-d
選項指定 步驟 2 中的路徑,請使用該路徑,而非/path/to/bundle/storage
/tmp
。 -
要註冊您的AMI,請運行寄存器映像命令,如下所示。
[ec2-user ~]$
aws ec2 register-image --image-location
amzn-s3-demo-bucket
/bundle_folder
/bundle_name
/image.manifest.xml --nameAMI_name
--virtualization-typehvm
重要
如果您先前已指定 ec2-upload-bundle 命令的區域,請在此命令中再次指定該區域。