Bubble Bath

野球が好きすぎる女子インフラエンジニアのBlog

AWS AMIの共有→コピーでハマった話。

検証環境でEC2の構築が終わったので、AMIにして本番環境にもっていきたい。

このように、アカウント間でAMIを共有し、共有先でAMIをコピーしたいとき。

簡単にできるものだと思っていましたが、意外とハマってしまったので、その方法を説明します。

https://4.bp.blogspot.com/-YhtXKhx5-CM/WR_KiDM7kmI/AAAAAAABEXM/GXAsRRoRJl0ztmis7bt2lQy183zfb4stwCLcB/s400/business_jouhou_koukan.png

間違った方法

⚠️わたしは普通にこうやってハマりました

共有させたいAMIを選んで「アクション」→「イメージパーミッションの変更」

f:id:awana1023:20181122162935p:plain

共有先のアカウントIDを入力して「アクセス許可の追加」→「保存」

共有先のアカウントに移動し、AMI検索窓の左の「自己所有」をクリックして「プライベートイメージ」を選択

共有したAMIが表示されるので選択して「AMIのコピー」 リージョン選択していざコピーしようとすると f:id:awana1023:20181122164550p:plain こんなエラーが出ます。

アクセス許可はつけたはずなのに...?

原因

AMIと紐づくEBSボリュームへのアクセス権がない

アクセス許可はAMI自体だけではなく、EBSボリュームにも与えないといけないわけです...!

正しい方法

共有設定時に、

パーミッションを作成するときは次の関連付けられたスナップショットに "ボリューム作成" パーミッションを追加する:」

にチェックを入れる。

(一度失敗して共有設定をやり直す場合、いったん設定を消してからやりなおしてください)

もしくは

表示されているスナップショットのIDをスナップショット一覧から検索し、そちらに「権限の変更」から共有設定をする。

このいずれかを行うと、共有先でAMIのコピーが可能になります!

簡単なことのはずですが、意外と落とし穴になっている気がします。(実際わたしはこれで半日潰した)

おすすめAWS参考書

現在AWSを仕事で使っていて学習中なので、読んでいる参考書を紹介します。 AWSを広く浅く理解するにはうってつけの参考書だと思います。

Amazon Web Services実践入門 (WEB+DB PRESS plus)

Amazon Web Services実践入門 (WEB+DB PRESS plus)