【AWS】Auto Scalingについて

はじめに

記事をご覧いただきありがとうございます。皆さんはAWS(Amazon Web Service)の1つである「Auto Scaling」というサービスをご存知でしょうか?詳細は後ほど解説しますが、簡単に説明するとこのAWS Auto Scalingは運用しているWebサービスやWebアプリケーションを監視し、インスタンスの容量を自動的に増減してくれるサービスのことです。これだけでは、Auto Scalingというのを知らない方にはなかなかイメージがつかないですよね、これから詳しく解説していきます。また、AWSのAuto Scalingをこれから始めてみたいという方にも参考にして頂けたら幸いです。

AWS Auto Scalingとは

AWS Auto Scalingとは、Webアプリケーションをモニタリングし障害や不具合が起こることなく安定して運用できるように、サーバーへのアクセス数やCPUの使用量に応じて、AWSのEC2インスタンスの数を自動的に増減させてくれるものです。また、AWS Auto Scalingを使用する際に、Auto ScalingグループというEC2インスタンスのグループを作成するため、グループ毎にEC2インスタンスの最小値と最大値を設定することができます。それにより、この範囲内で自動的にインスタンスを増減させ、EC2インスタンスを起動または終了することができます。

例えば、AWS Auto Scalingの1つのグループのEC2インスタンスの最大値が「5」、最小値が「1」、希望容量が「3」で設定されている場合、このAuto Scalingグループのサイズは最小値よりも小さくなることや、最大値より大きくなることもありません。

AWS Auto Scalingのメリット

AWS上でこのAuto Scalingを使用した時に得られる効果は大きく分けて次の3つになります。

耐障害性の向上

AWS Auto ScalingはEC2インスタンスに何らかの異常が発生した場合、すぐにそのEC2インスタンスを自動的に終了します。また、EC2インスタンスを自動終了後、新たにEC2インスタンスを自動的に起動することができます。そのため、耐障害性が高いです。

可用性の向上

AWS Auto Scalingは複数のアベイラビリティゾーンを設定できるため、いずれかのアベイラビリティゾーンが異常発生により使用不可になっても別のアベイラビリティゾーンでEC2インスタンスを起動することができます。このEC2インスタンスの分散により可用性を高めています。また、異常が発生したアベイラビリティゾーンが正常な状態に回復した場合、設定されている全てのアベイラビリティゾーンに渡ってEC2インスタンスが自動的に再分散されます。

コスト効率の向上

AWS Auto ScalingはオンデマンドでEC2インスタンスを必要な時に、必要な分だけ自動的に追加・削除することができるため、アプリケーションの使用量が少なくリソースが不要な期間はEC2インスタンスを適切な量に減らし、利用しないことにより掛かる費用を最小限に抑えることができます。その結果、コスト効率の向上につながります。
一方、これとは逆に突発的にアプリケーションの使用量が増えた場合でもすぐにEC2インスタンスを増やして対応できるので柔軟性が高いです。

AWS Auto Scalingの始め方

Auto Scalingを開始するにあたり、手順といくつかのポイントを併せて解説します。

1:起動テンプレートでEC2を構築

Auto Scalingで使用するEC2を構築する際には、EC2インスタンスの元になるAMI(Amazonマシンイメージ)が必要になります。まず最初に、元になるEC2インスタンスからAMIを作成し、この情報を元にAuto Scalingの「起動テンプレート」を作成します。この起動テンプレートの情報を元にEC2インスタンスが構築されます。

補足:最新の情報でEC2を構築する場合

EC2インスタンスを構築する際には、上記のように作成したテンプレートを使用して構築すればいいのですが、EC2インスタンスの中身のデータの修正や追加をしたい時は別の方法でEC2インスタンスを構築します。理由としては、複数のEC2インスタンスが起動している状態で、データ変更のためだけに停止させるのは運用上良くないからです。

別の方法というのは、「マスターEC2インスタンス」を使用して構築する方法です。このマスターEC2インスタンスというのは、新規でAMIを作成する時だけ使用するもので実際にサーバーとして使用しないEC2インスタンスのことです。この方法を用いることで起動中のEC2インスタンスに変更を加える必要がなく安全です。

2:Auto Scalingグループの作成

Auto Scalingグループというのは、AWS Auto Scalingのコアな部分で構築したEC2インスタンスをまとめたグループのことです。このグループを作成する時に、開始時に使用するEC2インスタンスの数やサブネットの設定をします。

3:ELBの設定

ELBとはElastic Load Balancingの略で「ロードバランサー」と呼ばれるものです。このロードバランサーというものは、サーバーに掛かるトラフィックの負荷を平等に振り分けてくれる装置のことです。ELBがないとサーバーへの負荷が分散できなくなってしまいます。設定方法は簡単で、AWS Auto Scalingグループに対してELBを有効にするだけです。また、一度設定を行うと、その後このグループに新規作成されたEC2インスタンスにも自動で適用されるようになります。

Auto Scalingの仕組み

AWS Auto ScalingはどのタイミングでEC2を自動的に構築しスケーリングしているのでしょうか?それは、AWSの「CloudWatch」と呼ばれるモニタリングサービスを使用し、アラームを作成・設定しその閾値を超えると起動するようにAuto Scalingグループに紐付けるだけです。この設定をすることで、自動スケーリングが可能になります。

まとめ

AWS Auto Scalingの特徴から開始方法まで解説してきましたが、いかがだったでしょうか?AWSのEC2を使用しサービスを運用している場合、要望に応じてEC2インスタンスの増減ができるというのはコスト削減などに繋がります。また柔軟に運用していくことができるので、とても魅力的ではないでしょうか。AWSのEC2を使ってインフラ環境を構築してみたい方は是非使ってみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です