Classic Load BalancerからALBにOne-stepでMigrationできるようになったのでやってみた

# Classic Load BalancerからALBにOne-stepで移動できるようになったのでやってみた

## 目的

Classic Load BalancerからApplication Load Balancer（以下、ALB）にポチで作成できるようになったので
リリース分を早速試してみた:sunglasses:


リリース内容
[New One-step Migration Wizard to Migrate a Classic Load Balancer](https://aws.amazon.com/jp/about-aws/whats-new/2017/11/new-one-step-migration-wizard-to-migrate-a-classic-load-balancer/)

## Classic Load Balancerの元設定

ほぼデフォルトのまま
nginxを2台ぶら下げているだけ

* elb名確認

```
# aws --profile PROFILE名 elb describe-load-balancers --load-balancer-name=test-elb01 --query 'LoadBalancerDescriptions[].LoadBalancerName' --output table

-----------------------
|DescribeLoadBalancers|
+---------------------+
|  test-elb01         |
+---------------------+
```

* instance id確認

```
# aws --profile PROFILE名 elb describe-load-balancers --load-balancer-name=test-elb01 --query 'LoadBalancerDescriptions[].Instances' --output table
-------------------------
| DescribeLoadBalancers |
+-----------------------+
|      InstanceId       |
+-----------------------+
|  i-aaaaaaaaaaaaaaaaa  |
|  i-bbbbbbbbbbbbbbbbb  |
+-----------------------+

```

* Listeners確認

```
# aws --profile PROFILE名 elb describe-load-balancers --load-balancer-name=test-elb01 --query 'LoadBalancerDescriptions[].ListenerDescriptions' --output table
------------------------------------------------------------------------
|                         DescribeLoadBalancers                        |
||                              Listener                              ||
|+--------------+--------------------+--------------------+-----------+|
|| InstancePort | InstanceProtocol   | LoadBalancerPort   | Protocol  ||
|+--------------+--------------------+--------------------+-----------+|
||  80          |  HTTP              |  80                |  HTTP     ||
|+--------------+--------------------+--------------------+-----------+|
```

* マネジメントコンソール上

![01.PNG](https://qiita-image-store.s3.amazonaws.com/0/66113/6f1cf380-4724-6064-5f05-f9288dcb3e3f.png)


## ALBにMigrationしてみる

* 手順

※マネジメントツコンソール上から操作

1. 対象のClassic Load Balancerを選択
2. 下のタブの「移行」を選択
3. 「ALB移行ウィザードを起動」をクリック
4. 確認画面が表示
5. 変更するものは変更して
6. 作成をクリック
7. チェック・起動が走って
8. 作成完了画面が出る

* 手順1～3

![02.PNG](https://qiita-image-store.s3.amazonaws.com/0/66113/18363ffc-04cd-8f19-c750-69f1ef57d142.png)

* 手順4～6

![03.PNG](https://qiita-image-store.s3.amazonaws.com/0/66113/2094d272-4eac-d097-63ff-fe5f00bb2328.png)

* 手順7,8

![04.PNG](https://qiita-image-store.s3.amazonaws.com/0/66113/0a56b4e9-c67e-8a93-1cf1-2418e2eb6126.png)

うーん簡単！:smiley:

## 作成されたALBを確認

* alb名

```
# aws --profile PROFILE名 elbv2 describe-load-balancers  --names=test-elb01 --query 'LoadBalancers[].LoadBalancerName' --output table

-----------------------
|DescribeLoadBalancers|
+---------------------+
|  test-elb01         |
+---------------------+
```

* targetgroup名

```
# aws --profile PROFILE名 elbv2 describe-target-groups --names=test-elb01 --query 'TargetGroups[].TargetGroupName' --output table
----------------------
|DescribeTargetGroups|
+--------------------+
|  test-elb01        |
+--------------------+
```

* Instane ID・healthcheck

```
# aws --profile PROFILE名 elbv2  describe-target-health --target-group-arn=TARGETGROUPのARN --query 'TargetHealthDescriptions[].[Target.Id,TargetHealth.State,Target.Port]' --output table
------------------------------------------
|          DescribeTargetHealth          |
+----------------------+-----------+-----+
|  i-aaaaaaaaaaaaaaaaa |  healthy  |  80 |
|  i-bbbbbbbbbbbbbbbbb |  healthy  |  80 |
+----------------------+-----------+-----+
```


* マネージドコンソール上


![05.PNG](https://qiita-image-store.s3.amazonaws.com/0/66113/5d1689e5-dbd4-9150-d032-fa62afbbac9d.png)

ALBが同じ名前で作成されてますね！！:wink:


## 結果

ELBを元にALBをワンクリックで作成することが出来ました！！:beers:

## Classic Load BalancerからALBに入れ替えるには

まだサービスにはアサインされていないので
以下の手順が必要

1. ALBへのアクセスの動作確認
2. Route53などのDNSで、サービスのDNSレコードをClassic ELBからALBへ変更する

※注意点
ELB配下のサーバたちがそのままALBに入れ替わるってことではないので
気をつけてください :tiger: