0

、、HAを使用してアーキテクチャをセットアップしました。Autoscalingload balancercode deploy

base-image新しいインスタンスをautoscale起動するがあります。これbase-imageは時間の経過とともに古くなり、アップグレードする必要があるかもしれません。

base AMI私の混乱は、パッケージの望ましいバージョンをインストールするためにこれをプロビジョニングするにはどうすればよいですか? すでにin-serviceインスタンスをプロビジョニングするにはどうすればよいですか?

例 - 現在はbase AMI持っていますphp5.3が、将来必要になった場合、どのようにフリートをPHP5.5プロビジョニングできますか?in-serviceEC2 instancesbase AMI

Chef をプロビジョニング サーバーとして使用しています。では、上記の問題をどのように進める必要がありますか?

4

2 に答える 2

1

インスタンスが使用する AMI は、インスタンスの起動時に起動設定によって決定されます。したがって、インスタンスの AMI を変更する唯一の方法は、インスタンスを終了して再度起動することです。

自動スケーリングのシナリオでは、これは比較的簡単です。新しい AMI を使用するように自動スケーリング グループの起動設定を更新し、アップグレードするすべてのインスタンスを終了します。インスタンスを 1 つずつ終了することで、ローリング アップグレードを実行できます。

自動スケーリング グループが頻繁にスケールアップおよびスケールダウンし、自動スケーリング グループに複数のバージョンの AMI を使用しても問題ない場合は、起動構成を更新して待機するだけです。自動スケーリング プロセスが開始され、新しいインスタンスが起動されるたびに、新しい AMI が使用されます。自動スケーリング グループに適切な「終了ポリシー」 (「OldestInstance」など) がある場合、自動スケーリング プロセスがスケールダウンするたびに、古い AMI を実行しているインスタンスが終了します。たとえば、4 つのインスタンスが実行されているとします。新しい AMI を使用するように起動構成を更新します。4 回のスケールアップ アクションと 4 回のスケールダウン アクションの後、すべてのインスタンスが新しい AMI を実行しています。

于 2016-02-27T07:07:14.550 に答える
1

Autoscale には、起動時に実行されるユーザーデータを渡す機能を含む、起動構成と呼ばれる機能があります。プロセスを自動化できるように、ユーザーデータを Launch Configuration 内に保存できます。

私はChefを使ったことがなく、これを行うためのChef中心の方法があると確信していますが、ユーザーデータを使用するのが手っ取り早い方法です。

ユーザーデータ スクリプト (つまり BASH) には、必要な sudo apt-get remove / install コマンドが含まれます (Ubuntu OS を想定)。

これに関するドキュメントは次のとおりです。

http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_CreateLaunchConfiguration.html

UserData 起動した EC2 インスタンスで利用できるようにするユーザー データ。詳細については、Amazon Elastic Compute Cloud ユーザーガイドの「インスタンス メタデータ」と「ユーザー データ」を参照してください。

現時点では、起動構成は圧縮 (zip 形式) のユーザー データ ファイルをサポートしていません。

タイプ: 文字列

長さの制約: 最小長は 0。最大長は 21847。

パターン: [\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*

必須: いいえ

于 2016-02-11T14:25:59.560 に答える