スケールアウトを自動化する:AWS Tips
ELBを使った構成を、負荷に合わせて自動的にスケールアウト、もしくはスケールインさせるAutoScalingの使い方を説明します。
「ELBでスケールアウトする」で紹介したElastic Load Balancing(ELB)を使うことで、AWSでスケールアウトする構成を簡単に作れるようになります。
AWSではこの構成を、負荷に合わせて自動的にスケールアウト、もしくはスケールインさせることが可能です。これをAutoScaling(オートスケーリング)と呼びます。
AutoScaling機能の利用自体には追加費用は発生しません。AutoScalingによって増やされたEC2インスタンスの利用料、通信料に対して費用が発生するだけです。
AutoScalingの設定
AutoScalingを利用するには、[Launch Config](起動設定)と[Auto Scaling Group]設定という2つの設定が必要です。
Launch Configでは、
- AMI
- 起動するインスタンスのサイズ
- インスタンスに割り当てるセキュリティグループ
- 割り当てる公開鍵
などを指定します。つまり、手動でインスタンスを追加するときの設定とほぼ同じ内容です。
[Auto Scaling Group]設定では、Launch Configを指定して、そのインスタンスをどのような条件で増減させるかを指定できます。
また、増減させずにインスタンスの数をキープするという設定も行えます。この場合、インスタンスに何か障害が発生してもインスタンス数を維持するように、障害が発生したインスタンスの削除と代わりとなる新しいインスタンスの配置を自動的に行ってくれます。
Auto Scaling Group設定では、CloudWatchと連携し、インスタンスの負荷やELBのアクセス数などを条件としてインスタンスの増減ルールを設定することができます。
以下の画像の例は、「1〜10インスタンスの範囲で、平均CPU使用率が80%以上の状態が300秒続くと1つインスタンスを追加し、平均CPU使用率が60%を下回ると1つインスタンスを減らす」という設定になります。
ELBとAutoScalingを組み合わせることで、システムのリソースを自動的に調整できるようになります。ただし、AutoScalingはスケールアウトを行う機能なので、スケールアップによる対応を行いたい場合はLaunch Configを変更する必要があります。
また、同時に起動できるインスタンス数は、デフォルトの状態ではインスタンスタイプによっても異なりますが、20台程度に制限されています。制限台数を超えてAutoScaleが必要な場合には、事前にユーザーサポートから上限緩和申請を行っておくことを忘れないようにしてください。
このように適切な監視と申請を行えば、AWSでリソース不足の問題を自動的に解決できるようになるでしょう。
伊藤覚宏
好きなAWSサービスはRDS
サーバーワークス テクニカルチーム、Zabbix Certified Specialist for Large Environments、Red Hat Certified Virtualization Administrator、VMware Certified Professional 4
通信系SIerにてZabbixエンジニアとして監視システムの構築、保守、マニュアル作成、研修講師などを担当。VMwareに関わる業務を長く担当し、VMwareベースのバーチャルプライベートクラウド基盤の構築、保守およびバックエンドサポートを担当。2014年にサーバーワークスに入社、システム監視を専門領域とし、AWSシステム構築エンジニア、プロジェクトリーダーのほか、クラウド研修講師などを行っている。
Copyright © ITmedia, Inc. All Rights Reserved.