LoginSignup
0
0

AWS Auto Scaling

Posted at

内容
・趣旨目標
・教材
・使用できるサービス
・目指す構成(基準)
・CloudFormation(ハンズオン開始)
・EC2の起動テンプレートから作成
・Auto Scalingグループを作成
・Auto Scalingのスケジュール設定
・Auto Scalingの動的スケーリング設定
・EC2へ負荷をかけ、スケールアウト
・負荷を停止し、スケールイン
・EC2インスタンスのヘルスチェックを検証
・リソースの削除

趣旨目標

実際に触れることで理解の深化!困った箇所や勉強になった箇所を中心に記録します。

教材

※私の場合、無料枠内でハンズオンできたので記事を参考にされてください!

使用できるサービス

AWS CloudFormation,VPC,ALB

目指す構成(基準)

image.png

CloudFormation(ハンズオン開始)

「新しいリソースを使用」を選択
image.png

コードはハンズオンサイトからダウンロード。
以下参考です。VPC,EC2,ALB,subnetを設定することで、165行になります。
このコードを作るのに苦戦しなければ多数のセットを作る場合、早くセットアップできそうですね!
image.png

ファイルをアップロードする。
image.png
image.png
image.png
あとはデフォルトで進みますが、次の図のように作成失敗した時の挙動を設定できるみたいですね。
image.png

あとは、スタック作成のオプションとしてタイムアウトを設定できますね。課金に影響するので、作成したばかりのコードを使用する際などは設定した方がよさそう。

はい、公式さんとUIが違いすぎて(-_-;)
図のように順次リソースが作成されていく。
image.png
完成(あっという間です。)
image.png

現状まだEC2は出来上がっていません。
image.png

EC2の起動テンプレートから作成

image.png
image.png
image.png
image.png
image.png
image.png

※下図赤枠、設定によっては料金がかかるのかな?無料枠がどこまでカバーされているのか正直理解に苦しみました(私だけかw)
ここを「有効化」すると、通常5分間隔でデータが更新されるところが1分間隔となります。
私は、「無効」で学習します。(;'∀')
「ハンズオンの範囲」では、無効でも5分間隔でデータ収集してくれて、アラームも表示してくれますので全く問題ないかと。

ちなみに、参考書で学習した際はCPUやメモリ、ネットワークの動作が思わしくない場合は、EC2やELBなどをチェックすることで、異常を発見できる場合があるとのこと。φ(..)メモメモ
image.png
次!!

ここでユーザーデータに、ストレスチェックツール、Apacheのインストール、SSHの設定などを行っていきます。ハンズオンサイトのコピー↓

#!/bin/bash
sudo yum update -y
sudo yum install -y httpd
sudo amazon-linux-extras install epel -y
sudo yum install stress -y
sudo systemctl start httpd
sudo echo `hostname` > /var/www/html/index.html
sudo echo "ClientAliveInterval 60" >> /etc/ssh/sshd_config
sudo echo "ClientAliveCountMax 120" >> /etc/ssh/sshd_config
sudo systemctl restart sshd.service

image.png
image.png

ひとまずできとる。次のAuto Scalingグループ作成の工程で反映させます。
image.png

Auto Scalingグループを作成

image.png
image.png
ここで作成したEC2の起動テンプレートを選択します。
image.png
CloudFormationで事前に入れたVPCと2つのAZを選択する。
image.png
image.png
image.png

ここにヘルスチェックがあります。
死活監視の発展バージョンですね!
異常が発生したらEC2を置き換えてくれるもの|д゚)
image.png

image.png

スケーリングは表記のとおりで行きます!
【こっちで進めます。】
image.png
【参考】
「ターゲット追跡スケーリングポリシー」を選択した場合、CPUの使用率などによってスケーリングできるみたいですねー
image.png
【参考2】
EC2置き換え時のポリシーを決めるオプションがあります。
image.png

Auto Scalingグループが完成しました。
image.png
EC2がカウントされました!
image.png

Auto Scalingのスケジュール設定

指定した時刻にスケーリングされるか確認していく。
image.png
image.png

9時間前の時間を設定。
例:今が午前0時であれば、前日の午後3時ですね!
image.png
image.png
予定どおりスケーリングできていますね!
image.png

Auto Scalingの動的スケーリング設定

ターゲット追跡スケーリング
要するに、設定した閾値でCPUが足りなければEC2を加えて、十分であれば元に戻すということ。

※私の場合、スケジュールでのスケーリング実施後に、時間の関係で一度リソースを全て削除して、動的スケーリングの学習を改めて開始しています。インスタンス数が1つの状態から以下スタートしています。
image.png
image.png
image.png

ターゲット追跡スケーリングを作成した時点で、「CloudWatchのアラーム」が作成されています。Σ(゚Д゚;エーッ!
image.png

Highがスケールアウトの起点になる指標です。
また、条件に記載がありますが、3分以内に3回しきい値を超えた場合スケーリングされるということです。
image.png
現状↓ べたなぎですねw赤線がしきい値になります。
image.png

EC2へ負荷をかけ、スケールアウト

ここからSSH接続であるコマンドを実行することで、サーバーに負荷をかけていきます。まず準備から開始します。(私の場合、現状のインスタンスはEC2が1つのみです。)
image.png

EC2に接続していきます。
image.png
image.png
次のコマンドはEC2に負荷をかけるコマンドですので、ご使用には注意されてください。

stress -c 1

image.png
上がってきたー(緑枠)
image.png
MAXだー
image.png
Auto Scalingのアクティビティを確認するとnew instanceができていますね!
image.png
インスタンスが新たにできています。
image.png

負荷を停止し、スケールイン

まず、ストレスを停めます。
「Ctrl+C」
image.png
すぐグリーンになりました。
image.png
参考として、次の画像はLowのしきい値を示しています。15分間CPU使用率49%未満を維持できればスケールインしてくれますね!
image.png
スケールインしました!
image.png
image.png

EC2インスタンスのヘルスチェックを検証

私の場合次の画像のとおり、最低1つのEC2インスタンスが必要という設定
なけなしの1つのEC2インスタンスを停止することで、デフォルト設定のヘルスチェックが働き、新たなEC2インスタンスが起動するはずです。
image.png

まず、なけなしのEC2インスタンス1つを停止させます。
image.png
image.png

見事に置き換えが実行され、新たなEC2インスタンスが自動作成されました。
image.png

Auto Scalingのアクティビティから動きを確認していきます。
停止させて。
image.png
作成!
image.png
期待した動きをしています(。-`ω-)

リソースの削除

ハンズオンが終了しましたので後片付けをして、次のハンズオンの準備っすね!
1 Auto Scaling Groupの削除(数分かかります。)
image.png
2 EC2起動テンプレートの削除
image.png
image.png
3 CloudFormationのスタックを削除
image.png
4 ここで動画は終了するのですが一口メモですw
実は、S3バケットを削除し忘れています。
ハンズオンのなかで、CloudFormationへjsonファイルをアップロードしたデータが格納されています。つまりデータ量は少ないですが、自動的にS3バケットを作成し、アップロードしたデータを管理してくれていたのです。

はい。空にしてから削除します(^^;
image.png
image.png

これで削除完了です!次の学習準備完了!

では!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0