Amazon EC2 Auto Scaling (日本語)
ユーザーガイド

VPC での Auto Scaling インスタンスの起動

Amazon Virtual Private Cloud (Amazon VPC) を使用すると、AWS クラウド内の隔離されたプライベートセクションに仮想ネットワーク環境を定義できます。仮想ネットワーク環境は完全に管理できます。詳細については、『Amazon VPC ユーザーガイド』を参照してください。

Virtual Private Cloud (VPC) 内では、Auto Scaling グループなどの AWS リソースを起動できます。VPC 内の Auto Scaling グループは Amazon EC2 と基本的には同じ動作であり、同じ機能をサポートします。

Amazon VPC のサブネットとは、アベイラビリティーゾーンを VPC の IP アドレス範囲の一部で分割したものです。サブネットを使うと、インスタンスをセキュリティや運用上の必要に応じてグループ化することができます。サブネットは作成されたアベイラビリティーゾーン内に完全に包含されるものです。サブネットで Auto Scaling インスタンスを起動します。

サブネット内のインスタンスがインターネットと通信できるようにするには、インターネットゲートウェイを作成して、それを VPC にアタッチする必要があります。インターネットゲートウェイを使用すると、サブネット内のリソースが Amazon EC2 ネットワークエッジを介してインターネットに接続できるようになります。サブネットのトラフィックがインターネットゲートウェイにルーティングされる場合、そのサブネットはパブリックサブネットと呼ばれます。サブネットのトラフィックがインターネットゲートウェイにルーティングされない場合、そのサブネットはプライベートサブネットと呼ばれます。インターネットに接続する必要があるリソースにはパブリックサブネットを、インターネットに接続する必要がないリソースにはプライベートサブネットを使用してください。

前提条件

VPC で Auto Scaling インスタンスを起動するには、まず VPC 環境を作成する必要があります。VPC およびサブネットを作成したら、そのサブネット内で Auto Scaling インスタンスを起動します。1 個のパブリックサブネットで VPC を作成する最も簡単な方法は、VPC ウィザードを使用することです。詳細については、「Amazon VPC 入門ガイド」を参照してください。

デフォルト VPC

2013 年 12 月 04 日以降に AWS アカウントを作成したか、新しいリージョンで Auto Scaling グループを作成する場合は、デフォルト VPC が作成されます。各アベイラビリティーゾーンのデフォルトサブネットにはデフォルト VPC が用意されています。デフォルト VPC がある場合、デフォルトではその VPC で Auto Scaling グループが作成されます。

デフォルト VPC の詳細と、アカウントにデフォルト VPC が設定されているかどうかについては、『Amazon VPC 開発者ガイド』の「デフォルト VPC とサブネット」を参照してください。

VPC での IP アドレス指定

VPC で Auto Scaling インスタンスを起動すると、インスタンスにはサブネットのアドレス範囲のプライベート IP アドレスが自動的に割り当てられます。これにより、インスタンスは VPC の他のインスタンスと通信できるようになります。

インスタンスにパブリック IP アドレスを割り当てるよう起動設定を指定できます。インスタンスにパブリック IP アドレスを割り当てると、インスタンスはインターネットや AWS の他のサービスと通信できるようになります。

インスタンスのパブリック IP アドレスを有効にして、自動的にインスタンスに IPv6 アドレスを割り当てるよう設定されたサブネットでインスタンスを起動すると、インスタンスは IPv4 と IPv6 アドレスの両方を受け取ります。それ以外の場合は、IPv4 アドレスのみを受け取ります。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「IPv6 アドレス」を参照してください。

インスタンスのプレイスメントテナンシー

専用インスタンスは、ハードウェア専有インスタンス以外のインスタンスや、他の AWS アカウントに属するインスタンスとは、ホストハードウェアのレベルで物理的に分離されます。VPC を作成すると、デフォルトではテナンシー属性は default に設定されます。このような VPC では、テナンシー値に dedicated を指定してインスタンスを起動して、単一テナンシーインスタンスとして実行できます。それ以外の場合は、デフォルトで、インスタンスは共有テナンシーインスタンスとして実行されます。VPC のテナンシー属性を dedicated に設定した場合、VPC で起動されるすべてのインスタンスは、シングルテナンシーインスタンスとして実行されます。詳細については、Amazon VPC ユーザーガイド の「専有インスタンス」を参照してください。料金の詳細については、Amazon EC2 ハードウェア専有インスタンスの製品ページを参照してください。

起動設定を作成するときにインスタンスのプレイスメントテナンシーのデフォルト値は null であり、インスタンスのテナンシーは VPC のテナンシー属性によって制御されます。以下の表は、VPC で起動される Auto Scaling インスタンスのプレイスメントテナンシーをまとめたものです。

起動設定のテナンシー VPC のテナンシー = デフォルト VPC のテナンシー = ハードウェア占有

指定されていません

共有テナンシー インスタンス

ハードウェア専有インスタンス

default

共有テナンシー インスタンス

ハードウェア専有インスタンス

dedicated

ハードウェア専有インスタンス

ハードウェア専有インスタンス

create-launch-configuration コマンドと --placement-tenancy オプションを使用して、起動設定のインスタンスのプレイスメントテナンシーを default または dedicated に指定できます。たとえば、次のコマンドは、起動設定のテナンシーを dedicated に設定します。

aws autoscaling create-launch-configuration --launch-configuration-name my-launch-config --placement-tenancy dedicated --image-id ...

次の describe-launch-configurations コマンドを使用して、起動設定のインスタンスのプレイスメントテナンシーを確認できます。

aws autoscaling describe-launch-configurations --launch-configuration-names my-launch-config

ハードウェア専有インスタンスを作成する起動設定の出力例を次に示します。明示的にインスタンスのプレイスメントテナンシーを設定すると、PlacementTenancy パラメータはこのコマンドの出力にのみ含まれます。

{ "LaunchConfigurations": [ { "UserData": null, "EbsOptimized": false, "PlacementTenancy": "dedicated", "LaunchConfigurationARN": "arn", "InstanceMonitoring": { "Enabled": true }, "ImageId": "ami-b5a7ea85", "CreatedTime": "2015-03-08T23:39:49.011Z", "BlockDeviceMappings": [], "KeyName": null, "SecurityGroups": [], "LaunchConfigurationName": "my-launch-config", "KernelId": null, "RamdiskId": null, "InstanceType": "m3.medium" } ]

EC2-Classic で Auto Scaling グループ内のインスタンスを起動する場合、それらのインスタンスを ClassicLink を使用して VPC にリンクできます。ClassicLink を使用すると、VPC の 1 つ以上のセキュリティグループを Auto Scaling グループの EC2-Classic インスタンスに関連付けます。これにより、これらのリンクされた EC2-Classic インスタンスと VPC のインスタンス間で、プライベート IP アドレスを使用した通信が有効になります。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「ClassicLink」を参照してください。

Auto Scaling グループ内の EC2-Classic インスタンスを実行している場合は、それらを ClassicLink が有効な VPC にリンクできます。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「VPC へのインスタンスのリンク」を参照してください。別の方法として、Auto Scaling グループを更新して、起動時に EC2-Classic インスタンスを VPC に自動的にリンクする起動設定を使用することもできます。その後、実行中のインスタンスを削除し、Auto Scaling グループで VPC にリンクされている新しいインスタンスを起動します。

以下の手順を使用して、指定された VPC に EC2-Classic インスタンスをリンクし、起動設定を使用するように既存の Auto Scaling グループを更新する起動設定を作成します。

コンソールを使用して、Auto Scaling グループ内の EC2-Classic インスタンスを VPC へリンクするには

  1. VPC で ClassicLink が有効になっていることを確認します。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「ClassicLink が有効な VPC の表示」を参照してください。

  2. EC2-Classic インスタンスのリンク先となる VPC のセキュリティグループを作成します。リンクされた EC2-Classic インスタンスと VPC のインスタンス間の通信を制御するルールを追加します。

  3. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  4. ナビゲーションペインで、[Launch Configurations(起動設定)] を選択します。

  5. [Create launch configuration] を選択します。

  6. [Choose AMI] ページで、AMI を選択します。

  7. [Choose an Type] ページでインスタンスタイプを選択してから、[Next: Configure details] を選択します。

  8. [Configure details] ページで、以下を実行します。

    1. 起動設定の名前を入力します。

    2. [Advanced Details] を展開し、必要なIP アドレスタイプを選択して、[Link to VPC] を選択します。

    3. [VPC] で、ステップ 1 で ClassicLink を有効にした VPC を選択します。

    4. [セキュリティ グループ] で、ステップ 2 のセキュリティ グループを選択します。

    5. [Skip to review] を選択します。

  9. [Review] ページで、必要な変更を行い、[Create launch configuration] を選択します。[Select an existing key pair or create a new key pair] フィールドで、オプションを選択し(さらに確認のチェックボックスがあれば選択して)、[Create launch configuration] を選択します。

  10. 表示される手順に従って、新しい起動設定を使用する Auto Scaling グループを作成します。必ずネットワークの [Launch into EC2-Classic] を選択してください。それ以外の場合は、[キャンセル] を選択して、以下のように既存の Auto Scaling グループに起動設定を追加します。

    1. ナビゲーションペインで、[Auto Scaling Groups] を選択します。

    2. Auto Scaling グループを選択し、[アクション]、[編集] の順に選択します。

    3. [Launch Configuration] で、新しい起動設定を選択して [Save] を選択します。

以下の手順を使用して、指定された VPC に EC2-Classic インスタンスをリンクし、起動設定を使用するように既存の Auto Scaling グループを更新する起動設定を作成します。

AWS CLI を使用して Auto Scaling グループの EC2-Classic インスタンスを VPC へリンクするには

  1. VPC で ClassicLink が有効になっていることを確認します。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「ClassicLink が有効な VPC の表示」を参照してください。

  2. EC2-Classic インスタンスのリンク先となる VPC のセキュリティグループを作成します。リンクされた EC2-Classic インスタンスと VPC のインスタンス間の通信を制御するルールを追加します。

  3. 次のように create-launch-configuration コマンドを使用して起動設定を作成します。vpd_id の値にはステップ 1 で ClassicLink を有効にした VPC の ID を指定し、group_id にはステップ 2 のセキュリティグループを指定します。

    aws autoscaling create-launch-configuration --launch-configuration-name classiclink-config --image-id ami_id --instance-type instance_type --classic-link-vpc-id vpc_id --classic-link-vpc-security-groups group_id
  4. たとえば my-asg のような既存の Auto Scaling グループを、以前のステップで作成した起動設定を使用して更新します。この Auto Scaling グループで起動される新しい EC2-Classic インスタンスが、リンクされた EC2-Classic インスタンスです。次のように update-auto-scaling-group コマンドを使用します。

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --launch-configuration-name classiclink-config

    または、create-auto-scaling-group を使用して作成した新しい Auto Scaling グループにこの起動設定を使用することもできます。

その他の例については、次のチュートリアルを参照してください。