SAA学習-信頼性設計-Auto-Scalingの設定
今回のテーマ:Auto-Scalingの設定
実装構成
実施する手順
ここは今回省略します。
- サブネット作成/自動パブリックIPの有効化
- ElasticIPの払い出し/NATGWの作成
- ルートテーブルの更新(サブネットの関連付けおよびNATGWの更新)
- ELBの作成
- EC2の起動テンプレート作成(ヘルスチェックするためのOSSなどをきちんと導入しておかないとドはまります)
今回の実施する概要
- 起動設定の作成
- Auto-Scalingグループの作成
実際の手順(起動設定の作成)
- マネージメントコンソール-EC2-Auto Scaling-起動設定の順に選択し、起動設定の作成クリック
- 起動設定名は任意で記載し、AMIの指定が作成しているAMIを指定し、インスタンスタイプは無料枠のものを指定します。
- 追加設定は特にしてせず、ストレージサイズも変更しなくてよいです。
- SG(セキュリティグループ)とキーペアを指定し、起動設定の作成をクリック(キーペアの承諾チェックは入れてください)
大枠はEC2インスタンスを起動する際の設定を1つの画面でできるという点になります。
実際の手順(Auto-Scalingグループの作成)
*マネージメントコンソール-EC2-Auto Scaling-Auto Scalingグループの順に選択し、Auto Scalingグループの作成をクリック
- 名称は任意で記載し、先程作成した起動設定を指定後、次へをクリック
- インスタンスの購入タイプは起動テンプレートに準拠を選択し、ネットワークはAZ間で分散するようにサブネットを2つ設定し、次へをクリック
- グループキャパシティで、希望する台数と最小、最大台数を指定します。また、スケールイン(台数増加のポリシー)を指定し、次へをクリック
※グループキャパシティは希望する台数は最小と最大の間の台数で設定
※スケールインは増加、スケールアウトは減少となります。
- AutoScalingで作成/削除されたインスタンスがあったらメール通知を行うか設定しますが、割愛するため、次へをクリック(実務では必要になる場合がほとんどです)
- タグは任意で記載し、次へをクリック
- 設定確認になったら内容を確認し、Auto Scalingグループを作成をクリック
- Auto-Scalingグループを作成後インスタンスが希望台数稼働します。
- ELB経由でアクセスできることを確認します。
実際の手順(Auto-Scalingグループのスケールイン/アウト動作確認)
試験用にインスタンスを立ち上げた状態より確認します。
- アタッチするAuto Scalingグループを指定し、アタッチをクリック
- しばらく時間を経過するのを待ってから作成したAutoScalingポリシーより、希望する台数まで減少することを確認します。(この場合は起動した後の方が残るため、登録した方が削除されます)
負荷テストによるAuto 負荷試験による動作確認
- 負荷ツールをダウンロードします
コマンド
wget https://rpmfind.net/linux/dag/redhat/el7/en/x86_64/dag/RPMS/stress-1.0.2-1.el7.rf.x86_64.rpm
結果
wget https://rpmfind.net/linux/dag/redhat/el7/en/x86_64/dag/RPMS/stress-1.0.2-1.el7.rf.x86_64.rpm --2021-06-06 13:21:15-- https://rpmfind.net/linux/dag/redhat/el7/en/x86_64/dag/RPMS/stress-1.0.2-1.el7.rf.x86_64.rpm Resolving rpmfind.net (rpmfind.net)... 195.220.108.108 Connecting to rpmfind.net (rpmfind.net)|195.220.108.108|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 36804 (36K) [application/x-rpm] Saving to: ‘stress-1.0.2-1.el7.rf.x86_64.rpm’ 100%[======================================>] 36,804 147KB/s in 0.2s 2021-06-06 13:21:16 (147 KB/s) - ‘stress-1.0.2-1.el7.rf.x86_64.rpm’ saved [36804/36804]
- 負荷ツールをインストールします
コマンド
rpm -ivh stress-1.0.2-1.el7.rf.x86_64.rpm
結果
warning: stress-1.0.2-1.el7.rf.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY Preparing... ################################# [100%] Updating / installing... 1:stress-1.0.2-1.el7.rf ################################# [100%]
- 負荷ツールがインストールされたか確認します
コマンド
rpm -qa|grep stress
結果
stress-1.0.2-1.el7.rf.x86_64
- 負荷ツールのバージョンを確認します
コマンド
stress --version
結果
stress 1.0.2
- マネイジメントコンソールで負荷をかける前の状態を確認します。(希望台数1台、最大3台)
- サーバーで負荷ツールを実行します
コマンド
stress -c 1 -q &
結果
[1] 29723
- 負荷ツールを実行した後の状態を確認します
コマンド
top
結果
※ctrl+cでtopの実行状態を終了できます
- AutoScalingポリシーで新規インスタンスが起動するか確認します(モニタリングの間隔があるためそれに合わせて起動する動作となります)
- インスタンスでも同様に確認できます
- 確認が取れたら負荷をかけているサーバーで負荷ツールのプロセスを確認します
コマンド
ps -ef | grep stress | grep -v grep
結果
root 29723 29646 0 13:28 pts/0 00:00:00 stress -c 1 -q root 29724 29723 99 13:28 pts/0 00:11:37 stress -c 1 -q
- 負荷ツールのプロセスを強制終了します(エラーなくコマンドが終わります)
コマンド
kill -9 29723
- 負荷ツールのいプロセスが稼働してないことを確認します(何もプロセスが動作してない状態になります)
コマンド
ps -ef | grep stress | grep -v grep
- 再度スケールアウトされているか確認します
今回のテーマは以上です。
補足:動作確認など終わったらAuto Scalingポリシーで自動起動させないようにするため、グループキャパシティの値をすべて0台しておくとよいです
- マネージメントコンソール-AUTO SCALING-Auto Scaling Group-作成したAutoScalingグループ-詳細タブの順に選択し、グループの詳細から編集をクリック
- 希望する容量と最小キャパシティおよび最大キャパシティを0にして、更新をクリック
今回のテーマは以上です。