出版

Nick Hardiman が、Amazon マシンイメージのスナップショットを取得し、そこから新しい VM を起動してサービスの冗長性を組み込む手順を紹介します。
工場出荷時のAWSマイクロインスタンスにDrupal CMSをロードしました。現在、EC2マシンでカスタマーサービスが稼働していますが、エンタープライズ対応ではなく、耐障害性も備えていません。元のEC2マシンをコピーして、同一サーバーのペアを用意しました。次に、これらのサーバーとカスタマーサーバーの間にロードバランサーを設置します。
このプロセスは、元のイメージを取得し、それをオフにし、EBSボリュームのスナップショットを作成し、そのスナップショットを使用して新しいAMIを作成し、そのAMIから新しいVMを起動します。AWS ITではなく従来のITに慣れている方には、これらの頭字語は分からないでしょう。これらはAmazonの新しい専門用語の一部です。
AWSの専門用語
この記事には Amazon 特有の頭字語や流行語がかなり含まれているので、念のためにミニ用語集を用意しました。
- AMI(Amazon Machine Image):インスタンスの起動に必要なオペレーティングシステムやその他のコンポーネントが含まれたEBSボリューム。私の新しいAMIにはオプション機能が一切ないため、ファイルシステム、カーネル、アプリケーションなど、起動に必要なすべての機能を備えた物理コンピュータのディスクボリュームと全く同じです(厳密に言うと全く同じではありませんが、ほとんどの人は違いに気付かないと思います)。
- EBS(Elastic Block Storage):Amazonのクラウドストレージインフラストラクチャサービスの一つ。新しいAMIはここに保存されます。EBSボリュームはハードディスクドライブのボリュームに似ています。複数のEBSボリュームをレンタルし、そこにファイルを追加してインスタンスにマウントすることができます。
- EC2 (Elastic Compute Cloud): 顧客向けの Amazon クラウド コンピューティング サービスの総称。
- インスタンス:完全に稼働している仮想マシン。AMIを起動するたびに、仮想ハードウェアを選択できます。ネットトップ並みのパワーを持つマイクロコンピュータかもしれませんし、高額な価格、多数のプロセッサコア、そして膨大なメモリを備えた、ハイメモリ・クアドラプル・エクストラ・ラージの演算処理モンスターかもしれません。私はインスタンスをVMまたはEC2マシンと呼ぶことが多いです。
- ルートデバイス: 新しいインスタンスを起動するために使用される EBS ボリューム。
- スナップショット:EBSボリュームのコピー(つまり、仮想ハードディスクドライブのイメージ)。AWSは、バックグラウンドでいくつかの調整を行いながら、スナップショットからAMIを作成します。VMwareのスナップショットに慣れている方であれば、EC2のスナップショットは異なることに気付くでしょう。
元の EC2 マシンを調べます。
メンテナンスの影響が両方のマシンに同時に及ばないように、新しいEC2マシンは元のVMと同じエリアに配置しないでください。また、不要なブロックを回避するために、新しいインスタンスは元のVMと同じセキュリティグループに設定する必要があります。
- AWS コンソールを開きます。
- 可用性ゾーンを見つけてメモします。
- セキュリティ グループに注意してください。
スナップショットを撮って新しいAMIを作成する
- 元のVMのエントリを見つけます。Amazon EC2タブをクリックし、ドロップダウンリストでリージョンを設定して、左側のナビゲーションバーにあるインスタンスリンクをクリックします。
- インスタンス名を右クリック(Mac OSXのパステルカラーの環境ではCtrlキーを押しながらクリック)します。インスタンス管理のコンテキストメニューが表示されます。
- 「イメージの作成(EBS AMI)」を選択します。「イメージの作成」ウィンドウが開きます。(下の図Aを参照)
- 名前と説明を入力してください。これはAmazonではなく、お客様ご自身で使用してください。
- 「このイメージを作成」ボタンをクリックします。確認メッセージが表示されます。バックグラウンドで、元のEC2マシンの電源がオフになり、EBSボリュームがスナップショットにコピーされ、EC2マシンの電源が再びオンになります。
- ウィンドウを閉じます。画像リストは残念ながら変更されておらず、元の画像のみがリストされています。
- 更新ボタンを押してください。ステータスチェックには、インスタンス到達可能性チェックに失敗したため、元のEC2マシンに関する警告が表示されます。
- 数分待ってからもう一度試すと、元の EC2 マシンは正常な状態に戻ります。
- 元のボリューム、新しいスナップショット、新しいAMIを表示します。左側のナビゲーションバーにある「ボリューム」、「スナップショット」、「AMI」のリンクをクリックします。
図A
AWS はほぼすべてのものに一意の識別子を割り当てます。新しい AMI にはami-12345678のような識別子が付けられ、スナップショットにはsnap-12345678が割り当てられます。
新しいインスタンスを起動する
AWSハイパーバイザーはAMIテンプレートのコピーを取得し、秘密のソースを追加して実行可能なVMに変換します。秘密のソースには、ホスト名、MACアドレス、IPアドレス、課金項目、ファイアウォールルールが含まれます。
- 新しい AMI を見つけます。AMI のリンクは左側のナビゲーション バーにあります。
- チェックボックスにチェックを入れます。AMIの説明が下部のペインに表示されます。
- 「起動」ボタンをクリックします。インスタンスリクエストウィザードが開きます。
- ウィザードに従ってください。
- 最初に「インスタンスの詳細」ボックスが表示されます。アベイラビリティゾーンを元のインスタンスとは別の場所に変更します。ウィンドウ下部の「続行」ボタンをクリックします。「second web server」や「cms02」などの名前を入力します。
- 「キーペアの作成」ボックスで既存のキーペアを選択しました。同じ認証情報で両方のボックスにSSH接続できます。
- 「ファイアウォールの構成」ボックスで同じセキュリティ グループを選択しました。
- 「レビュー」ボックスの「起動」ボタンを押しました。
- もっと練習したい場合は、インスタンスを終了して再起動しても問題ありません。新しいAMIイメージを使って別のインスタンスを起動してください。繰り返し練習することで学習効果が得られます。
図B
私のインスタンス(クリックして拡大)
これまで無料インスタンスを 1 つだけ実行していた場合、2 つ目のインスタンスのレンタル料が請求されるようになります。
図C
法案(クリックして拡大)
掃除
すぐにEC2マシンのペアの負荷分散を行わないのであれば、作業を保留しておく意味はありません。この状態に戻るのは簡単です。
- 2 番目の VM を終了します。
- AMI の登録を解除します。
- スナップショットを削除します。
- AWS コンソールを閉じます。

ニック・ハーディマン
ニック・ハーディマンは、ウェブなどのインターネットサービスに必要なインフラストラクチャの構築と保守を担当しています。ニックはインターネットの下位層、つまりマシン、ネットワーク、オペレーティングシステム、アプリケーションを担当しています。ニックの仕事はそこで終わり、顧客が利用する最上位層を構築する設計者と開発者に引き継ぎます。