AWS EC2 Auto Scaling オートスケーリングの設定

AWS WordPress構築 Auto Scaling 設定

今回はAWSのAuto Scalingの設定をご紹介。

 

Auto Scalingは簡単にいうとサーバに負荷がかかると、Auto Scaling group上にサーバ負荷に合わせて増減させて負荷分散が簡単に行えてしまうAWSのサービスです。

 

AWS WordPress構築 Auto Scaling 設定

 

AWS WordPress構築 Auto Scaling グループの設定

 

AWS WordPress構築 起動設定の作成AutoScalingの元となるAMIを選択します。予め作っておきます。

 

AWS WordPress構築 EC2インスタンスの選択

今回はt2.smallを選択。

 

AWS 起動設定の作成

適宜名前を設定して、【確認画面にスキップ】をクリックします。

 

 

AWS AutoScaling起動設定の作成

【セキュリティグループの編集】をクリックします。

 

AWS AutoScaling セキュリティグループの設定

予め作っていたがばがばセキュリティグループを選択。

 

AWS AutoScaling セキュリティグループの設定

確認をクリックします。

 

AWS AutoScaling セキュリティグループの設定

【起動設定の作成】をクリックします。

 

 

AWS AutoScaling セキュリティグループの設定

【この起動設定を使用してAuto Scalingグループを作成する】をクリックします。

 

AWS AutoScaling グループの作成

各環境に合わせて下さいね。今回の環境ではロードバランシングかつ、ALBを導入しているので、ターゲットグループを選択するのを忘れずに。【スケーリングポリシーの設定】をクリックしましょう。

 

※ヘルスチェックのタイプは環境に合わせて設定をしましょう。ELBをきちんと設定していれば、ヘルスチェックはELBを選択すると良いですね。

 

AWS AutoScaling AutoScalingグループの作成

1~3インスタンスを指定しました。

【新しいアラームの追加】をクリックします。

 

AWS AutoScaling アラームの追加

CPU使用率が30%の状態が5分続いたらEC2が増えるように設定して、【アラームの作成】をクリックします。

 

 

AWS AutoScaling スケーリングポリシー

アクション実効の部分で1を入力します。

今度はグループサイズの減少させる設定を行います。

 

AWS AutoScaling スケーリングポリシー

CPU使用率が10%を下回った状態が5分続けばEC2インスタンスを減少させる設定を行います。

 

AWS AutoScaling スケーリングポリシー

内容を確認して【確認】をクリックします。

 

AWS AutoScaling タグの編集

タグの編集をクリックします。オートスケーリングで生成されたインスタンスが名無しにならないようにします。

 

AWS AutoScaling タグの編集

キーをNameとして、値を適宜わかるように入力し、【確認】をクリックします。

 

AWS AutoScaling オートスケーリング 設定

【Auto Scalingグループの作成】をクリックします。

 

AWS AutoScaling オートスケーリング 設定

お疲れ様です。

 

AWS AutoScaling オートスケーリング 設定

EC2のインスタンスの表示を見ると、オートスケーリンググループのインスタンスが作成されたのが確認できます。

 

AWS AutoScaling ELB 確認

オートスケーリンググループのインスタンスがELBロードバランサー追加されていることも確認が出来ました。

 

負荷をかけてみましょう。

AWS AutoScaling 負荷テスト

CPU使用率が100%近くまで上昇させると、設定どおりにAutoScalingが行われ、【yuulinux_tokyo_AS_Group】のインスタンスが自動作成されました。この後3つまで増えました。

 

負荷をなくします。

AWS AutoScaling オートスケーリング 負荷テスト

EC2インスタンスが減少します。

 

 

AWS AutoScaling オートスケーリング 設定

希望の項目にて設定することで、Auto Scalingグループインスタンスの希望通りに減らせます。

 

AWS AutoScaling オートスケーリング 初期設定

余分なインスタンスが一気にお掃除されます。

 

AWS AutoScaling オートスケーリング 初期設定

狙った通りの設定になりました。

 

AutoScalingあるある

  1. インスタンスが落ちた時にアクセスしていたユーザのセッションがなくなりデータ消失。
  2. 過去に生成したAMIによりAuto Scalingインスタンスは生成される為、オートスケールで生成されたインスタンスと既に動いているEC2インスタンスとでプログラムの差異が生まれ不整合が起こる。最新になるようにAMIを頻繁に更新して生成していれば問題ないが非常に手間である。AutoScalingで生成された時に、最新のプログラムに更新させる仕組みが必要不可欠。
  3. AutoScalingによって生成されたEC2インスタンスが削減される時に、EBSも消失することを忘れてデータ消失。

今回の設定のままですと、上記の問題があります。次回はAutoScalingあるあるの1を解決する為にEC2インスタンスで共有するセッションサーバを作成する予定です。

 

また、生成した瞬間に1時間単位のEC2料金が加算されるので、ループして増減を繰り返すことにならないように工夫したり、素早くシステム異常に気付くなど環境に合わせた仕組みを実装して下さいね。

 

AWSの構築承ります。お気軽にご相談下さい。

優 ( エンジニア )

この記事を書いた人:優 ( エンジニア )

システムガーディアン爆弾処理班。アクセス負荷対策やNginxへの移行案件が多いこの頃。IBM SoftLayerやAWSなどクラウド案件も多くなってきました。


この記事に関してのお問い合わせ
御連絡・ご返信は原則2営業日以内を予定しております。
お急ぎの場合は、お手数ですが下記電話でもご対応をしております。

システムガーディアン株式会社
受付時間:平日9:00~18:00
受付担当:坪郷(つぼごう)・加藤
電話:03-6758-9166