こんにちは、Qubeの開発を担当しております宮本です。
少し前に、AWSのAuto Scalingを導入しましたので、その手順について紹介させていただきます。よろしくお願い致します。
Auto Scalingとは?
処理負荷に応じてEC2インスタンスの数を自動で増減することができるサービスです。
Qubeでアクセス数が増える見込みがあった為、導入することになりました。
QubeのWEBサーバまわりの構成
元々は1台構成でした。↓
Auto Scaling導入後は複数台構成で、こうなります。↓
やりたかったこと
- アクセスが集中した時にEC2の台数を増やす。
- アクセスが落ち着いている際は、EC2を最低限の台数にする。
- アプリケーションのアップデートの際、ローリングアップデートを行う。
ローリングアップデートとは?
ローリングアップデートというのは、システムの稼動状態を維持したまま一台ずつ順番に更新を行うことです。更新中のサーバは運用を停止しますが、他のサーバでシステムの稼動状態を維持するため、アップデート中も利用者はサイトを使い続けることができます。
下図は、背景を 白→桜色 に変更した場合のイメージです。
【余談】なぜ桜色かというと、このブログを執筆したのが桜味のお菓子が店頭に並び、
コーヒー屋は桜ラテ的な飲み物を推してくる時期だったからです。私も結構好きです。
Auto Scaling設定手順
実際はElastiCache等、色んな作業があったのですが長くなってしまうので、
ここではAuto Scalingの設定についてご紹介させていただきます。
※ AWSマネージドコンソールの画像は2022年9月時点のものです。
1.事前準備
WEBサーバのAMIを用意しておいてください。
2.起動テンプレートの作成
まずAuto Scalingに指定する起動テンプレートを作成します。
- マネージドコンソールから[EC2]→[起動テンプレート]と開きます。
- [起動テンプレートの作成]ボタンをクリックします。
- 各項目に入力をします。
- [起動テンプレートを作成]ボタンをクリックします。
3.Auto Scalingグループの作成
- マネージドコンソールで[EC2] → [Auto Scaling グループ]を開きます。
- [Auto Scaling グループを作成する]ボタンをクリックします。
- 各項目に入力をします。
- [次へ]ボタンをクリックします。
- 各項目に入力をします。
- [次へ]ボタンをクリックします。
- 各項目に入力をします。
- [次へ]ボタンをクリックします。
- 各項目を入力します。
- [次へ]ボタンをクリックします。
- 各項目に入力をします。
- [次へ]ボタンをクリックします。
- 各項目に入力します。
- [次へ]ボタンをクリックします。
- 確認画面が表示されるので、確認の上、[Auto Scaling グループを作成する]ボタンをクリックします。
4.スケールアウト時の、ALBへのアタッチを待機する秒数を変更します
- 作成したAuto Scalingグループを選択します。
- [インスタンス管理]タブ の [ライフサイクルフックの作成]ボタンをクリックします。
- 各項目に入力をします。
- [作成]ボタンをクリックします。
5.オートスケーリングの条件を設定
- [オートスケーリング]タブ→[動的スケーリングポリシーを作成する]ボタンをクリックします。
- [作成]ボタンをクリックします。
6.設定完了→確認作業
以上でAuto Scalingの設定は完了です。
指定したターゲットグループを見ると、インスタンスが入っていることが確認できました。
そして、ブラウザからもサイトが開けるのを確認します。
最初に設定した際は、IPアドレス割り当ての設定をせず、
EC2はできているのにサイトが開けない、なんてこともありました。
が、今回は設定したのでサイトを見ることができました!
最後に
ここまで読んでいただきありがとうございました!何かしらの参考になれば幸いです。
後編ではローリングアップデートの手順についてご紹介したいと思います。
後編はこちら