2017-11-13 10 views
0

Amazon Web Services \ EC2では、私はスポットインスタンス要求を実行して手動で終了しました。今、同じインスタンスをもう一度実行したいと思います。新しいインスタンスを作成するプロセス(つまり、AMI、インスタントタイプ、設定、セキュリティグループなどを選択するプロセス)を経る必要はありません。ノンストップのインスタンスを使用する場合は、手動でインスタンスを終了または開始することができます(また、保存されたデータは終端間で保持されるため)。しかし、スポット・インスタンスでは、EC2管理コンソールのスポットリクエスト・ページにリクエストがクローズされていて、同じリクエストを再送する方法がわからないため、これをどのように行うことができないのか分かりません再び。終了後、データの永続性を持つAWS EC2スポットインスタンス要求を手動で再送信

は私が永続的にするスポット要求を選択することができることを知っているが、それが終了したとき、私は、要求が送信されたとき以上の手動制御を持ち続けるしたいのに対し、私は、これは自動的が要求を再送信することを理解して。要約する

、私は、次のワークフローを持つことができるようにしたいと思います:

  1. は、スポットインスタンスリクエストを作成します。
  2. スポットインスタンスを実行します(現物価格が入札価格よりも小さい場合)。
  3. インスタンスに保存されているデータがあります。
  4. インスタンスを終了します(手動または入札価格のしきい値のため)。
  5. 手作業で、私が選択した時間に同じインスタンスを実行するように要求を再送信します。そのようにすると、開いたときに以前のデータが表示されるようになります。
  6. 戻り

2には、どのようにこれを行うことができますか?

+0

はい、できます。他の答えが示唆する制限はありません。オンデマンド艦隊のようにスポット艦隊を自動スケールすることができます。 s3の永続データストレージは、インスタンスの状態を管理するために実装するのが簡単です。私はJenkinsとBastionのホスト艦隊のために常にこれを行います。ここでは、自動起動でインスタンスの起動時に一貫した状態が必要です。それが問題なのかどうかは関係ありません。私はちょっと答えを投稿します。 –

答えて

1

短い答えは強調されていますはいです。 絶対にです。

あなたが記述したインスタンス "ワークフロー"は、実際にはインスタンスのライフサイクルです。そのライフサイクルは、コンピューティングのスポットインスタンスに頼っている場合でも、クラウド内の適切に動作するアプリケーションサーバーの通常のライフサイクルです。 すべてインスタンスライフサイクルの側面:起動、プロビジョニング、スケーリング、および終了。このCloudFormation template for a Jenkins server with automatic backup and recoveryの修正版を使用して

、私はあなたが記述を正確に何を自動スケーリング艦隊の数を持っている(NBは、私は、オンデマンドインスタンスを使用しています。しかし、同じ戦略は、スポットインスタンスに対して適用されます。私は艦隊を言うNB2ここでは、以下のが、この1つのインスタンスの艦隊ができるだけで)

は簡単な概要(または長い答え)です:

  1. 利用CloudFormation)(オプションですが、推奨される自動スケーリングを起動/定義します1つ(またはそれ以上)の艦隊を立ち上げるための設定を行います。スポットインスタンスは自動スケーリングで直接サポートされています。Launching Spot Instances in Your Auto Scaling Group

  2. 必要なコンピューティングパワーのために、インスタンスに対して支払う時間とコストを制御するために、自動スケーリングポリシーとスポットバジェットのパラメータ/期間を使用します。 Jenkinsにとって、私は自分のVPC内のどのAZでも1つの正常なインスタンスを持つように自動拡張します。自動スケーリングポリシーは非常に柔軟です。手動終了の場合は、ASG Launchプロセスを一時停止してください。 Suspending and Resuming Auto Scaling Processes

  3. UserData scriptingを使用してソフトウェアを構成し、バックアップおよび復元スクリプトをインストールし、インスタンスを構成し、最後のバックアップからインスタンスデータをロードします。専用S3バケットを使用してインスタンスデータをバックアップします。私の場合は、Jenkinsワークスペースと構成データ全体をzip形式のtarファイルにアーカイブします。データセットに必要なだけ頻繁にバックアップすることをお勧めします。

  4. 新しいインスタンスの自動再起動では、インスタンスはS3データバックバケットをチェックし、最新のものを復元するように設定されています。最後のバックアップからのすべてのデータを使用してすぐにサービスを開始します。手順3で説明したように、手動バックアップと復元スクリプトがあるため、インスタンスにログインして必要に応じてこれらの操作を実行できます。

これらの手法を使用すると、バックアップと自動リカバリを統合したオンデマンドインスタンスまたはスポットインスタンスを構築できます。

+0

これはおそらく正解であると私は認めますが、私はまだステップ3を理解していないので、これを確認することはできません。具体的には、新しいインスタンスにデータをロードする方法を知っています(オンデマンドインスタンスを使用した場合、インスタンスを終了して再度起動した場合、スクリプトを書く必要もなく、他のAWSサービスを使用する必要もありません)。私はS3について何も知らない。うまくいけば、これらのことを理解してから、私はあなたの答えを確認し、それを正解とすることができます。 – Lior

+0

EC2管理コンソールからインスタンスの再起動を実行するにはどうすればよいですか?私が理解しているところでは、自動スケーリンググループページに移動し、「中断したプロセス」から「起動」プロセスを削除する必要があります。これによりインスタンスが起動します(そして、手動で終了する前に起動する)。これは正しいです?より簡単で直接的な方法はありますか? – Lior

+0

バックアップスクリプト(/ usr/local/bin/jenkins-backup、行205)のリストアスクリプト(/ usr/local/bin/jenkins-restore、行159)のように、私が回答に付けたCFNテンプレートを確認してください。これらのスクリプトは、データフォルダをS3にコピーし、コマンドを実行して戻る。 あなたの艦隊の起動、はい無効にする新しいインスタンスが起動しないように起動プロセスを停止する「起動」CLIを使用する方が常に簡単です。次に例を示します: 'aws autoscaling suspend-processes --auto-scaling-group-name my-auto-scaling-group --scaling-processes Launch' –

2

すぐに答えが終わると、スポットインスタンスを再起動することはできません。終了とは、インスタンス、データなどが破棄されたことを意味します。あなたの説明では、オンデマンドインスタンスについて説明しています(価格を除く)。

+0

このような理由があるかどうか知っていますか?スポットインスタンスが通常のインスタンスと同じように機能しないのはなぜですか?違いは、リクエストがメイドで、価格条件が満たされた場合にのみ実行される点です。 – Lior

+1

おそらく永続的なデータを保持するためのコストがあるからです。スポットのインスタンスは、通常の顧客がそれを吸収するまで、Amazonが新しい容量のコストを相殺するのを助けるために(ほとんどの場合)使用されることを忘れないでください。これが安い価格の理由です。 Amazonがあまりにも多くの機能を持つスポットインスタンスを作成した場合、オンデマンドインスタンスは必要ありません。 –

+0

私は非常に良いロドリゴの答えに親指を与えるつもりです。しかし、私は尋ねられた質問に私の答えを制限し、別の質問に質問を再構築しないようにしました。これが私が "短い答えは..."と答えた理由です。 –

関連する問題