気づいたら会社の技術ブログにあまり登場していなかったのですが、#サバソニで紹介させて頂いた、社内AWS勉強会で調べたネタをこちらにも書いておこうと思います。Scalingを使ってる方もいると思います。トリガーを設定してインスタンスを増やしたり、負荷が落ち着くと台数を減らしたり出来ます。Scalingは少し前に新しいリリースがありました。Scalingでスケールインが実行される時に、Terminateするインスタンスを自分で設定する事が出来るようになりました。Scalingでスケールインする時にTerminateするインスタンスは、デフォルト設定でもきちんとしたルールに基いて選択されています。以下はデフォルトのルールと、どのようにカスタマイズが出来るかを調べたものです。こちらの元記事を自分なりにまとめたものです。※きちんとした翻訳ではないので、ご注意下さい。Scalingはスケーリングやインスタンスの障害時に、自動的にインスタンスの起動や停止をします。具体的にはAZのバランスや、正しい台数を維持するため、またはバッチ処理などで使われたりもします。Configrationを使用します。Scalingの基本シナリオを参照して下さい。Policyを使いますが、これはデフォルトのものを使うことも出来ますし、カスタマイズする事も可能です。ScalingはインスタンスをTerminateする際に、他のAZよりも多くインスタンスが起動していないかを識別します。Policyを使用します。PolicyはTerminateするインスタンスを選択する為に以下のステップを使用します。Configを使用して起動されたインスタンスを選択します。Configを特定します。Timeフィールドを使用しています。Configurationで複数のインスタンスが起動されていた場合は、次の課金タイミングに最も近いものをTerminateします。※EC2インスタンスが一時間単位で課金が発生する事もあり、このような処理が入ってるようです。ステップ3.複数のインスタンスが、次の課金タイミングに同じく近い場合はその中からランダムにTerminateするインスタンスを選択します。Policyを複数用意しています。Policyを作成して使う事も出来ますし、そうでない場合はデフォルトのPolicyが使われます。Policyを選択する事ができ、これらのオプションを一つ以上を選択する事が出来ます。Group内の最も古いインスタンスを削除する場合に使います。Scalingは最も古いインスタンスを特定するためにインスタンスの起動時間を使用しています。・NewestInstance最も新しいインスタンスを削除する場合はこれを使います。Scalingは最も新しいインスタンスを特定するためにインスタンスの起動時間を使用しています。Configurationを使用して起動されたインスタンスを削除する場合に使います。Configurationアクションを使用してインスタンスを特定します。Timeフィールドを使用します。次の課金タイミングに最も近いインスタンスを削除する場合はこれを使用します。次の課金タイミングが最も近いインスタンスを削除する事で、請求を最小限に抑えつつインスタンスの実行時間を最大化します。Policyを使用する場合はこれを使います。Policyを設定する場合はスタンドアロンで一つのポリシーを設定したり、順序付けて複数のポリシーを指定します。ポリシーにDefaultを使用する場合は、ポリシーリストの最後に設定して下さい。Policyは削除するインスタンスを特定するために、以下のステップを使用しています。Groupを更新する事も出来ます。Policyで実行されます。Policyを構成するプロセスを示していきます。Configurationを作成するところから始めます。groupを作成します。Groupを作成する最初のステップは省略する事が出来ます。Policyを設定するための概要を示しています。Policyを構成するための手順です。Scalingコマンドラインツールのページからダウンロードして下さい。Developerガイドのコマンドラインツールの使用を参照して下さい。Scaligコマンドを使用します。Configurationを作成します。Groupを作成します。Groupを表示します。Groupを更新します。Groupを削除します。その他一般的なコマンドの使い方はこちらを参照して下さい。Scalingクイックリファレンスカードを参照して下さい。Groupを設定している場合はステップ1-cに進んで下さい。Scalingにおける基本シナリオの手順を踏むことをオススメします。Scalingで必要とされる一般的なインフラストラクチャを使用しています。as-create-launchコマンドに指定する値として以下のものを使用します。Typem1.smallコマンドは次のようになります。Configurationを指定する事でAutoScalingGroupを作成出来ます。Groupを参照して下さい。as-create-auto-scaling-groupコマンドに指定する値として以下のものを使用します。PolicyOldestInstanceコマンドは次のようになります。"OldestInstance"実行結果は次のようになります。as-update-auto-scaling-groupコマンドに指定する値として以下のものを使用します。PolicyOldestInstanceコマンドは次のようになります。Groupと、起動したインスタンスを確認するにはas-describe-auto-scaling-groupsコマンドを使います。Groupと起動したインスタンスの詳細を表示します。Groupを参照して下さい。as-describe-auto-scaling-groupsコマンドに指定する値として以下のものを使用します。Capacityをご自身の値に置き換えて進めて下さい。コマンドは次のようになります。--headersオプションは列ヘッダを表示してdescribeコマンドの情報を整理するオプションです。実行した結果得られる情報は以下のようになります。Configuration(lc-test-termination-policy)を使用して2つのインスタンスを起動した事が確認出来ます。2つのインスタンスは正常な状態(Healty/InService)にあります。Policyが割り当てられています。Policy(OldestInstance)を使用したスケールインを実行させます。as-update-auto-scaling-groupコマンドに指定する値として以下のものを使用します。Capacity3コマンドは次のようになります。3実行結果は次のようになります。Capacityに従いスケールアウトさせたかを確認しますコマンドは次のようになります。--headers実行した結果得られる情報は以下のようになります。Groupは新しいインスタンスi-47b5af3cを開始しました。新しく起動したインスタンスのインスタンスIDをメモしておいて下さい。次のステップでスケーリングを確認するために使用します。Groupのスケールインを実行させます。as-update-auto-scaling-groupコマンドに指定する値として、以下のものを使用します。Capacity2コマンドは次のようになります。2実行結果は次のようになります。Groupでスケールインが実行された事を確認します。コマンドは次のようになります。--headers実行した結果得られる情報は以下のようになります。lc-test-termination-policyコマンドの実行結果ではインスタスi-bf9e84c4を削除している事が示されています。Groupが作成された時にi-bd9e84c6とともに起動されました。Policyで指定されたOldestInstanceに従いましたが、基準を満たすインスタンスが複数存在しました。他にポリシーが存在しませんでしたので、デフォルトのポリシーで削除を行いました。Configを使用して起動され、次の課金タイミングの近さも同じでした。Scalingは削除するインスタンスをランダムに選択してi-bf9e84c4を選択しました。Policyを変更して新しいポリシーで指定したインスタンスを削除する。Group内のインスタンスを削除する事が出来ます。Policyを変更するためにas-update-auto-scaling-policyコマンドを使います。PolicyNewestInstanceコマンドは次のようになります。"NewestInstance"実行結果は次のようになります。Capacityで設定した値に縮小する事を確認します。Groupにおいてスケールインが実行された事を確認します。コマンドは次のようになります。--headers実行した結果得られる情報は以下のようになります。lc-test-termination-policyコマンドの実行結果は新しいインスタンスi-47b5af3cが削除された事を示しています。Groupを更新した時に起動されたもので、最も新しいインスタンスとなります。Groupがすでに稼働しており、それをそのまま使う場合はこのステップを省略して下さい。Groupのパラメータを設定したい値にカスタマイズして下さい。Policyのテストが完了したら、忘れずに削除して下さい。as-delete-auto-scaling-groupコマンドを--force-deleteオプションを使用して削除します。Groupと共に属している起動状態のインスタンスも削除する事が出来ます。Groupを削除出来ません。as-delete-auto-scaling-groupコマンドに指定する値として以下のものを使用します。parameter)--force-deleteコマンドは次のようになります。Groupを削除する確認を行います。Groupは次のように削除されます。Policyのテストを完了する事が出来ました。Policyのデフォルト動作として課金が意識された動きが含まれている事です。クラウドの特徴としてスケーラブルである事と、従量課金があると思います。2009-引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。