チュートリアル: スケーリングとロードバランシングを使用するアプリケーションのセットアップ - Amazon EC2 Auto Scaling (日本語)

チュートリアル: スケーリングとロードバランシングを使用するアプリケーションのセットアップ

重要

このチュートリアルに進む前に、以下の概要チュートリアルを確認することをお勧めします。Amazon EC2 Auto Scaling の使用を開始する

Auto Scaling グループを Elastic Load Balancing ロードバランサーに登録すると、負荷分散されたアプリケーションをセットアップできます。Elastic Load Balancing は Amazon EC2 Auto Scaling と連携し、受信トラフィックを正常な Amazon EC2 インスタンスに分散させます。これにより、アプリケーションのスケーラビリティと可用性が向上します。複数のアベイラビリティーゾーン内で Elastic Load Balancing を有効にして、アプリケーションの耐障害性を向上させることができます。

このチュートリアルでは、Auto Scaling グループの作成時に負荷分散されたアプリケーションをセットアップする基本的なステップについて説明します。完了すると、アーキテクチャは次の図表のようになります。


      Application Load Balancer を持つ Auto Scaling グループ。

Elastic Load Balancing では、異なる種類のロードバランサーがサポートされています。このチュートリアルでは、Application Load Balancer を使用することをお勧めします。

アーキテクチャへのロードバランサーの導入の詳細については、「Elastic Load Balancing と Amazon EC2 Auto Scaling」を参照してください。

Prerequisites

  • ロードバランサーおよびターゲットグループ。Auto Scaling グループに使用するロードバランサーと同じアベイラビリティゾーンを選択していることを確認します。詳細については、Elastic Load Balancing ユーザーガイドElastic Load Balancing で使用開始 を参照してください。

  • 起動テンプレートまたは起動設定に対応したセキュリティグループ。セキュリティグループは、リスナーポート (HTTP トラフィックの場合は通常、ポート 80) および Elastic Load Balancing でヘルスチェックに使用するポートの両方で、ロードバランサーからのアクセスが許可されている必要があります。詳細については、該当するドキュメントを参照してください。

    インスタンスにパブリック IP アドレスがある場合は、オプションでインスタンスに接続するための SSH トラフィックを許可することもできます。

  • (オプション) アプリケーションアクセスを AWS に付与する IAM ロール。

  • (オプション) Amazon EC2 インスタンスのソーステンプレートとして定義された Amazon マシンイメージ (AMI)。作成するには、インスタンスを起動します。IAM ロール (作成した場合) と、ユーザーデータとして必要な設定スクリプトを指定します。インスタンスに接続し、それをカスタマイズします。たとえば、ソフトウェアやアプリケーションのインストール、データのコピー、追加の EBS ボリュームのアタッチを行うことができます。インスタンスが正しく設定されたことを確認するために、インスタンスでアプリケーションをテストします。この更新された設定をカスタム AMI として保存します。後で使用しないインスタンスは、終了できます。この新しいカスタム AMI から起動されるインスタンスには、AMI の作成時に追加したカスタマイズが含まれます。

  • Virtual Private Cloud (VPC)。このチュートリアルではデフォルトの VPC を参照していますが、独自の VPC を使用することもできます。後者の場合は、VPC に、作業中のリージョンの各アベイラビリティーゾーンにマッピングされたサブネットがあることを確認してください。ロードバランサーを作成するには、2 つ以上のパブリックサブネットが必要です。Auto Scaling グループを作成してロードバランサーに登録するには、2 つのプライベートサブネットまたは 2 つのパブリックサブネットが必要です。

次の手順はすべて、新しいコンソール用です。

ステップ 1: 起動テンプレートまたは起動設定を設定する

このチュートリアルでは、起動テンプレートまたは起動設定を使用します。

使用する起動テンプレートが既に存在している場合は、以下の手順を使用して起動テンプレートを選択します。

注記

または、起動テンプレートを使用する代わりに、起動設定を使用することもできます。起動設定手順については、「起動設定を作成または選択するq」を参照してください。

既存の起動テンプレートを選択するには

  1. Amazon EC2 コンソールの起動テンプレートページを開きます。

  2. 画面上部のナビゲーションバーで、ロードバランサーが作成されたリージョンを選択します。

  3. 起動テンプレートを削除します。

  4. Actions、[Auto Scaling グループの作成] を選択します。

または、新しい起動テンプレートを作成するために、次の手順を使用します。

起動テンプレートを作成するには

  1. Amazon EC2 コンソールの起動テンプレートページを開きます。

  2. 画面上部のナビゲーションバーで、ロードバランサーが作成されたリージョンを選択します。

  3. [起動テンプレートの作成] を選択します。

  4. 名前を入力し、起動テンプレートの最初のバージョンの説明を加えます。

  5. [Amazon マシンイメージ (AMI)] には、検索基準としてインスタンスの AMI の ID を入力します。

  6. [インスタンスタイプ] には、指定した AMI と互換性のあるインスタンス用のハードウェア設定を選択します。

  7. (オプション) [キーペア (ログイン)] で、インスタンスに接続するときに使用するキーペアを選択します。

  8. [ネットワークインターフェイス] で、以下の操作を実行します。

    1. [Add network interface] を選択します。このチュートリアルでは、このオプションを使用してネットワークインターフェイスを指定します。

    2. (オプション) [自動割り当てパブリック IP] は、デフォルト値 [起動テンプレートに含めない] のままにします。Auto Scaling グループを作成する際には、デフォルト VPC 内のデフォルトサブネットなど、パブリック IP アドレッシング属性が有効なサブネットを使用することにより、Auto Scaling グループ内のインスタンスにパブリック IP アドレスを割り当てることができます。または、インスタンスに接続する必要がない場合は、グループ内のインスタンスがインターネットから直接トラフィックを受信することのないよう、[無効化] を選択することもできます。この場合、トラフィックの受信はロードバランサーからのみになります。

    3. セキュリティグループ ID を使用する場合、ロードバランサーと同じ VPC のインスタンスのセキュリティグループを指定します。

    4. [Delete on termination (終了時に削除)] を使用する場合、Yes (はい)を選択してください。これにより、Auto Scaling グループをスケールインしてネットワークインターフェイスがアタッチされているインスタンスを終了するときに、ネットワークインターフェイスが削除されます。

  9. (オプション) 認証情報をインスタンスに安全に配布するには、[Advanced details (詳細設定)] の [IAM instance profile (IAM インスタンスプロファイル)] に、IAM ロールの Amazon リソースネーム (ARN) を入力します。

  10. (オプション) インスタンスにユーザーデータまたは設定スクリプトを指定するには、[Advanced details]、[User data] に設定スクリプトを貼り付けます。

  11. [起動テンプレートの作成] を選択します。

  12. 確認ページで、[Auto Scaling グループの作成] を選択します。

起動設定を作成または選択するq

使用する起動設定が既に存在している場合は、以下の手順を使用してこの起動設定を選択します。

既存の起動設定を選択するには

  1. Amazon EC2 コンソールの [起動設定ページ] を開きます。

  2. 画面上部のナビゲーションバーで、ロードバランサーが作成されたリージョンを選択します。

  3. 起動設定を選択します。

  4. Actions、[Auto Scaling グループの作成] を選択します。

または、新しい起動設定を作成するために、次の手順を使用します。

起動設定を作成するには

  1. Amazon EC2 コンソールの [起動設定ページ] を開きます。

  2. 画面上部のナビゲーションバーで、ロードバランサーが作成されたリージョンを選択します。

  3. [Create launch configuration (起動設定の作成)] を選択して、起動設定の名前を入力します。

  4. [Amazon マシンイメージ (AMI)] には、検索基準としてインスタンスの AMI の ID を入力します。

  5. [インスタンスタイプ] では、インスタンスのハードウェア設定を選択します。

  6. [Additional configuration (追加設定)] 以下のフィールドに注意してください。

    1. (オプション) 認証情報を EC2 インスタンスに安全に配布するには、[IAM インスタンスプロファイル] で、IAM ロールを選択します。詳細については、「Amazon EC2 インスタンスで実行中のアプリケーション用の IAM ロール」を参照してください。

    2. (オプション) インスタンスにユーザーデータまたは設定スクリプトを指定するには、[Advanced details (高度な詳細)]、[User data] に設定スクリプトを貼り付けます。

    3. (オプション) [Advanced details (高度な詳細)] の [IP アドレスタイプ] は、デフォルト値のままにします。Auto Scaling グループを作成する際には、デフォルト VPC 内のデフォルトサブネットなど、パブリック IP アドレッシング属性が有効なサブネットを使用することにより、Auto Scaling グループ内のインスタンスにパブリック IP アドレスを割り当てることができます。または、インスタンスに接続する必要がない場合は、グループ内のインスタンスがインターネットから直接トラフィックを受信することのないよう、[パブリック IP アドレスをどのインスタンスにも割り当てないでください] を選択することもできます。この場合、トラフィックの受信はロードバランサーからのみになります。

  7. セキュリティグループを使用する場合、ロードバランサーと同じ VPC から既存のセキュリティグループを選択します。Create a new security group (新しいセキュリティグループの作成)オプションを選択すると、Linux を実行する Amazon EC2 インスタンスに対してデフォルトの SSH ルールが設定されます。デフォルトの RDP ロールは、Windows を実行する Amazon EC2 インスタンスに対して設定されます。

  8. [Key pair (login) (キーペア (ログイン))] で、Key pair options (キーペアのオプション) の下にあるオプションを選択します。

    すでに Amazon EC2 インスタンスキーペアを設定している場合は、ここで選択できます。

    Amazon EC2 インスタンスのキーペアがまだない場合は、[Create a new key pair (新しいキーペアの作成)] を選択して、わかりやすい名前を付けます。[Download key pair (キーペアのダウンロード)] を選択し、キーペアをコンピュータにダウンロードします。

    重要

    インスタンスに接続する必要がある場合は、[Proceed without a key pair] を選択しないでください。

  9. 確認チェックボックスをオンにし、[Create launch configuration (起動設定の作成) ] を選択します。

  10. 新しい起動設定の名前の横にあるチェックボックスを選択し、アクション,Auto Scaling グループの作成を選択してください。

ステップ 2: Auto Scaling グループを作成する

起動テンプレートまたは起動設定を作成または選択した後、以下の手順に従って中断していた作業を続行します。

Auto Scaling グループを作成するには

  1. [Choose launch template or configuration (起動テンプレートまたは起動設定を選択する)] ページで [Auto Scaling グループ名] にAuto Scaling グループの名前を入力します。

  2. [Launch template only] [起動テンプレート] で、スケールアウト時に Auto Scaling グループで使用する起動テンプレートのバージョン (デフォルト、最新、または特定のバージョン) を選択します。

  3. [Next] を選択します。

    [Configure settings (設定の指定)] ページでは、ネットワーク設定を指定し、複数のインスタンスタイプのオンデマンドインスタンスとスポットインスタンス間で多様化を選択できます (起動テンプレートを選択した場合)。

  4. [起動テンプレートのみ] [購入オプションとインスタンスタイプ] を [起動テンプレートに準拠する] に設定したままにし、起動テンプレートで指定されている EC2 インスタンスタイプと購入オプションを使用します。

  5. [ネットワーク] で、ロードバランサーに使用した VPC を選択します。デフォルトの VPC を選択した場合は、インスタンスへのインターネット接続を提供するように自動的に設定されます。この VPC には、リージョンの各アベイラビリティーゾーンのパブリックサブネットが含まれます。

  6. [Subnet (サブネット)] では、ロードバランサーがあるアベイラビリティーゾーンに基づいて、含めるアベイラビリティーゾーンから 1 つ以上のサブネットを選択します。

  7. [Next] を選択します。

  8. [Configure advanced options (詳細オプションを設定する)] ページで、[Load balancing]の Attach to an existing load balancer (既存のロードバランサーにアタッチする)を選択します。

  9. [Choose from your load balancer target groups (ロードバランサーのターゲットグループから選択する)] を選択して、作成したロードバランサーのターゲットグループを選択します。

  10. (オプション)Elastic Load Balancing ヘルスチェックを使用するには、[ヘルスチェック] で、ヘルスチェックタイプの[ELB] を選択します。

  11. Auto Scaling グループの設定が完了したら、[Skip to review (スキップして確認)] を選択します。

  12. [確認] ページで、Auto Scaling グループの詳細を確認します。[Edit] を選択して、変更を加えることができます。完了したら、[Auto Scaling グループの作成] を選択します。

ロードバランサーがアタッチされた Auto Scaling グループを作成すると、ロードバランサーは新しいインスタンスがオンラインになると自動的に登録します。この時点ではインスタンスが 1 つしかないため、登録するインスタンスは多くありません。ただし、グループの希望容量を更新することで、インスタンスを追加できるようになりました。手順については、「手動スケーリング」を参照してください。

ステップ 3: ロードバランサーがアタッチされたことを確認する

ロードバランサーがアタッチされたことを確認するには

  1. Amazon EC2 コンソールの Auto Scaling グループページ から、Auto Scaling グループの横にあるチェックボックスを選択します。

  2. [詳細] タブの [Load balancing] には、アタッチされているロードバランサーターゲットグループまたは Classic Load Balancer が表示されます。

  3. [アクティビティ]タブのアクティビティ履歴で、インスタンスが正常に起動したことを確認できます。[Status] 列は Auto Scaling グループがインスタンスを正常に起動したかどうかを表示します。インスタンスの起動に失敗した場合は、Amazon EC2 Auto Scaling のトラブルシューティング にインスタンスの起動に関する一般的な問題のトラブルシューティングのヒントがあります。

  4. [インスタンス管理] タブの [インスタンス] で、インスタンスがトラフィックを受け取る準備ができたことを確認できます。当初、インスタンスの状態は Pending です。インスタンスがトラフィックを受信できるようになったら、そのステータスは InService です。[Health Status] 列には、インスタンスのAmazon EC2 Auto Scaling ヘルスチェックの結果が表示されます。インスタンスが正常とマークされていても、ロードバランサーは、ロードバランサーのヘルスチェックに合格したインスタンスにのみ、トラフィックを送信します。

  5. インスタンスがロードバランサーに登録されていることを確認します。Amazon EC2 コンソールのターゲットグループページを開きます。ターゲットグループを選択し、[ターゲット] タブを選択します。インスタンスの状態が initial の場合、おそらく登録中であるか、まだヘルスチェック中です。インスタンスの状態が healthy になると、使用できる状態です。

ステップ 4: 次のステップ

このチュートリアルを完了したので、さらに詳しい内容に進むことができます。

  • Elastic Load Balancing ヘルスチェックを使用するように、Auto Scaling グループを設定できます。ロードバランサーのヘルスチェックを有効にして、インスタンスがヘルスチェックに失敗した場合、Auto Scaling グループはインスタンスを異常と見なし、これを置き換えます。詳細については、「ELB ヘルスチェックの追加」を参照してください。

  • 同じリージョン内の追加のアベイラビリティーゾーンにアプリケーションを拡張して、サービス中断が発生した場合の耐障害性を向上させることができます。詳細については、「アベイラビリティーゾーンの追加」を参照してください。

  • Auto Scaling グループを設定することで、ターゲット追跡スケーリングポリシーを使用できます。これにより、インスタンスの需要の変化に応じて、インスタンスの数が自動的に増減します。これにより、グループはアプリケーションが受信するトラフィック量の変化に対応できます。詳細については、「ターゲット追跡スケーリングポリシー」を参照してください。

ステップ 5: クリーンアップ

このチュートリアル用に作成したリソースを使用し終えたら、不要な料金の発生を回避するため、クリーンアップを検討してください。

Auto Scaling グループを削除するには

  1. Amazon EC2 コンソールで [Auto Scaling グループのページ] を開きます。

  2. Auto Scaling グループを選択します。

  3. [削除] を選択します。確認を求めるメッセージが表示されたら、[削除] を選択します。

    [Name (名前)] 列のロードアイコンに、Auto Scaling グループが削除されたことが示されます。削除が発生すると、[Desired (希望)]、[Min (最小)]、[Max (最大)] 列に、Auto Scaling グループの 0 インスタンスが表示されます。インスタンスを終了し、グループを削除するには数分かかります。リストを更新して、現在の状態を確認します。

起動テンプレートを維持する場合は、この手順をスキップします。

起動テンプレートを削除するには

  1. Amazon EC2 コンソールの起動テンプレートページを開きます。

  2. 起動テンプレートを選択します。

  3. [アクション]、[テンプレートの削除] の順に選択します。確認を求めるメッセージが表示されたら、[起動テンプレートの削除] を選択します。

起動設定を維持する場合は、以下の手順をスキップします。

起動設定を削除するには

  1. Amazon EC2 コンソールの [起動設定ページ] を開きます。

  2. 起動設定を選択します。

  3. [Actions]、[Delete launch configuration] の順に選択します。確認を求めるメッセージが表示されたら、[Yes, Delete (はい、削除します)] を選択します。

将来使用できるように、ロードバランサーを保持する場合は、次の手順をスキップします。

ロードバランサーを削除するには

  1. Amazon EC2 コンソールで [ロードバランサーページ] を開きます 。

  2. ロードバランサーを選択してから、[Actions (アクション)]、[Delete (削除)] の順に選択します。

  3. 確認を求めるメッセージが表示されたら、[Yes, Delete (はい、削除します)] を選択します。

ターゲットグループを削除するには

  1. Amazon EC2 コンソールのターゲットグループページを開きます。

  2. ターゲットグループを選択し、[Actions (アクション)]、[Delete (削除)] を選択します。

  3. 確認を求めるメッセージが表示されたら、[Yes] を選択します。