SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

流行りのクラウドサービスを操ってみよう!Amazon EC2/S3環境構築のすべて

Amazon EC2を実践的に使ってみよう ~Amazon EC2/S3環境構築のすべて~

第4回

  • X ポスト
  • このエントリーをはてなブックマークに追加

AMIの作成/保存/起動

AMIの作成

 AMIを作成するには、まずインスタンスに「X.509証明書」を転送します。X.509証明書は「pk-xxxxx.pem」と「cert-xxxxx.pem」の2種類となります。なお、インスタンスへログインする際に使用するキーは、前回同様「fedora_test.id」とします。

$ scp -i fedora_test.id *.pem root@ec2-xx-xx-xx-xx.compute-1.amazonaws.com:/mnt

 次に、インスタンスのディスク内容を基にAMIを作成します。インスタンスにSSHでログインし、次のコマンドを実行します。

ec2# cd /mnt/
ec2# ec2-bundle-vol -d /mnt --privatekey pk-xxxxx.pem --cert cert-xxxxx.pem --user xxxx-xxxx-xxxx  --fstab /etc/fstab

 上記では、--privatekey--certの後ろに転送した2つの.pemファイルを、--userの後ろには、アカウント番号(Account Number)を指定しています。

アカウント番号の確認

 アカウント番号については、Amazon Web Servicesの「Account Activity」のページなどで確認できます。

図1
図1

 リンク先へ遷移し(認証が必要です)、右上部にある「Account Number」を確認してください(図1参照)。

 先ほどのec2-bundle-volコマンド実行後、次のようにアーキテクチャの種別を問われます。

Please specify a value for arch [i386]:

 デフォルトのインスタンスタイプである「m1.small」なら、そのまま[Enter]を押してください。「m1.large」など、64ビットプラットフォームのインスタンスを利用している場合は、「x86_64」と入力します。なお、インスタンスタイプについては前回の記事を参照ください。

 なおAMIの作成には、使用しているディスク量に比例し、数分~十数分程度の時間がかかります。気長に待ちましょう。

AMIをAmazon S3へアップロードする

 AMIの作成が完了したら、次はそのAMIを「Amazon S3」のストレージ上へアップロードします。これについても専用のコマンドが用意されているので、次の要領でコマンドを実行してください。

ec2# ec2-upload-bundle --bucket ${アップ先のバケット名} --manifest image.manifest.xml --access-key ${Access Key ID} --secret-key ${Secret Access Key}

 --bucketには保存先を示すバケット名を入力してください。例えば、「bucketname」というバケットを使っていて、その直下にある「ec2_images」ディレクトリ内に「fedora」という名前でAMIを保存したい場合は、上記例の${アップ先のバケット名}部分に「bucketname/ec2_images/fedora」と入力します。バケットについては第2回目の記事を参照ください。

 --access-keyおよび--secret-keyについては、同じく第2回記事の「アクセスキーの取得」で紹介した「Access Key ID」と「Secret Access Key」の値を入力してください。

AMIの登録/削除

 次に、先ほどアップロードしたAMIからインスタンスを起動できるよう、AMIを登録してIDを発行します。SSHでインスタンスへ接続している場合は一度ログアウトし、ローカルで次のコマンドを実行してください。

$ ec2-register ${アップ先のバケット名}/image.manifest.xml
IMAGE   ami-be799cd7

 上記の${アップ先のバケット名}は、先ほどAMIをアップロードした際に指定した値を入力してください。

 次のコマンドで、登録したAMIを確認できます。AMIからのインスタンス起動時に、ami-xxxxxxxx形式で表示されている「AMIのID」を使うので、メモしておきましょう。

$ ec2-describe-images -o self
IMAGE   ami-be799cd7    ${アップ先のバケット名}/image.manifest.xml xxxxxxxxxxxx    available       private         i386    machine aki-a71cf9ce    ari-a51cf9cc

 なお、登録したAMIを削除する場合は、次のコマンドを実行します。

$ ec2-deregister ${AMIのID}

作成したAMIからインスタンスを起動する

 作成したAMIからディスク内容をロードしてインスタンスを起動する場合は、下記の要領でコマンドを実行してください。

# ec2-run-instances ${AMIのID} -k fedora_test.id

 先ほどメモしたami-xxxxxxxx形式の「AMIのID」を指定して、インスタンスへログインする際に必要となるキーを指定します。

 インスタンス起動後、ログインしてディスク内容を確認してみましょう。AMIを作成をしたタイミングの状態に戻っているかと思います。

 このように、あらかじめOSイメージファイル(AMI)を作ってしまえば、その状態から何個でも同じ(セットアップを行った)内容のインスタンスを起動することができます。これはサーバ仮想化技術の醍醐味の1つです。

次のページ
インスタンスに固定IPアドレスを割り当てる(Elastic IP)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
流行りのクラウドサービスを操ってみよう!Amazon EC2/S3環境構築のすべて連載記事一覧

もっと読む

この記事の著者

並河 祐貴(ナミカワ ユウキ)

TIS株式会社 / 社内ベンチャーカンパニー「SonicGarden」所属。オブジェクト指向開発、開発環境・ツール整備に従事した後、近年はRuby on Railsを中心としたオープンソース系ミドルウエアの検証 / 導入や、X...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3378 2009/01/20 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング