【開発ネタ】EC2のインスタンスをアカウント間で移行するやり方をまとめる

f:id:keisuke_ohta:20160301194901j:plain

はじめに

Amazonクラウドサービス「Amazon Web Services(以下、AWS)」を2006年7月に公開してから、もうすぐ10年が経過しようとしています。

今ではInstagramAirbnbNetflixVineといった有名なサービスから、趣味レベルで作ったサービスまで、国内・国外問わずありとあらゆるWEB・モバイルサービスのインフラとしてAWSが利用されるようになり、もはや開発者にとってなくてはならない開発インフラと言っても過言ではありません。

しかしその一方で、まだまだ発展途上のサービスということもあり、いざ利用しようとすると「もっとこうしたい」とか「こういう風にできればなー」といった不満や要望があるのも事実です。

AWSの代表的なDBサービス「Amazon RDS」で日本時間(JST)が使えるようになったのも、2015年12月とつい最近の話だったりします。

dev.classmethod.jp

本題

ところでみなさんに聞きたいことがあるのですが、「EC2のインスタンスをアカウント間で移行したい、または移行する必要に迫られた」ことはありますか?実はそんな事案が本日、僕の方で発生しました。

そこで今回は、EC2のインスタンスをアカウント間で移行するやり方を共有したいと思います。

前提条件

  • AWSアカウントを2つ持っている
  • 移行元のアカウントでEC2のインスタンスが既に立ち上がっている

移行先での作業

まずはじめに、移行先の「AWSアカウント番号」を控えておきましょう。コンソールのヘッダー右上にある「サポート」をクリックすると以下のような画面が表示されます。その右上にある番号がAWSアカウント番号です。

f:id:keisuke_ohta:20160301204233p:plain

移行元での作業

次にEC2のインスタンス一覧からインスタンスのイメージを作成します。

f:id:keisuke_ohta:20160301201944p:plain

イメージが作成されるとイメージ一覧画面に(たぶん)遷移します。その画面で自分で名前をつけた該当のイメージを選んで、「アクション > イメージパーミッションの変更」をクリックします。

f:id:keisuke_ohta:20160301203005p:plain

すると以下のようなモーダルが表示されるので、「AWSアカウント番号」の横にあるフォームに移行先のアカウント番号を入力して「アクセス許可の追加」をクリックします。

f:id:keisuke_ohta:20160301203356p:plain

これで移行先のAWSアカウントにイメージを共有することができました。

移行先での作業

移行元のAWSアカウントからログアウトして移行先のAWSアカウントにログインし、EC2のインスタンス一覧画面を表示、左のメニューから 「AMI」をクリックします。

すると、先ほど共有したイメージが表示されている...と思いきや何も表示されていませんが焦る必要はありません。「自己所有 > プライベートイメージ」をクリックします。すると先ほど移行元から共有したイメージが表示されます。

f:id:keisuke_ohta:20160301205241p:plain

そのイメージを選択して、イメージ一覧のメニュー左にある「作成」ボタンを押すとインスタンスの作成画面になります。そこからは通常通りのインスタンス作成の手順で設定していけばOKです。

まとめ

以上でインスタンスの移行完了です! インスタンスの移行は発生頻度としては決して多くはないと思いますが、誰かからサービスを譲り受けたとか複数アカウントインスタンスを管理している場合はありうると思います。

そういった時に参考にしてもらえればと思います。 それではまた。

photo credit: 278:365:2015BWH via photopin (license)