EBSボリュームを新しいスポットインスタンスに自動接続しますか?


14

私はEC2スポットインスタンスを実験していますが、終了間でデータを保持する必要があります。今理解したように、現在の価格が上限を超えたとき。入札すると、自動的に終了します。私が持っている初期化スクリプトはすべてシャットダウン時に実行されるので、アンマウントする前にデータをEBSにプッシュできると想定しています。

私の質問は、最初にルートボリュームにロードしたinitスクリプトがないため、価格が下がったら新しいEBSインスタンスに同じEBSボリュームを自動的にマウントするにはどうすればよいですか?

カスタムAMIを作成する必要がありますか、またはこれを達成する他の方法はありますか?

回答:


11

インスタンスを実行するたびに固定の開始点で開始するだけの場合、次のようにできます。

  1. 独自のAMIを作成し、毎回インスタンスとして実行するか、または

  2. 新しいインスタンスが標準のベースAMIから起動されるたびに、ソフトウェアをインストールして仕様に合わせて構成するユーザーデータスクリプトを指定します。

インスタンスの実行間で状態を保持する必要がある場合は、インスタンス/ AMIの外部のどこかにデータを保存する必要があります。例えば:

  1. データは、S3、SimpleDB、DynamoDB、RDSなどで最新の状態に保つことができます。

  2. インスタンスが起動時に動的にアタッチしてマウントする永続的なEBSボリュームを指定できます。これは、ユーザーデータスクリプトを使用して実行できます。


インストールするユーザーデータスクリプトを指定するのは興味深いですね。スポットリクエストが新しいインスタンスを自動的に開始する場合、これをどのように行うことができますか?私はすでにデータを保存する恒久的なEBSボリュームを持っています。おそらくそれを使い続けるでしょう
ジェフ

1
スポットリクエストを作成するとき、新しい各スポットインスタンスに渡されるユーザーデータを指定します。
エリックハモンド

ああ、cloud-initを#に入れても気付かなかった!最初にユーザーデータでスクリプトを実行しました。ありがとう
ジェフ

3
@ジェフ:ええ、私はそれを発明し、人気のAMIがそれを採用しました:-) alestic.com/2009/06/ec2-user-data-scripts
Eric Hammond

このラインに沿って、開始時にスポットインスタンスに特定のEBSボリュームをルートディスクとしてマウントさせることは可能ですか?
デレクモリソン

5

GitHubのec2-spotterプロジェクトを調べてください。説明した問題を解決するために作成されました。

@mcenzmの回答で説明されている問題(#1から#4)は現実のものであり、ec2-spotterで正しく処理されます。


これをダウンボットしたダンノは、それをコーディングしようとして時間を浪費するのをやめることができることを意味します!大好きです。
ジェレミー

3

私はこれをしばらく試してみましたが、EC2スポットインスタンスと接続ストレージにはまだ多くの問題があります。

  1. 接続するボリュームは、インスタンスと同じゾーンにない可能性がありますか?起動時にゾーンを指定することはできません。
  2. initスクリプトで内部的にアタッチすることはできますが、少し非同期なので、テストするかsleep 10言う必要があります。
  3. AWSコンソールがプライマリブロックデバイスとして「パーティション」を表示する理由を理解できません。別のパーティションの海賊版Windowsイメージを拒否することはできますか?(sdaの代わりにsda1)。パーティションテーブルを見つけてください。

    ここに画像の説明を入力してください

  4. 現在、外部制御ポイントからCLIを使用して接続することは難しく、バージョン管理にスナップショットを使用することは困難です。

  5. そのため、一般的に... tar.bz2を別のボックスにバックアップし、起動時に「作業領域」にデータを入力できます。これは、少量のデータに対してのみ有用です。そのため、両方のボリュームで新しいamiをベースライン化するのは良い考えです。とにかくスポットインスタンスは「ワークユニット」または「再起動可能な」作業に非常に適しているため、サーバーから作業を取得するという概念は十分に確立されています。起動のために極端に9分間待機している場合、(可能な限り小さい)ディスクをフォーマットしてもかまいません。

    1. EBSはまだかなり不安定で、「最適化」のために追加料金を支払う必要があります。インスタンスが「価格設定済み」の場合、完了した作業を90年代ほどでアップロードしようとするよりも高速です。

    2. これは、すべての「弾性ファイル」オファリングで変更されると思われます。


1
1. AZゾーンに関連付けられているサブネットを指定します。2. / dev / xvdxが表示されるまで待つのは簡単です。3.これはどのように関連していますか?
モーガンクリスチャンソン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.