EC2-Classic から VPC への移行 - Amazon Elastic Compute Cloud

EC2-Classic から VPC への移行

EC2-Classic を廃止します。詳細については、ブログ記事「EC2-Classic Networking is Retiring - Here's How to Prepare」を参照してください。

EC2-Classic から VPC に移行するには、VPC で EC2-Classic リソースを移行または再作成する必要があります。

リソースを VPC に移行する

一部のリソースを VPC に移行または移動できます。一部のリソースは、EC2-Classic から同じリージョンにある VPC および同じ AWS アカウントの VPC にのみ移行できます。リソースを移行できない場合は、VPC で使用する新しいリソースを作成する必要があります。

前提条件

開始する前に、VPC が必要です。デフォルトの VPC がない場合は、デフォルト以外の VPC を作成できます。詳細については、「Create a VPC (VPC を作成する)」を参照してください。

セキュリティグループ

VPC のインスタンスで EC2-Classic インスタンスと同じセキュリティグループのルールを使用する場合は、Amazon EC2 コンソールを使用して既存の EC2-Classic セキュリティグループのルールを新しい VPC のセキュリティグループにコピーできます。EC2-Classic から、要件を満たす VPC に任意のセキュリティグループをコピーできます。デフォルトのセキュリティグループは削除できません。これらは、EC2-Classic が廃止される際に自動的に削除されます。

同じリージョンの同じ AWS アカウントの新しいセキュリティグループにのみセキュリティグループのルールをコピーできます。別のリージョンまたは別の AWS アカウントを使用する場合は、新しいセキュリティグループを作成し、手動でルールを追加する必要があります。詳細については、「Linux インスタンス用の Amazon EC2 Amazon セキュリティグループ」を参照してください。

前提条件

セキュリティグループのコピーを開始する前に、EC2-Classic セキュリティグループが EC2-Classic 内の別のセキュリティグループを参照するルールがあるかどうか確認する必要があります。これらのルールは VPC にコピーできないため、削除する必要があります。詳細については、「セキュリティグループからのルールの削除」を参照してください。

セキュリティグループのルールを新しいセキュリティグループにコピーするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  3. EC2-Classic インスタンスに関連付けられたセキュリティグループを選択してから、[Actions] (アクション)、[Copy to new security group (新規セキュリティグループにコピー) の順に選択します。

    注記

    EC2-Classic セキュリティグループを特定するには、[VPC ID] 列を確認します。各 EC2-Classic セキュリティグループについて、この列の値は空白または - 記号です。

  4. [Copy to new security group] (新しいセキュリティ グループにコピー) ダイアログボックスで、新しいセキュリティグループの名前と説明を指定します。[VPC] リストから使用している VPC を選択します。

  5. [Inbound rules] (インバウンドルール) で、EC2-Classic セキュリティグループのルールがフィールドに入力されます。必要に応じてルールを変更できます。[Outbound rules] (アウトバウンドルール) では、すべてのアウトバウンドトラフィックを許可するルールが自動的に作成されます。セキュリティグループのルールの変更方法については、「Linux インスタンス用の Amazon EC2 Amazon セキュリティグループ」を参照してください。

    重要

    VPC セキュリティグループから EC2-Classic セキュリティグループは参照できないため、EC2-Classic のセキュリティグループを参照するルールはすべて削除する必要があります。セキュリティグループを VPC にコピーした後に、同様のルールを追加できます。

  6. [セキュリティグループの作成] を選択します。

Elastic IP アドレス

VPC 用に EC2-Classic で割り当てられた Elastic IP アドレスを移行できます。Elastic IP アドレスを別のリージョンまたは AWS アカウントに移行することはできません。24 時間以内にアカウントに割り当てられた Elastic IP アドレスを移行することはできません。

Elastic IP アドレスを移行すると、VPC の Elastic IP アドレス制限にカウントされます。Elastic IP アドレスを移行した結果として制限を超過する場合は、移行できません。Elastic IP アドレスを移行する場合、インスタンスに関連付けないでください。インスタンスからの Elastic IP アドレスの関連付け解除の詳細については、「Elastic IP アドレスの関連付けを解除する」を参照してください。

Elastic IP アドレスを移動または復元するコマンドを実行すると、Elastic IP アドレスの移行プロセスには数分かかる場合があります。Elastic IP アドレスがまだ移動中であるか、移動が完了したかを確認するには、describe-moving-addresses コマンドを使用します。移動が完了したら、[Elastic IPs] (Elastic IP) ページで Elastic IP アドレスの割り当て ID を表示できます。Elastic IP アドレスの移動中状態が 5 分を超えた場合は、AWS Support にお問い合わせください。

EC2-Classic で割り当てられた Elastic IP アドレスを特定するには

Amazon EC2 コンソールを開きます。ナビゲーションペインで [Elastic IPs] (Elastic IP) を選択し、Elastic IP アドレスのチェックボックスをオンにします。Summary (概要) ページで、[Scope] (スコープ) が [EC2-Classic] または [VPC] であるかを確認します。

Amazon EC2 コンソールを使用して Elastic IP アドレスを移動するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで [Elastic IP] を選択します。

  3. Elastic IP アドレスを選択し、[Actions]、[Move to VPC scope] の順に選択します。

  4. 確認ダイアログボックスで、[Move Elastic IP] を選択します。

AMI とインスタンス

AMI は Amazon EC2 インスタンスを起動するためのテンプレートです。既存の EC2-Classic インスタンスに基づいて独自の AMI を作成し、その AMI を使用して VPC でインスタンスを起動できます。

EC2-Classic インスタンスを特定する

EC2-Classic と VPC の両方で実行されているインスタンスがある場合は、EC2-Classic インスタンスを特定できます。

Amazon EC2 コンソール

ナビゲーションペインで、[Instances (インスタンス)] を選択します。[VPC ID] 列で、各 EC2-Classic インスタンスの値は空白または - 記号です。[VPC ID] 列が表示されていない場合は、歯車アイコンを選択して列を表示します。

AWS CLI

次の describe-instances AWS CLI コマンドを使用します。--query パラメータには、VpcId の値が null であるインスタンスのみが表示されます。

aws ec2 describe-instances --query 'Reservations[*].Instances[?VpcId==`null`]'

AMI を作成する

EC2-Classic インスタンスを特定したら、そのインスタンスから AMI を作成できます。

Windows AMI を作成するには

詳細については、「カスタム Windows AMI の作成」を参照してください。

Linux AMI を作成するには

Linux AMI の作成に使用する方法は、インスタンスのルートデバイスタイプと、インスタンスが実行されるオペレーティングシステムのプラットフォームによって異なります。インスタンスのルートデバイスタイプを確認するには、[インスタンス] ページに移動してインスタンスを選択し、[ストレージ] タブ で [ルートデバイスタイプ] フィールドの情報を確認します。この値が ebs の場合、インスタンスは EBS-Backed です。この値が instance-storeの場合、インスタンスは、Instance Store-Backed です。また、describe-instances AWS CLI コマンドを使用してルートデバイスタイプを確認することもできます。

以下の表では、インスタンスのルートデバイスタイプ、およびソフトウェアプラットフォームに基づいて Linux AMI を作成するオプションを示しています。

重要

インスタンスタイプには、PV と HVM 仮想化の両方をサポートするものもありますが、どちらか一方のみサポートするものもあります。AMI を使用して現在のインスタンスタイプと異なるインスタンスタイプを起動する場合、そのインスタンスタイプで AMI が提供する仮想化のタイプがサポートされていることを確認します。AMI で PV 仮想化がサポートされ、HVM 仮想化をサポートするインスタンスタイプを使用する場合は、必要に応じて、基になる HVM AMI にソフトウェアを再インストールします。PV および HVM 仮想化の詳細については、「Linux AMI 仮想化タイプ」を参照してください。

インスタンスのルートデバイスタイプ アクション
EBS

インスタンスから EBS-backed AMI を作成します。詳細については、「Amazon EBS-Backed Linux AMI の作成」を参照してください。

インスタンスストア

AMI ツールを使用してインスタンスから instance store-backed AMI を作成します。詳細については、「Instance Store-Backed Linux AMI の作成」を参照してください。

インスタンスストア

instance store-backed インスタンスを EBS-backed インスタンスに変換します。詳細については、「Instance store-backed AMI を Amazon EBS-backed AMI に変換する」を参照してください。

(オプション) AMI を共有またはコピーする

AMI を使用して新しい AWS アカウントでインスタンスを起動するには、最初に AMI を新しいアカウントと共有する必要があります。詳細については、特定の AWS アカウントとの AMI の共有 を参照してください。

AMI を使用して別のリージョンの VPC でインスタンスを起動するには、最初に AMI をそのリージョンにコピーする必要があります。詳細については、AMI のコピー を参照してください。

(オプション) Amazon EBS ボリュームにデータを保存する

Amazon EBS ボリュームを作成し、物理ハードドライブを使用するように、そのボリュームを使用してインスタンスのデータをバックアップおよび保存できます。Amazon EBS ボリュームは、同じアベイラビリティーゾーンのどのインスタンスからでもアタッチおよびデタッチできます。EC2-Classic のインスタンスからボリュームをデタッチして、同じアベイラビリティーゾーンの VPC で起動する新しいインスタンスにアタッチできます。

Amazon EBS ボリュームの詳細については、次のトピックを参照してください。

Amazon EBS ボリュームのデータをバックアップするには、定期的にボリュームのスナップショットを作成します。詳細については、Amazon EBS スナップショットの作成 を参照してください。必要な場合は、スナップショットから Amazon EBS ボリュームを作成できます。詳細については、スナップショットからのボリュームの作成 を参照してください。

VPC でインスタンスを起動する

AMI を作成したら、Amazon EC2 インスタンス起動ウィザードを使用してインスタンスを VPC に起動できます。インスタンスは、既存の EC2-Classic インスタンスと同じデータと構成です。

注記

この機会を利用して、現行世代のインスタンスタイプにアップグレードできます。ただし、AMI が提供する仮想化のタイプ (PV または HVM) をインスタンスタイプがサポートしていることを確認してください。PV および HVM 仮想化の詳細については、「Linux AMI 仮想化タイプ」を参照してください。

New console
VPC でインスタンスを起動するには
  1. インスタンスを起動するための手順に従います。

  2. [Application and OS Images (Amazon Machine Image)] (アプリケーションおよび OS イメージ (Amazon マシンイメージ)) で [My AMIs] (自分の AMI) を選択し、[Owned by me](自分が所有) が選択されていることを確認して、作成した AMI を選択します。または、別のアカウントから AMI を共有した場合は、[Shared with me] (自分と共有) を選択し、EC2-Classic アカウントから共有した AMI を選択します。

  3. [Network settings] (ネットワーク設定) で、[Edit] (編集) (右側) を選択し、次の操作を実行します。

    1. [VPC] で、自分の VPC を選択します。

    2. [Subnet] (サブネット) で、必要なサブネットを選択します。

    3. [Security group name] (セキュリティ グループ名) で、VPC 用に作成したセキュリティグループを選択します。

  4. インスタンスタイプやキーペアなど、必要なその他の詳細を設定します。インスタンス起動ウィザードのフィールドについては、「定義済みのパラメータを使用したインスタンスの起動」を参照してください。

  5. [Summary] (概要) パネルでインスタンスの設定を確認し、[Launch instance] (インスタンスを起動) を選択します。

Old console
VPC でインスタンスを起動するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ダッシュボードで、[Launch Instance (インスタンスの起動)] を選択します。

  3. [ Choose an Amazon Machine Image] ページで、[My AMIs] カテゴリを選択し、作成した AMI を選択します。または、別のアカウントからの AMI を共有した場合は、[Ownership (所有権)] フィルタリストで [Shared with me (自分と共有)] を選択します。EC2-Classic アカウントからの共有した AMI を選択します。

  4. [Choose an Instance Type] ページで、インスタンスのタイプを選択し、[Next: Configure Instance Details] を選択します。

  5. [Configure Instance Details] ページで、[Network] リストから VPC を選択します。[Subnet] リストから必要なサブネットを選択します。必要な他の詳細を設定し、[Configure Security Group (セキュリティグループの設定)] ページが表示されるまでウィザードの次のページに進みます。

  6. [Select an existing group (既存のグループを選択)] を選択し、VPC 用に作成したセキュリティグループを選択します。[Review and Launch] を選択します。

  7. インスタンスの詳細を確認し、[Launch] を選択して、キーペアを指定し、インスタンスを起動します。

ウィザードの各ステップで設定できるパラメータの詳細については、「古いインスタンス起動ウィザードを使用してインスタンスを起動する」を参照してください。

Amazon RDS DB インスタンス

EC2-Classic DB インスタンスを同じリージョンの同じアカウントの VPC に移動できます。詳細については、Amazon RDS ユーザーガイド の「DB インスタンスの VPC の更新」を参照してください。

クラシックロードバランサー

EC2-Classic のClassic Load Balancer は VPC のClassic Load Balancer に移行します。またはこれを、Application Load Balancer あるいは Network Load Balancer に移行することもできます。詳細については、Elastic Load Balancing ユーザーガイドの「Classic Load Balancer の移行」を参照してください。

AWSSupport-MigrateEC2ClassicToVPC ランブックを使用する

AWSSupport-MigrateEC2ClassicToVPC ランブックは、EC2-Classic インスタンスを VPC に移行します。詳細については、「How do I migrate an EC2-Classic instance to a VPC?」を参照してください。

例: シンプルなウェブアプリケーションを移行する

この例では、AWS を使用して、ガーデニングウェブサイトをホストします。ウェブサイトを管理するには、EC2-Classic で 3 個のインスタンスを実行します。インスタンス A とインスタンス B は公開ウェブアプリケーションをホストします。これらのインスタンス間でトラフィックの負荷を分散するには Elastic Load Balancing を使用します。インスタンス A と B に Elastic IP アドレスを割り当てると、これらのインスタンスの設定と管理に使用する静的 IP アドレスが割り当てられます。インスタンス C は、ウェブサイトの MySQL データベースを保持します。ドメイン名 www.garden.example.com を登録し、Route 53 を使用すると、ロードバランサーの DNS 名と関連付けられたエイリアスレコードが設定されたホストゾーンが作成されます。


                EC2-Classic のウェブアプリケーション

VPC への移行の最初の部分では、ニーズに適合する VPC アーキテクチャの種類を決定します。この場合、次のように決定しました: ウェブサーバーに 1 つのパブリックサブネット、データベースサーバーに 1 つのプライベートサブネット。ウェブサイトが成長したら、サブネットにウェブサーバーとデータベースサーバーを追加できます。デフォルトでは、プライベートサブネットのインスタンスはインターネットにアクセスできません。ただし、パブリックサブネットのネットワークアドレス変換 (NAT) デバイスを介してインターネットアクセスを有効にすることができます。インターネットから提供されるデータベースサーバーの定期的な更新やパッチをサポートするように、NAT デバイスを設定できます。Elastic IP アドレスを VPC に移行し、パブリックサブネットでロードバランサーを作成してウェブサーバー間のトラフィックの負荷を分散します。


                VPC のウェブアプリケーション

VPC にウェブアプリケーションを移行するには、次の手順に従います。

  • [Create a VPC] (VPC の作成):詳細については、[Amazon VPC User Guide] (Amazon VPC ユーザーガイド) の [Create a VPC] (VPC の作成) を参照してください。VPC アーキテクチャシナリオの情報については、「Amazon VPC ユーザーガイド」の「Scenarios」(シナリオ) を参照してください。

  • セキュリティグループを設定する: EC2-Classic 環境では、ウェブサーバー用に 1 つのセキュリティグループ、データベースサーバー用にもう 1 つのセキュリティグループを設定します。Amazon EC2 コンソールを使用して、VPC の新しいセキュリティグループに、各セキュリティグループのルールをコピーします。詳細については、セキュリティグループ を参照してください。

    ヒント

    最初に他のセキュリティグループから参照されるセキュリティグループを作成します。

  • AMI を作成して新しいインスタンスを起動する: いずれかのウェブサーバーから AMI を作成し、データベースサーバーから 2 番目の AMI を作成します。その後、パブリックサブネットで代替ウェブサーバーを起動し、プライベートサブネットで代替データベースサーバーを起動します。詳細については、AMI を作成する を参照してください。

  • NAT デバイスを設定する: NAT インスタンスを使用している場合、プライベートサブネットからの HTTP および HTTPS トラフィックを許可するためのセキュリティグループを作成する必要があります。詳細については、「NAT インスタンス」を参照してください。NAT ゲートウェイを使用している場合は、プライベートサブネットからのトラフィックは自動的に許可されます。

  • データベースを設定する: EC2-Classic でデータベースサーバーから AMI を作成したとき、そのインスタンスに保存されているすべての設定情報は AMI にコピーされています。場合によっては、新しいデータベースサーバーに接続し、設定の詳細を更新する必要があります。例えば、EC2-Classic でウェブサーバーに完全な読み取り、書き込み、変更のアクセス許可を付与するようにデータベースを設定した場合、代わりに新しい VPC ウェブサーバーに同じアクセス許可を付与するように設定ファイルを更新する必要があります。

  • ウェブサーバーを設定する: ウェブサーバーは EC2-Classic のインスタンスと同じ設定にします。例えば、EC2-Classic でデータベースを使用するようにウェブサーバーを構成した場合、新しいデータベースインスタンスをポイントするようにウェブサーバーの設定を更新します。

    注記

    起動時に別の方法で指定しない限り、デフォルト以外のサブネットで起動されたインスタンスにデフォルトでパブリック IP アドレスは割り当てられません。新しいデータベースサーバーにパブリック IP アドレスが割り当てられていない可能性があります。この場合、新しいデータベースサーバーのプライベート DNS 名を使用するようにウェブサーバーの設定ファイルを更新できます。同じ VPC のインスタンスはプライベート IP アドレスを使用して互いに通信できます。

  • Elastic IP アドレスを移行する: Elastic IP アドレスと EC2-Classic のウェブサーバーの関連付けを解除し、VPC に移行します。移行した後、VPC 内の新しいウェブサーバーに関連付けることができます。詳細については、Elastic IP アドレス を参照してください。

  • 新しいロードバランサーを作成する: インスタンスへのトラフィックの負荷を分散するために引き続き Elastic Load Balancing を使用するには、VPC のロードバランサーのさまざまな設定方法を理解している必要があります。詳細については、Elastic Load Balancing ユーザーガイドを参照してください。

  • DNS レコードを更新する: パブリックサブネットのロードバランサーを設定した後、www.garden.example.com ドメインが新しいロードバランサーをポイントしていることを確認します。そのためには、Route 53 で DNS レコードとエイリアスレコードセットを更新します。Route 53 の使用方法の詳細については、「Route 53 の使用開始」を参照してください。

  • EC2-Classic のリソースをシャットダウンする: ウェブアプリケーションが VPC アーキテクチャ内で動作していることを確認した後、EC2-Classic のリソースをシャットダウンして、これらに対する課金を停止することができます。