カスタムAMIを共有する際のポイント2つ
こんにちは、せーのです。 今回はカスタムAMIを別アカウントにて共有する場合につまづきそうな(というか私がつまづいた)ポイントを2つご紹介します。
やること
環境構築の為に必要なパッケージ等をあらかじめ入れておいたAMI(CentOS6.5)を作成、こちらを元に環境を構築(CloudFormation使用)。 同じAMIを使ってstg環境(別アカウント)を作成する。
ポイント1:アカウント番号をAMI側に追加する。
まずはManagement ConsoleのEC2コンソールより[AMI]ナビをクリックします。
共有したいAMIを選択し、Actionsまたは右クリックから[Modify Image Permissions]を選択します。
AMIを共有するには「Public」「Private」という2種類の方法があります。 Publicを指定するとご想像の通り全てのAWSアカウントと共有することになるのですが、なかなか使わないですね。ということでPrivateを指定します。 Privateを指定した場合、共有したいAWSアカウントのアカウントIDを登録して[Save]で保存します。
これでAWSアカウントが許可されました。 では実際に使ってみましょう。AMIを使用したCloudFormationを流します。
なんでしょう、これ。
ポイント2:MarketplaceのTermを承認しておく
実はこれはAWS Marcketplaceに関するエラーです。 今回はAmazon Linuxではなく、CentOS6.5を使用したのですが、このAMIはAWS Marketplaceからlaunchしたものがベースになっています。 launchした時にTermsは承認した上で起動させるわけですが、あくまでこれはAMIがあるアカウントでのお話。共有するアカウント側では承認をしていないわけですから、承認が必要となるわけです。
AWS Marketplaceにいき、使用したベースAMIを選択します。
ここはさらっと[continue]
[Manual Launch]を選択し、右上の[Accept Terms]をクリックします。
これでベースAMIの承認が完了し、カスタムAMIが使えるようになりました。
まとめ
これらのTipsはManagement Consoleで構築をしているとそんなに痛手にはならないかと思いますが、CloudFormationで構築をしているといちいちロールバックされ、インスタンスサイズが大きかったりすると10分とか20分とか待たされます。 是非事前にご確認してみてください。