インスタンスストアタイプからEBSタイプのAMI作成 Ubuntu編

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

こんにちは、エンジニアの横倉です。

ルートデバイスをインスタンスストアタイプからEBSタイプへ変更する作業をUbuntuで行ってみました。簡単な説明をつけて手順を記載したいと思います。

インスタンスストアタイプとEBSタイプ とは

  • インスタンスのrootデバイスにはインスタンスストアタイプとEBSタイプの2種類が存在します
  • インスタンスタイプ : EC2初期からあり、停止するとデータが消える
  • EBSタイプ : 2009年後半から、停止(stop)と起動(start)ができ、削除するまでデータが消えない

その他の用語

  • EBSボリューム : 仮想的な外付けHDDみたいなもの
  • スナップショット : EBSボリュームのイメージ これでEBSボリュームの複製やAMIを作成できます
  • AMI(Amazon Machine Image) : サーバーのコピーをテンプレート可したもの

構成

  • Ubuntu インスタンス 1台
  • Ubuntu 公式AMI ami-4c0fa44d
  • ※ 検証の為インスタンスストアタイプを利用しておりますが、Ubuntu公式AMIでEBSタイプもあります。

作業フロー

  1. EC2インスタンスの起動、Amazon EC2 AMI Tools、Amazon EC2 API Toolsの利用準備
  2. インスタンスのイメージを作成を行い、空のEBSボリュームにイメージをコピーします
  3. イメージをコピーしたEBSボリュームから、AMIを作成します

作業手順

1.EC2の操作ができる Amazon EC2 AMI Tools、Amazon EC2 API Toolsの準備

まず最初に、Management ConsoleよりインスタンスストアタイプのEC2インスタンスを起動してください。
なお、EC2やEBSの説明、使い方は「仮想サーバーEC2 & EBS詳細 -ほぼ週刊AWSマイスターシリーズ “Reloaded”」で確認できます。

起動したインスタンスにSSH接続後、Amazon EC2 AMI ToolsAmazon EC2 API Toolsのインストールを行ないます。
EC2 API Toolsにはjavaアプリなので、sunのjdkが必要になりますが、apt-getでOpenJDKも纏めてインストール可能です。Ubuntu公式ページにEC2利用の手順があるので、詳細はこちらでご確認ください。
※Ubuntuインスタンスはubuntuユーザで接続

環境設定を編集します。X.509の秘密鍵ファイルと証明書ファイルの2つを取得してください。

次に、~/.bashrcの編集を行います。

最下行に下記を追記してください。

設定変更を有効化してください。

APIの動作テスト

各リージョンのアドレスが表示されれば成功です。

2.インスタンスのイメージを作成して、EBSにイメージをコピーします

現在、起動しているインスタンスのバンドルボリュームを作成してイメージを作成します。
※イメージ作成には少し時間がかかります。

起動しているインスタンスと同一Zoneに空のEBSボリュームを作成します。作成するEBSボリュームは元となるインスタンスのrootボリュームと同一の容量で作成してください。※Management Consoleで操作可

起動しているインスタンスに作成したEBSボリュームを取り付けます。 ※Management Consoleで操作可

作成したイメージをddコマンドを使ってEBSボリュームに書き込みます。 データ容量により書き込み時間が変わります。今回は10GBで30分程かかりました。

3.イメージをコピーしたEBSから、AMIを作成します

イメージを書き込んだEBSのスナップショットを作成します。 ※Management Consoleで操作可

スナップショット作成も多少時間がかかります。ステータスがcompletedになっていることを確認後、作成したスナップショットからAMIを作ります。
※AMI作成時にkernelやramdiskを指定できるので、ec2-describe-instanceコマンドで事前にkernelやramdiskを調べて指定しましょう。

作成したAMIでEBSインスタンスが起動できれば成功です。もしうまくいかなければec2-get-console-outputコマンドで起動に使用しているカーネル確認や原因を調べてみてください。
今回は環境設定も記載したため、多少長くなりましたが、ある程度EC2を触った方なら、コマンドラインの操作が3箇所くらいで簡単にできることがわかるのではないでしょうか?
また、EC2初心者の方でも簡単にできるのでぜひやってみてください。

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