EBSタイプのインスタンスを他リージョンへ移行する手順

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

みなさんこんにちは!インフラエンジニアの柳瀬です。 毎日暑いので、データセンターに行くのも嫌になってしまいますね。
あ、すいません。データセンターに行くのは暑くなくても嫌でした。インフラエンジニア失格ですね(笑) さて、『全てのサーバーをクラウドに移行する事が出来たら、データセンターに行く事もなくなる!』と夢見ておりますが、シンガポールにあるAWSのデータセンターがオープンして3カ月程度たちました。 先日、US WestにあるEBSタイプインスタンスをAsia Pacificに移行したという事もあり、今回のエントリーではEBSタイプのインスタンスを他のリージョンへ移行する手順について書きたいと思います。 必要な前提条件は以下の通りです

  • 移行するインスタンスにはec2-api-toolsがインストールされている事
  • 移行するインスタンスにはec2-ami-toolsがインストールされている事
  • 移行するインスタンスにはec2-metadataがインストールされている事
  • 今回はUS WestからAsia Pacificへの移動する

移行手順の概要は以下の通りです

  • EBSタイプのインスタンス上でイメージファイルを作成してAsia PacificのS3バケットにアップロード
  • Asia Pacificデータセンターで起動出来るインスタンスストアタイプのAMIを作成して起動
  • インスタンスストアタイプのインスタンスからEBSタイプのAMIを作成

※ec2-api-toolsとec2-ami-toolsのインストールは割愛してあります

準備

ec2-metadataのインストール

fstabの状態を確認

イメージファイルを作成しAsia PacificのS3へアップ

ec2-bundle-volを実行してインスタンスのイメージファイルを作成

Asia-PacificのS3バケットを作成後、S3へイメージファイルをアップロード

S3のイメージファイルからinstance-storeタイプのAMIを作成し、起動

S3へアップロードしたイメージファイルからAMIを登録する

作成したAMIからインスタンスを起動します(AWS Management Consoleからでも実行出来ます)

起動したインスタンスからイメージを作成してEBSに展開、設定変更

起動したインスタンスへログイン後、ec2-bundle-volを実行してインスタンスのイメージファイルを作成

バンドルボリュームを一つのファイルにまとめる

EC2インスタンスのゾーンを取得する。

ブートイメージ格納用のEBSボリュームを作成する(EBSボリュームIDをメモ)

作成したEBSボリュームをアタッチする

イメージをEBSボリュームに戻す

EBSボリュームをマウントする

fstabを編集し、ローカルストレージの設定を削除する

EBSボリュームをアンマウントする

スナップショットを取得してAMIを作成

EBSボリュームのスナップショットを取得する(スナップショットのIDをメモ)

カーネルIDを取得(カーネルIDをメモ)

RAMディスクIDを取得(RAMディスクIDをメモ)

スナップショットからAMIを登録する

EBSタイプのインスタンスを起動、各種設定

EC2インスタンスを起動する

インスタンス起動後にローカルストレージのマウントとfstabの編集

おわり

もう少し簡単なやり方があるかもしれません。
環境によってはfstabの設定などで手順が変わる場合があるかもしれませんが、ひとまず移行出来たので一安心です。

参考にさせて頂いたサイト

今回のエントリではこちらのサイトを参考にさせて頂きました。
ありがとうございましたー! http://cloudbb.jp/research1/ConvertEBS-bootedAMI.htm

AWS運用自動化サービス「Cloud Automator」