

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Classic Load Balancer の移行
<a name="migrate-classic-load-balancer"></a>

Elastic Load Balancing は、Application Load Balancer、Network Load Balancer、Gateway Load Balancer、Classic Load Balancer などのロードバランサーをサポートします。各ロードバランサータイプの機能の違いの詳細については、「[Elastic Load Balancing の機能](https://aws.amazon.com/elasticloadbalancing/features/)」を参照してください。

また、VPC にある既存の Classic Load Balancer を、Application Load Balancer または Network Load Balancer に移行させることもできます。

## Classic Load Balancer からの移行のメリット
<a name="migration-benefits"></a>

ロードバランサーの各タイプにはそれぞれ独自の機能、関数、設定があります。各ロードバランサーの利点を確認し、最適なタイプを選定します。

------
#### [ Application Load Balancer ]

**Classic Load Balancer の代わりに Application Load Balancer を使用すると以下の利点があります。**

以下をサポート:
+ [パスの条件](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions)、[ホストの条件](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#host-conditions)、[HTTP ヘッダーの条件](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#http-header-conditions)。
+ 特定の URL から別の URL にリクエストをリダイレクトし、1つの EC2 インスタンス上の複数のアプリケーションにリクエストをルーティングする。
+ カスタムの HTTP レスポンスを返す。
+ IP アドレス別にターゲットを登録し、Lambda 関数をターゲットとして登録する。ロードバランサーの VPC 外のターゲットを含める。
+ 企業 ID またはソーシャル ID によりユーザーを認証する。
+ Amazon Elastic Container Service (Amazon ECS) コンテナ化アプリケーション。
+ 各サービスのヘルスを個別にモニタリングする。

アクセスログには追加情報が含まれ、圧縮形式で保存されます。

ロードバランサーのパフォーマンスが全体的に向上します。

------
#### [ Network Load Balancer ]

**Classic Load Balancer の代わりに Network Load Balancer を使用すると、次の利点があります。**

以下をサポート:
+ 静的 IP アドレス。ロードバランサーに対して有効になっているサブネットごとに 1 つの Elastic IP アドレスを割り当てることができます。
+ ロードバランサーの VPC 外のターゲットを含め、IP アドレス別にターゲットを登録する。
+ 1 つの EC2 インスタンスで複数のアプリケーションへのリクエストをルーティングする。
+ Amazon Elastic Container Service (Amazon ECS) コンテナ化アプリケーション。
+ 各サービスのヘルスを個別にモニタリングする。

揮発性のワークロードを処理し、毎秒数百万のリクエストに対応できる能力｡

------

## 移行ウィザードを使用した移行
<a name="migration-wizard"></a>

移行ウィザードは、Classic Load Balancer の設定を使って同等の Application Load Balancer または Network Load Balancer を作成します。他の方法に比べ、Classic Load Balancer の移行に要する時間と労力を削減できます。

**注記**  
移行ウィザードは新しいロードバランサーを作成します。このウィザードは、既存の Classic Load Balancer を Application Load Balancer または Network Load Balancer に変換しません。トラフィックを新たに作成されたロードバランサーにリダイレクトするには手動で行う必要があります。

**制限事項**
+ 新しいロードバランサーの名前は、同じリージョン内にある同じタイプの既存のロードバランサーと同じにすることはできません。
+ Classic Load Balancer のキーに `aws:` プレフィックスを含むタグがあると、そのタグは移行されません。

**Application Load Balancer に移行する場合**
+ Classic Load Balancer にサブネットが 1 つしかない場合、2 つ目のサブネットを指定する必要があります。
+ Classic Load Balancer に TCP ヘルスチェックを使用する HTTP/HTTPS リスナーがある場合、ヘルスチェックのプロトコルは HTTP に更新され、パスは「/」に設定されます。
+ Classic Load Balancer に、カスタムのまたはサポートされていないセキュリティポリシーを使用する HTTPS リスナーがある場合、移行ウィザードは新しいロードバランサータイプのデフォルトのセキュリティポリシーを使用します。

**Network Load Balancer に移行する場合**
+ 次のインスタンスタイプは、新しいターゲットグループには登録されません。C1、CC1、CC2、CG1、CG2、CR1、CS1、G1、G2、HI1、HS1、M1、M2、M3、T1。
+ Classic Load Balancer の一部のヘルスチェック設定は、新しいターゲットグループに移行できない場合があります。このような状況は、移行ウィザードの概要セクションに変更として表示されます。
+ Classic Load Balancer に SSL リスナーがある場合、移行ウィザードは SSL リスナーの証明書とセキュリティポリシーを使用して TLS リスナーを作成します。

### 移行ウィザードのプロセス
<a name="migration-wizard-process"></a>

**移行ウィザードを使用して Classic Load Balancer を移行するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインの [**ロードバランシング**] で [**ロードバランサー**] を選択します。

1. 移行させる Classic Load Balancer を選択します。

1. ロードバランサーの **[詳細]** セクションで **[移行ウィザードを起動]**を選択します。

1. **[Application Load Balancer に移行]** または **[Network Load Balancer に移行]** を選択して移行ウィザードを開きます。

1. **[新しいロードバランサーに名前を付ける]** の **[ロードバランサー名]** に新しいロードバランサーの名前を入力します。

1. **[新しいターゲットグループに名前を付けて、ターゲットを確認]** の **[ターゲットグループ名]** に新しいターゲットグループの名前を入力します。

1. (オプション) **[ターゲット]** では、新しいターゲットグループに登録されるターゲットインスタンスを確認できます。

1. (オプション) **[タグを確認]** では、新しいロードバランサーに適用されるタグを確認できます。

1. **[Application Load Balancer の概要]** または **[Network Load Balancer の概要]** で、移行ウィザードによって割り当てられた設定オプションを確認し、確定します。

1. 設定に問題がなければ、**[Application Load Balancer を作成]** または **[Network Load Balancer を作成]** を選択して移行を開始します。

## ロードバランサーコピーユーティリティを使用した移行
<a name="load-balancer-copy-utility"></a>

ロードバランサーのコピーユーティリティは、 AWS GitHub ページの Elastic Load Balancing Tools リポジトリで使用できます。

**リソース**
+ [Elastic Load Balancing Tools](https://github.com/aws/elastic-load-balancing-tools)
+ [Classic Load Balancer to Application Load Balancer copy utility](https://github.com/aws/elastic-load-balancing-tools/tree/master/application-load-balancer-copy-utility)
+ [Classic Load Balancer to Network Load Balancer copy utility](https://github.com/aws/elastic-load-balancing-tools/tree/master/network-load-balancer-copy-utility)

## ロードバランサーを手動で移行する
<a name="manual-migration"></a>

以下の情報は、VPC 内の既存の Classic Load Balancer に基づいて、新しい Application Load Balancer または Network Load Balancer を手動で作成するための一般的な手順を示しています。 AWS マネジメントコンソール、、 AWS CLIまたは AWS SDK を使用して移行できます。詳細については、「[Elastic Load Balancing の使用開始](load-balancer-getting-started.md)」を参照してください。

移行プロセスを完了すると、新しいロードバランサーの機能を利用できます。

### 手動による移行のプロセス
<a name="manual-migration-process"></a>

**ステップ 1: 新しいロードバランサーを作成する**  
移行する Classic Load Balancer と同等の設定でロードバランサーを作成します。

1. 新しいロードバランサーを、Classic Load Balancer と同じスキーム (インターネット向けまたは内部向け)、サブネット、セキュリティグループを設定して作成します。

1. ロードバランサーの 1 つのターゲットグループを、Classic Load Balancerと同じヘルスチェック設定で作成します。

1. 次のいずれかを行ってください。
   + Classic Load Balancer が Auto Scaling グループに接続されている場合は、ターゲットグループを Auto Scaling グループに接続します。これにより、Auto Scaling インスタンスがターゲットグループに登録されます。
   + EC2 インスタンスをターゲットグループに登録します。

1. 1 つ以上のリスナーを作成し、各リスナーに、リクエストをターゲットグループに転送するデフォルトのルールを設定します。HTTPS リスナーを作成する場合は、Classic Load Balancer 用に指定したのと同じ証明書を指定できます。デフォルトのセキュリティポリシーを使用することをお勧めします。

1. Classic Load Balancer がタグ付けされている場合は、それらを見直して、関連性のあるタグを新しいロードバランサーに追加します。

**ステップ 2: トラフィックを新しいロードバランサーに段階的にリダイレクトする**  
インスタンスを新しいロードバランサーに登録したら、古いロードバランサーから新しいロードバランサーにトラフィックをリダイレクトするプロセスを開始できます。これにより、アプリケーションの可用性に与えるリスクを最小限に抑えながら、新しいロードバランサーをテストできます。

**トラフィックを新しいロードバランサーに段階的にリダイレクトするには**

1. インターネットに接続したウェブブラウザのアドレスフィールドに、新しいロードバランサーの DNS 名を貼り付けます。すべて適切な場合は、ブラウザにアプリケーションのデフォルトページが表示されます。

1. ドメイン名を新しいロードバランサーに関連付ける新しい DNS レコードを作成します。DNS サービスが重み付けをサポートしている場合は、新しい DNS レコードに重み 1 を、古いロードバランサーの既存の DNS レコードに重み 9 を指定します。これで、トラフィックの 10% が新しいロードバランサーに、90% が古いロードバランサーにリダイレクトされます。

1. 新しいロードバランサーをモニタリングして、トラフィックが受信され、リクエストがインスタンスにルーティングされていることを確認します。
**重要**  
DNS レコードの有効期限 (TTL) は 60 秒です。つまり、ドメイン名を解決する DNS サーバーは、変更が反映される間、レコード情報を 60 秒間キャッシュに保持します。したがって、これらの DNS サーバーは、前のステップを完了してから最大 60 秒間、トラフィックを引き続き古いロードバランサーにルーティングできます。伝達の実行中、トラフィックは両方のロードバランサーにリダイレクトされる可能性があります。

1. すべてのトラフィックが新しいロードバランサーにリダイレクトされるまで、DNS レコードの重みの更新を繰り返します。完了したら、古いロードバランサーの DNS レコードを削除できます。

**ステップ 3: ポリシー、スクリプト、およびコードを更新する**  
Classic Load Balancer を Application Load Balancer または Network Load Balancer に移行した場合は、必ず以下のことを行ってください。
+ API バージョン 2012-06-01 を使用する IAM ポリシーを更新して、バージョン 2015-12-01 を使用します。
+ `AWS/ELB` 名前空間の CloudWatch メトリクスを使用するプロセスを更新して、`AWS/ApplicationELB` または `AWS/NetworkELB` 名前空間のメトリクスを使用します。
+ **aws elbv2** AWS CLI コマンドを使用して**aws elb** AWS CLI コマンドを使用するスクリプトを更新します。
+ `AWS::ElasticLoadBalancing::LoadBalancer` リソースを使用する CloudFormation テンプレートを更新して、 `AWS::ElasticLoadBalancingV2`リソースを使用します。
+ Elastic Load Balancing API バージョン 2012-06-01 を使用するコードを更新して、バージョン 2015-12-01 を使用します。

**リソース**
+ *AWS CLI コマンドリファレンス* の [elbv2](https://docs.aws.amazon.com/cli/latest/reference/elbv2/index.html)
+ [Elastic Load Balancing API リファレンスバージョン 2015-12-01](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/)
+ [Elastic Load Balancing の Identity and Access Management](load-balancer-authentication-access-control.md)
+ *Application Load Balancer ユーザーガイド*の [Application Load Balancer metrics](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html#load-balancer-metrics-alb)
+ *Network Load Balancer ユーザーガイド*の [Network Load Balancer metrics](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html#load-balancer-metrics-nlb)
+ *AWS CloudFormation ユーザーガイド* の [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html)

**ステップ 4: 古いロードバランサーを削除する**  
古い Classic Load Balancer は、以下を行った後に削除できます。
+ すべてのトラフィックを古いロードバランサーから新しいロードバランサーにリダイレクトしました。
+ 古いロードバランサーにルーティングされたすべての既存のリクエストが完了しました。

## ユーザーが Classic Load Balancer を作成できないようにする
<a name="require-elbv2-load-balancers"></a>

ユーザーがアカウントに Classic Load Balancer を作成できないようにする IAM ポリシーを作成できます。

[Elastic Load Balancing V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselasticloadbalancingv2.html) API と [Elastic Load Balancing V1](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselasticloadbalancing.html) API の両方が `CreateLoadBalancer` API アクションを提供します。Classic Load Balancer を作成するときは、ロードバランサーとリスナーの両方を作成する V1 API アクションを使用します。Application Load Balancer、Network Load Balancer、または Gateway Load Balancer を作成するときは、ロードバランサーのみを作成する V2 API アクションを使用します。V2 API は、ロードバランサーの作成後にリスナーを作成するために使用する `CreateListener` アクションを提供します。

次のポリシーは、リスナープロトコルが指定されている場合、ロードバランサーを作成するアクセス許可をユーザーに拒否します。Classic Load Balancer の作成時に少なくとも 1 つのリスナーを設定する必要があるため、このポリシーはユーザーが Classic Load Balancer を作成できないようにします。これらのロードバランサーとそのリスナーを作成するための個別の API アクションがあるため、ユーザーが他のタイプのロードバランサーを作成するのを防ぐことはできません。

```
{
    "Version": "2012-10-17",		 	 	 
    "Effect": "Deny",
    "Action": "elasticloadbalancing:CreateLoadBalancer",
    "Resource": [
        "arn:aws:elasticloadbalancing:*:*:loadbalancer/*"
    ],
    "Condition": {
        "Null": {
            "elasticloadbalancing:ListenerProtocol": false
        }
    }
}
```