おっさん社内SEエンジニアの勉強ブログ

勉強記録のブログとなります。

SAA学習-信頼性設計-Auto-Scalingの設定

今回のテーマ:Auto-Scalingの設定

実装構成

f:id:In-houseSE:20210606100513p:plain

実施する手順

ここは今回省略します。

  • サブネット作成/自動パブリックIPの有効化
  • ElasticIPの払い出し/NATGWの作成
  • ルートテーブルの更新(サブネットの関連付けおよびNATGWの更新)
  • ELBの作成
  • EC2の起動テンプレート作成(ヘルスチェックするためのOSSなどをきちんと導入しておかないとドはまります)

今回の実施する概要

  • 起動設定の作成
  • Auto-Scalingグループの作成

実際の手順(起動設定の作成)

  • マネージメントコンソール-EC2-Auto Scaling-起動設定の順に選択し、起動設定の作成クリック

f:id:In-houseSE:20210606102857p:plain

  • 起動設定名は任意で記載し、AMIの指定が作成しているAMIを指定し、インスタンスタイプは無料枠のものを指定します。

f:id:In-houseSE:20210606103157p:plain

  • 追加設定は特にしてせず、ストレージサイズも変更しなくてよいです。

f:id:In-houseSE:20210606103352p:plain

  • SG(セキュリティグループ)とキーペアを指定し、起動設定の作成をクリック(キーペアの承諾チェックは入れてください)

f:id:In-houseSE:20210606103625p:plain

大枠はEC2インスタンスを起動する際の設定を1つの画面でできるという点になります。

実際の手順(Auto-Scalingグループの作成)

*マネージメントコンソール-EC2-Auto Scaling-Auto Scalingグループの順に選択し、Auto Scalingグループの作成をクリック

f:id:In-houseSE:20210606101752p:plain

  • 名称は任意で記載し、先程作成した起動設定を指定後、次へをクリック

f:id:In-houseSE:20210606104000p:plain

  • インスタンスの購入タイプは起動テンプレートに準拠を選択し、ネットワークはAZ間で分散するようにサブネットを2つ設定し、次へをクリック

f:id:In-houseSE:20210606104514p:plain

f:id:In-houseSE:20210606104640p:plain

  • グループキャパシティで、希望する台数と最小、最大台数を指定します。また、スケールイン(台数増加のポリシー)を指定し、次へをクリック

f:id:In-houseSE:20210606105537p:plain

※グループキャパシティは希望する台数は最小と最大の間の台数で設定
※スケールインは増加、スケールアウトは減少となります。

  • AutoScalingで作成/削除されたインスタンスがあったらメール通知を行うか設定しますが、割愛するため、次へをクリック(実務では必要になる場合がほとんどです)

f:id:In-houseSE:20210606105744p:plain

  • タグは任意で記載し、次へをクリック

f:id:In-houseSE:20210606105916p:plain

  • 設定確認になったら内容を確認し、Auto Scalingグループを作成をクリック

f:id:In-houseSE:20210606110040p:plain

f:id:In-houseSE:20210606110316p:plain

  • ELB経由でアクセスできることを確認します。

f:id:In-houseSE:20210606125432p:plain

実際の手順(Auto-Scalingグループのスケールイン/アウト動作確認)

試験用にインスタンスを立ち上げた状態より確認します。

f:id:In-houseSE:20210606130425p:plain

f:id:In-houseSE:20210606130558p:plain

  • アタッチするAuto Scalingグループを指定し、アタッチをクリック

f:id:In-houseSE:20210606130644p:plain

  • しばらく時間を経過するのを待ってから作成したAutoScalingポリシーより、希望する台数まで減少することを確認します。(この場合は起動した後の方が残るため、登録した方が削除されます)

f:id:In-houseSE:20210606131304p:plain

負荷テストによるAuto 負荷試験による動作確認

f:id:In-houseSE:20210606131833p:plain

  • 負荷ツールをダウンロードします

コマンド

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台)

f:id:In-houseSE:20210606132651p:plain

  • サーバーで負荷ツールを実行します

コマンド

stress -c 1 -q &

結果

[1] 29723
  • 負荷ツールを実行した後の状態を確認します

コマンド

top

結果 f:id:In-houseSE:20210606132955p:plain

※ctrl+cでtopの実行状態を終了できます

  • AutoScalingポリシーで新規インスタンスが起動するか確認します(モニタリングの間隔があるためそれに合わせて起動する動作となります)

f:id:In-houseSE:20210606133640p:plain

f:id:In-houseSE:20210606133731p:plain

  • 確認が取れたら負荷をかけているサーバーで負荷ツールのプロセスを確認します

コマンド

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グループ-詳細タブの順に選択し、グループの詳細から編集をクリック

f:id:In-houseSE:20210606134830p:plain

  • 希望する容量と最小キャパシティおよび最大キャパシティを0にして、更新をクリック

f:id:In-houseSE:20210606135209p:plain

今回のテーマは以上です。