EC2 Auto Scalingグループの作成

Amazon EC2 Auto Scaling は、Amazon EC2 のインスタンスを自動的に作成または終了してアプリケーションの負荷を処理する Amazon EC2 インスタンスの数を調整できる、完全マネージド型サービスです。Amazon EC2 Auto Scaling では、異常なインスタンスを検出して置き換えることにより、EC2 インスタンスのフリートを管理できます。また、お客様が定義する条件に応じて Amazon EC2 のキャパシティーのスケールアップ/スケールダウンを自動的に行って、アプリケーションの可用性を維持できます。Amazon EC2 Auto Scaling を使用することで、需要が急激に上昇したときには Amazon EC2 インスタンスの数を自動的に増やしてパフォーマンスを維持し、需要が落ち着いた状態にあるときにはインスタンスの数を減らしてコストを削減できます。

1. asg.jsonを編集し、先ほどCloudFormationから作成したTarget Groupのとサブネットの値を書き換えます。

sed -i.bak -e "s#%TargetGroupARN%#$tg_arn#g" -e "s#%publicSubnet1%#$publicSubnet1#g" -e "s#%publicSubnet2%#$publicSubnet2#g" asg.json

チャレンジしてみましょう

これからデプロイするEC2 Auto Scalingグループは、ミックスインスタンスグループ機能(オンデマンドインスタンスとスポットインスタンス、および複数インスタンスタイプの混在環境)をサポートするものです。asg.jsonファイルを確認し、次の質問に答えてみましょう。\

  • Q. それぞれ何台のオンデマンドインスタンス、スポットインスタンスが起動されるでしょうか。\
  • Q. Overridesのセクションに列挙されたインスタンスタイプ一覧から、実際にオンデマンドインスタンスとして起動されるのはどのインスタンスタイプでしょうか。またスポットインスタンスはどうでしょうか。

ヒント: EC2 Auto Scalingのユーザーガイドの複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループのセクション、また合わせて APIドキュメントの[InstancesDistribution] (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_InstancesDistribution.html)のセクションを読んでみてください。

考え方の一例(クリックで展開)

2. 次のコマンドを発行し、Auto Scalingグループを作成します。

aws autoscaling create-auto-scaling-group --cli-input-json file://asg.json

コマンドが成功したとき、特別な出力がないのが正常動作です。

3. Auto Scaling コンソールを開き、新たに作成されたAuto Scalingグループの詳細情報を確認します。次にEC2インスタンスコンソールに移り、起動されたインスタンスがオンデマンドかスポットかを確認します。この属性を表示するには、右上の歯車ボタンから表示属性ダイアログボックスを開き、「ライフサイクル」列を表示させるようにしてください。Normalがオンデマンドおよびリザーブドインスタンス、Spotがスポットインスタンスを示します。

チャレンジしてみましょう

Q. 各アベイラビリティゾーンに1台ずつスポットインスタンスを起動しました。このとき選択されたインスタンスタイプは、実際にそのアベイラビリティゾーンで最安値のものになっているでしょうか。
ヒント: [スポットインスタンスの価格履歴] (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html)を参照してみましょう。

考え方の一例(クリックで展開)