EC2インスタンスのIPアドレスを固定させる

## 今までの準備

- [Route53でホストゾーンの作成](https://qiita.com/miyuki_samitani/items/0d595ea63b805de1ffa1)
- [EC2インスタンス作成～ログインまで(画像つき)](https://qiita.com/miyuki_samitani/items/2ace2bb5d7874f919676)
- [EC2インスタンス(CensOS7)をwebサーバとして起動しドメインで表示させる](https://qiita.com/miyuki_samitani/items/01d5865864c0f7d5b723)

## 固定させる理由は？

前回の、[EC2インスタンス(CensOS7)をwebサーバとして起動しドメインで表示させる]()こちらの記事を見ていただければわかるのですが、
EC2インスタンスはIPv4パブリックIPは起動するごとに変更されます。
それに伴い、Route53のAレコードの変更が必要になります。
→ 起動するごとにいろいろ設定しないといけないのでめんどくさい！！！ので、IPアドレスを固定化させます。


## 固定化するには？

`ElasticIP`というものを使います。
ざっくり説明すると
EC2インスタンスなどでグローバルIPアドレスを固定したい場合に使用します。
詳しくはこちら → [Elastic IP アドレス](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)

## ElasticIPを作る

- EC2 > ネットワーク＆セキュリティ > ElasticIP に進む

今は何もない状態なので、空です。
`ElasticIPアドレスの割り当て`を行います。

![Elastic IP アドレス _ EC2 Management Console - Google .png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/e9f6e0a0-b974-8ac2-f054-4ba603beef5e.png)

- ElastcIPアドレスの割り当て

どのようなIPアドレスを割り当てするかという選択肢ですが
他に選べないので`AmazonのIPv4アドレスプール`から割り当てられるようにします

![Elastic IP アドレスの割り当て _ EC2 Management Console - Go.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/22573c4c-37ab-b70a-db56-14d8ce46bf51.png)

- 割り当て完了

もう割り当てられました。
新しく割り当てられたElasticIPが表示されます。

![無題 - ペイント 2020-09-16 21.33.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/35a4391e-9b2e-462d-ec12-3e68a3b092b5.png)

## EC2インスタンスに設定を行う

- EC2インスタンスのインスタンスIDを確認

`i-xxxxxx` ってやつですね。

![無題 - ペイント 2020-09-16 21.41.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/713fc1b3-3c77-8bd5-e8d8-3cb5fcbb7269.png)

- ElasticIPの関連付け

ElasticIPの設定画面へ行き、先程割り当てしたIPアドレスにチェックを入れて
ElasticIPアドレスの関連付けを行います。
これをすることによって、`このIPアドレスは、このインスタンスに紐付いてる`という状態を作ることが出来ます。

![無題 - ペイント 2020-09-16 21.38.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/205a5278-d61c-7dbc-c898-5d634bb79286.png)

- ElasticIPアドレスの関連付け設定

内容としては以下。
```
リソースタイプ : インスタンス
インスタンス   : 先程EC2で確認したインスタンスID(i-xxxxxで始まるもの)
```
これがOKであれば、関連付ける

![無題 - ペイント 2020-09-16 21.44.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/c43c5fd8-b2ab-526f-43f4-32cda17799af.png)

- ElasticIPアドレスの関連付け完了

ElasticIPアドレスの一覧画面に戻ってきて、
今まで書かれていなかった`関連付けられたインスタンス ID`に関連付けられたインスタンスIDの値が入りました。
これで関連付け完了。

![無題 - ペイント 2020-09-16 21.46.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/8012d3d0-6775-e3b3-c89c-d81804cde73e.png)


## Route53のAレコードを書き換え

↑で、割り当てたElasticIPアドレスをEC2に紐付けることが出来たので
前回`EC2のIPv4パブリックIP`を記載した箇所を、
今回は`ElasticIPアドレス`に変更します。

- まずElasticIPアドレスのIPを確認

![無題 - ペイント 2020-09-16 22.04.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/df6d514b-eb1d-ca10-656a-efec5420f739.png)

- Route53の設定へ進む

![Route 53 Console - Google Chrome 2020-09-16 21.55..png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/00c16c79-fff7-6134-9edf-e6dd2a099b8d.png)


![無題 - ペイント 2020-09-16 21.56.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/2a4ecd85-b53c-9185-5f14-05acd522c6c5.png)

- 変更するドメインにチェックを入れる

`www.domainname.com` にチェックを入れ、編集に進む

![無題 - ペイント 2020-09-16 21.57.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/f389ef98-6a86-eab2-48a4-18e7fecd74a3.png)

- IPアドレスの書き換え

`値/トラフィックのルーティング先`に書かれているEC2インスタンスのIPv4パブリックIPを
ElasticIPアドレスに書き換えを行い、変更を保存

![無題 - ペイント 2020-09-16 21.59.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/ed629960-e838-13fb-36c9-18f9bc592c6b.png)

- 一覧に戻る

一覧に戻ると、`www.domainname.com` のIPアドレア雨がElasticIPアドレスに書き換わりました。

![無題 - ペイント 2020-09-16 22.08.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/2a34cf9c-6ae9-6b95-fd6f-a7796b68d849.png)


## ブラウザで表示(ElasticIPをつけた状態)

- ブラウザで表示させます。

`http://domainname.com/index.html` で検索すれば以下のように見ることが出来ました。

![無題 - ペイント 2020-09-16 22.12.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/9b01fef5-f36d-95a3-6e19-62d40c56a7be.png)


## EC2インスタンスの再起動を行う

ElasticIPをつけた理由は、
`EC2インスタンスを再起動してもIPアドレスが書き換わらないようにするため`です。
ですので、EC2インスタンスの再起動を行います。

- インスタンスの停止

停止するインスタンスにチェックを入れて
アクション > インスタンスの状態 > 停止 と進みます

![無題 - ペイント 2020-09-16 22.16.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/662e76a2-6dfa-ca21-ecb9-1a86067fec85.png)

- 確認

本当に止めていいか？の確認があるので、停止するに進みます

![無題 - ペイント 2020-09-16 22.18.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/14137b3f-7b50-3e90-ea04-e86719b5b483.png)

- 一覧に戻る

少し時間が立つと、インスタンスの状態は`stopped`になります

![無題 - ペイント 2020-09-16 22.20.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/4918ea5a-5663-21c8-b1de-bc58cad4e29c.png)

- インスタンスの開始

開始するインスタンスにチェックを入れ、
アクション > インスタンスの状態 > 開始 へ進みます

![無題 - ペイント 2020-09-16 22.21.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/501afc7a-14f7-40aa-1ee4-d0e0c6a84734.png)

- 確認

本当に開始していいか？と聞かれるので、開始するに進みます

![1インスタンス _ EC2 Management Console - Google Chrome 20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/772a4cc4-f696-1e9a-e06d-3cdc608b69d9.png)

- 一覧に戻る

少し時間が立つと、インスタンスの状態は`running`になります。

![無題 - ペイント 2020-09-16 22.23.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/ab6c3452-0202-0853-de9f-9575215a8917.png)

## ブラウザで表示(ElasticIPをつけた状態で再起動後)

- ブラウザで表示させます。

`http://domainname.com/index.html` で検索すれば以下のように見ることが出来ました。
これで、再起動後に無駄な作業が少なくなりました。

![無題 - ペイント 2020-09-16 22.30.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/3cb1216e-2f16-d905-c5ad-69494055aacb.png)


## 注意

ElasticIPは、割り当てるだけでは費用はかかりませんが
EC2インスタンスに関連付けを行うと費用がかかるようになります。
こちらのサイト[EC2に関連付けるEIPが課金される場合、1か月に最大いくらの料金が請求されますか？](https://cloud5.jp/ec2-eip/)にも書かれていますが、
大体1ヶ月関連しっぱなしにすると400円程度かかる計算です。

## 参考
- [EC2に関連付けるEIPが課金される場合、1か月に最大いくらの料金が請求されますか？](https://cloud5.jp/ec2-eip/)