S3-backed(instance store)をEBS-backedのEC2に変更する

記事タイトルとURLをコピーする
最近美容の為に水を沢山飲もうと思ったのに挫折して珈琲を飲んでいる小室です。 今回はS3-backed instanceをEBS-backed instanceに変換してみました。
S3-backed instaceは別名instance storeと呼ばれていて、EC2を起動する時は一般的なストレージタイプでした(2009~2010年ぐらい?)。 起動は早いのですが、一度止めるとデータが無くなってしまうので、永続的なストレージEBS出現後はブートディスクとしてEBSが一般的に使われるようになりました。
そして残念ながらS3-backed instanceは地味な存在になってしまいました。。。 しかし昔からAWSを使っている人には馴染みあるフォーマットではないでしょうか。 さてそんなS3-backed instanceをEBS-backed instanceに変換してみたいと思います。

作業フロー

  1. EBSを作成
  2. S3-backed instanceにアタッチする
  3. フォーマットしてマウントする
  4. データのコピー
  5. EBSからスナップショット作成
  6. スナップショットからAMIを作成
今回使用したイメージ
  • OS: CentOS (ここで得意なDebianを使わずにあえてCentOSにしてドヤ顔してみました←!?)
  • AMI Id: ami-5460d555
  • AMI: RightImage_CentOS_5.6_i386_v5.7.14
  • Region: 東京リージョン
  • AZ: ap-northeast-1b
  • dfで今使っているストレージの容量を調べておきましょう。

EBSを作成

  • EBSボリュームをEC2インスタンスと同じアベイラビリティゾーンに作成します。

S3-backed instanceにアタッチ

  • 作成したEBSをインスタンスにアタッチします。
  • CentOS6など新しいOSは/dev/xvdfなどにすると良いかもしれません。

フォーマットしてマウントする

  • 利用ファイルフォーマットにEBSをフォーマットします。その後マウントします。
  • コマンド: mkfs -t ext3 /dev/sdf

データのコピー

  • マウントしたらブートストレージの中身をコピーします。
  • コマンド: rsync -avx --exclude /ebs / /ebs/

EBSからスナップショット作成

  • インスタンスからアンマウントした後スナップショットを作成します。
  • スナップショット作成します。ActionからCreate Snapshotを選択します。

スナップショットからAMIを作成

  • スナップショットからAMIを作成します。
  • AWS コマンドラインツールが設定されていたら、コマンドで設定する事も出来ます。
  • EBSスナップショット作成設定画面

AMI作成完了!

  • これでEBS-backedのインスタンスのイメージ(AMI)が出来ました。
  • 必要に応じてAMIからEBS-backed EC2を起動しましょう。

まとめ

昔からAWSを使っている方はS3-backed instanceを簡単にEBSに変換する事で、リージョン/AZを跨いだり、停止/起動が出来る様になりますね!EBSは速度も、安定性も昔より格段に上がっていますので、ぜひEBS化して快適にEC2インスタンスを活用しましょう〜   上記のフローのコマンドフローはこちら(gist)