AWSでEC2のスナップショットやAMIを別アカウントと共有する方法
タイトルどおりのAWSでEC2のスナップショットやAMIを別アカウントと共有する方法です。簡単でした。
AWSユーザーなら使えて当たり前の機能ではあるのですが。コレが出来ると、別の所で作ったAMIを使い回せるのでシステム構築の効率が相当良くなります。
設定方法
CLIからも設定できる様ですが、私は面倒なのでコンソールから設定しています。以下その手順です。
スナップショットを共有する
事前に共有したいAWSアカウントのアカウント番号が分かっている事と、スナップショットを作っておく必要があります。
もしスナップショット未作成の場合は「ELASTIC BLOCK STORE」のボリュームから該当のボリュームを選択し、「スナップショットを作成する」をクリックしてください。
スナップショット共有元設定方法
- 共有元のアカウントでコンソールにログインしEC2の画面にある「ELASTIC BLOCK STORE」の「スナップショット」をクリックする。
- 共有したいスナップショットを選択する
- 画面下側にある「アクセス許可」タブをクリックし「編集」ボタンをクリックする
- スナップショットの場所のラジオボタンは「プライベート」のままにし、AWSアカウント番号欄に共有したいAWSアカウントの番号を入力して「アクセス許可の追加」ボタンをクリックし権限が追加された事を確認する。
- 「保存」ボタンをクリックする。
スナップショット共有先設定方法
- 共有先のアカウントでコンソールにログインしEC2の画面にある「ELASTIC BLOCK STORE」の「スナップショット」をクリックする。
- 「スナップショットの作成」ボタンの下にある「自分で作成」をクリックし、「プライベートスナップショット」に変更する。
- 先ほど共有設定したスナップショットが表示されるので選択する。
- 右クリックして表示されたメニューから「コピー」をクリックする。
- 送信先リージョンを選択し「コピー」ボタンをクリックする。
以上でスナップショットの共有ができました。一度共有設定したスナップショットは共有元でアクセス許可を削除しない限り参照し続ける事が可能です。
AMIを共有する
設定方法自体はスナップショット同様、共有元でアクセス許可をAWSアカウント番号に対してしてやれば問題ありません。
共有先で表示する場合はEC2コンソールの「イメージ」にある「AMI」をクリックし、左上にある「作成」ボタン下の「自己所有」を「プライベートイメージ」に変更すると表示されます。
該当イメージの上で右クリックし「作成」するとインスタンスとEBSが作成されます。またイメージを自分の環境に持ってくるには「コピー」を行ってください。
おわりに
自分のテスト環境構築とインスタンスのリストア方法を確認する為に色々試している中の一つを今回まとめました。
スナップショットから別アカウントでインスタンスを作成、元のファイルを含んだ状態で起動させる所までは問題なくテストでました。
ただなぜかそれまで動いていたOracleに接続できない現象が起きています。
Listenerはいるのにサービスがない、tnsname.oraに設定されているし起動もしているのに見えない、という状態です。元にしたインスタンスは問題なく動作してるんですけどね。
まぁOracleのDBAのパスワード分からないからどうしようもありません。こうなるとリストアはAMIからインスタンスを作成、DBの値はdumpからインポートする形が一番早そうです。