Auto ScalingとAmazon ELB
AWSの醍醐味、業務アプリを支えるEC2の自動スケール機能を見る
AWSのインスタンスをユーザーの設定に従って自動的に拡張/縮小する「Auto Scaling」をビジネスアプリケーションに応用すれば、組織のプロセスを強化できる。
「Amazon Web Services」(AWS)でアプリケーションを開発しているチームは、アプリケーションの拡張性の計画に関して不安を抱えているはずだ。拡張性はアプリケーション性能や顧客の使用感、AWSの料金にも影響を与える。幸い、AWSには効果的な自動スケーリングツールと内蔵オプションがある。ただしほとんどのツールと同様、完全には対応していないケースもあり得る。ビジネスニーズに応じてAWSの機能を強化するための社内ツールを追加で開発しなければならない可能性もある。
ほとんどのアプリケーションプロバイダーにとって、アプリケーションのトラフィックや利用が増えれば、ビジネス機能を処理するために必要なインスタンスやサーバ数は増える。同様に、特定の時間帯や曜日にアプリケーションの利用が低下する場合は必要なインスタンスは減る。計画段階では、想定されるユースケースやコスト、性能に与える影響、インフラニーズに応じてどのようなスケーリングを使うかを決める必要がある。
本稿ではAWSの「Auto Scaling」と「Amazon Elastic Load Balancing」(Amazon ELB)、組織が突き当たる溝や障壁、それに対処するためのアイデアについて解説する。
Auto Scaling
AWSのWebサービスツール「Auto Scaling」では、必要な容量を事前にカスタマイズして、設定された値や需要に応じてインスタンスを自動的にスケーリングする状況を個々に設定できる。スケールアップ/スケールダウンを実行する値は組織が設定する。例えばCPUの平均利用時間が65%に達するとAuto Scalingが作動して、ニーズに応じたインスタンスが追加されるよう設定できる。Auto Scalingでインスタンスを10%減らすことも可能だ。インスタンスは設定に基づいて自動的に追加されたり削除されたりする。ただし行動を起こす前にAuto Scalingを特定時間待機させたり、インスタンスの追加や削除を行う前に再検討させたりする冷却期間の設定を検討することも重要だ。Auto Scalingは基本的に、ユーザーが定義した設定に基づきクラウドインスタンスをAWS内で起動したり終了したりできるWebサービスといえる。
さらに、特定数のインスタンスを実行する設定にしている場合にもAuto Scalingは機能する。望ましいインスタンス数を設定したAuto Scalingグループを作成することにより、常時実行されるインスタンスの数を管理できる。グループ内のインスタンスは設定された容量の値に基づいてAuto Scalingで自動的に追加または削除される。Auto Scalingにはアプリケーションの利用状況に基づいて動的かつ予測的にサーバリソースをスケーリングできる機能がある。適切な値を設定するためには、負荷テストを行うか、時間の経過に伴う実際のアプリケーションの反応を継続調査して、時間の経過に伴うアプリケーションの反応を調べる必要がある。いずれのケースでも、最も効果的なユーザーの反応を引き出すためにはAuto Scalingの上の値と下の値を正確に判定する必要がある。
Amazon ELB
Amazon ELBを有効にすると、アプリケーションのトラフィックが自動的に健全なサーバインスタンスに配分される。アプリケーションの耐障害性を高めるため、インスタンスは別々のアベイラビリティーゾーン(AZ)にグループ化され、また、アプリケーションのトラフィックは利用可能なサーバインスタンスに均等に分散される。
Amazon ELBではインスタンスのヘルスチェックを行って、AZ全体の健全なインスタンスにのみトラフィックを流す。同ツール自体がAWS内で積極的にモニタリングされている。Amazon ELBのオプション使用の特筆すべきメリットは、手動で介入しなくても負荷分散とスケーリングが管理でき、組織のリソースを解放して別の場所に振り向けられる点にある。
Amazon ELBを使うインスタンスに対して、同ツールが自動的に行うヘルスチェックの計画は重要だ。ヘルスチェック実行の値と、インスタンスがヘルスチェックに失敗した場合にトラフィックのルートを切り替えるまでの時間の値を設定する必要がある。例えば30秒ごとにヘルスチェックを実行するよう設定し、ヘルスチェック成功の回数を10に設定した場合、トラフィックがそのインスタンスに送られるまでに約300秒を要する。さらに、失敗の基準となる値も考慮しなければならない。失敗の基準を4回に設定し、ヘルスチェックを30秒ごとに行った場合、そのインスタンスが削除されてトラフィックのルートが変更されるまでに120秒かかる。
Amazon ELBとAuto Scalingは相互運用が可能だ。アプリケーションの拡張性を高めるためにこの2つを組み合わせ、両方の機能を活用することは検討の余地がありそうだ。
追加的ニーズへの対応
AWSのスケーリングツールは大部分のユースケースで効果が実証されているが、中には機能を追加するためカスタム版ツールを開発する必要に迫られる企業もある。その一例として、オンライン映画レンタルサービスの米Netflixは、Auto Scalingを補うために社内で開発した「Scryer」というツールを使っている。
ScryerはNetflixが特定した以下の問題に対応することによって、Auto Scalingを強化する。
- 需要の急増
- 「再試行ストーム」による障害
- 時間ごとのトラフィックパターンの変化
組織によっては、AWSのツールセットが現在対応していないさまざまなビジネスニーズを処理するために、AWSのスケーリングツールを補完するツールの開発が必要だと判断することもある。
アプリケーションを開発している組織は全て、顧客を満足させられる性能やスケールを保証しなければならない。インターネットアプリケーションの顧客は高いレベルの性能とセキュリティ、機能の組み合わせを期待する。あらゆるオプションを組み合わせ、シームレスで高速かつセキュアな高い使用感を実現するためには、スケーリングの計画が必要だ。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社うるる] 「入札市場」攻略ガイド:効率的に落札するためのポイントを徹底解説 -
製品資料
[株式会社うるる] 入札情報に特化した「販路拡大」「効率化」のためのサポートツールとは? -
市場調査・トレンド
[株式会社うるる] 公共入札に成功する企業と失敗する企業の「5つの違い」 -
製品資料
[日本ビジネスシステムズ株式会社] 専門家が教える、Microsoft 365の「テナント統合/分離」を成功に導く秘訣 -
製品資料
[rakumo株式会社] Microsoft 365での情報埋没を防ぐ、社内ナレッジを資産化する情報ポータル活用
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
PHP脆弱性「PHP2Shell」で2260万件に影響 情シスの緊急チェックリスト
-
2
「Microsoft 365」が乗っ取られる MFAを破る“本物の画面”の恐怖
-
3
「テザリング依存」に潜む落とし穴 “遅いVPN”を解消するネット構築術
-
4
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
5
「Windows」の不要なファイルを安全に消して容量を空ける方法
-
6
AI導入が失敗する“真犯人”は現場のマニュアル 7割が陥る「標準化」のわな
-
7
Claude利用8割のGMO、AI人材の評価軸が「トークン管理」に変わった
-
8
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
9
被害額は過去最高額 それでも「サイバー犯罪者が捕まらない」3つの理由
-
10
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
ホワイトペーパーランキング PR
-
1
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
2
2026年のサイバーセキュリティには何が必要か? 最新データに学ぶ傾向と対策
-
3
経験豊富な即戦力人材に直接アプローチできる、「攻めの採用」への転換術
-
4
「IT史に名を残すシステム障害」8選
-
5
最速72分でデータが流出? 最新の脅威トレンドや侵入手法から分かった防衛策
-
6
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
7
AI駆動開発のスピードと安全性を両立 「品質・セキュリティ管理」の実践ガイド
-
8
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
9
「標的型攻撃メール」事例・サンプル集
-
10
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー