AWS で AMI イメージを別リージョンにコピーしようとしたら Images with EC2 BillingProduct codes cannot be copied to another AWS account が出た件
原因
AWS の仕様上、別のアカウントから移行してきた AMI イメージを別リージョンに移すことはできない。
参考: AMI のコピー - Amazon Elastic Compute Cloud
制限
billingProduct コードと関連付けられた AMI を別のアカウントから共有した場合、これをコピーすることはできません。 これには Windows AMI、AWS Marketplace の AMI などが含まれます。
対処方法
具体例で説明したい。
まず状況は以下としよう。
- コピー元リージョン: 東京
- コピー先リージョン: シドニー
- (コピーしたい)AMI イメージ: シンガポールから東京に移行してきたもの
この時、AMI イメージをシドニーにコピーするには、以下のようにする。
- (1) コピー元の東京で、AMI イメージからEC2インスタンスを作る
- (2) 1で作ったEC2インスタンスから AMI イメージを作る
- (3) 2で作ったイメージをコピー先のシドニーにコピーする
つまり コピー元リージョンで作ったインスタンス をイメージ化することで、イメージの内部情報(BillingProduct codeと呼ばれるやつ)をコピー元リージョンのものに書き換える、というイメージか。
なぜこんな仕様なの?
これは私の推測だが、billingProduct コードとは要するに AWS が管理する「AMI イメージ単位のライセンス」みたいなもの。Windows AMI や RHEL AMI みたいに OS 側でライセンスが必要なもの、あるいは AWS Marketplace AMI みたいにそもそも有料で販売されているもの等に対して、無闇にコピーされるのを防ぐ仕組み……ではないかと思う。
ソースがあったらどなたか教えてください。。。