AMI共有の落とし穴、コピーじゃなくて共有だよ

※タイトルが言いたいことの全てです!が、それじゃちょっと物足りないので補足します。

みなさん、AMI(Amazonマシンイメージ)共有機能はご存知でしょうか??

この機能を利用すれば、アカウントを跨いでAMIを共有することができます。開発アカウントで作ったAMIを本番アカウントでも利用したい! なんて時に便利な機能です。

ですが、この機能にはちょっとした落とし穴があります。そう、AMIはコピーじゃなくて共有なのです。

つまり以下のようなオペレーションをとった場合

  1. アカウントAのAMIをアカウントBに共有
  2. アカウントAでAMIを削除

アカウントBからは共有されたAMIが見えなくなります。

うーん、それは困まる、アカウントを跨いでAMIをコピーすることはできないものか。。

という方もいらっしゃいますよね??

そこで本日はアカウントを跨いでAMIをコピーする方法を紹介したいと思います。やることは AMIの共有→AMIからEC2起動→AMIの取得 それだけです。

やってみた

AMI共有(アカウントAの作業)

以下を参考にアカウントAのAMIをプライベートイメージとしてアカウントBに共有します。

[EC2] カスタムAMIの活用:共有とコピー

アカウントAからアカウントBにAMIを共有するとアカウントAでは以下のような状態となります。

アカウントBでは以下のような状態となります。

共有されたAMIからEC2を起動(アカウントBの作業)

共有されたAMIを指定しEC2を起動します。

AMIを取得(アカウントBの作業)

起動したEC2からAMIを取得します。

所有者がアカウントBとなるAMIが作成されました!!

以上!!

おまけ

アカウントBに共有されたAMIを単純にコピーしようとしたところ You do not have permission to access the storage of this amiというエラーが発生しました。

AMIのオーナーがアカウントBではないから当然ですね。今の所、アカウントを跨いでAMIをコピーするには上記のオペレーションしかなさそうです。

みなさま落とし穴にはハマらないように!!