【AWS】S3とRoute53についてまとめてみた

## S3とは？
Simple Strage Serviceが正式名称であり、Sが3つ並ぶことからS3と呼ばれます。
オブジェクトストレージサービスであり安価で非常に耐久性が高いです。

## オブジェクトストレージ（HTTPS接続）とは？
HTTPSのプロトコルで通信するためセキュリティは非常に強固です。
ただEBS（ブロックストレージ=SCSI(スカジー)接続）やEFS（ファイルサーバー=LAN接続）と比べて読み書き速度が遅いです。
ですが、多数の大きなファイルを取り扱うのに向いており、またAPIを使用した開発も簡単です。

### S3のイメージ構造
バケットの下にフォルダやデータを設置する。
頂点のフォルダを**バケット**、フォルダーを**プリフィクス**、データを**オブジェクト**という。

![test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/96c88e04-bd83-b1fa-beb8-0d255cca198c.png)

例えば、バケット名が**sample**、プリフィクス名が**folder1**、データが**photo.jpg**だった場合、
アクセスURLは、**https://sample.s3-ap-northeast-1.amazonaws.com/forder1/photo.jpg**となります。

### セキュリティ
デフォルトではアカウント管理者及びルートユーザーのみアクセスが可能です。
権限管理はIAMで行います。
特定のIPアドレスのみ許可することや、アカウント単位、バケット単位、オブジェクト単位で設定することが可能です。

```json:ポリシー
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ListBucketRstIP",
      "Effect": "Allow",
      "Principal": "*", // すべての権限を委譲されたサービス
      "Action": "s3:ListBucket", //s3のバケットを参照できる
      "Resource": "arn:aws:s3:::sample-bucket", // s3のsample-bucketに対して
      "Condition": {
        "StringEquals": {
          "aws:SourceIp": "12.34.56.789" // IPアドレスを指定
        }
      }
    }
  ]
}
```

### 静的ホスティング機能
![test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/a0bb14f0-4673-66a3-e988-e7c42cf7a28a.png)

### ストレージクラス
| ストレージクラス     | 説明                                                                         |
| -------------------- | ---------------------------------------------------------------------------- |
| 標準                 | デフォルトのストレージクラス                                                 |
| 標準-IA              | 標準に比べたらオブジェクト格納料金が安価。しかしデータの読み出しに課金される |
| Intelligent-Tiering  | 使用量に合わせて調整してくれる                                               |
| 1 ゾーン-IA          | 標準-IA よりも安価。データの冗長率が低く、データの読み出しに課金される       |
| Glacier              | とても安いが、データの読み出しに課金及び数分〜数時間かかる                   |
| Glacier Deep Archive | さらに安いが、データの読み出しに課金及び長時間（12 時間以内）かかる          |

### コストに関して
#### 保管料
どのストレージプランを採用するのかで変わる
#### 転送量
受信・同一リージョンのAWSサービスとの連携は無料、送信は課金されます。
#### リクエスト料
GET/PUT/POST/LIST/COPYなどのリクエスト数によって課金されます。

## Route53とは？
フルマネージド型のDNSサービスです。

![draw.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/c85b14ff-9003-d837-178f-92d20f493374.png)

### ルーティングポリシーとは？
#### ①シンプルルーティング
基本的にはシンプルルーティングを採用する。
テスト環境で構築して完成したらRoute 53を通す。
![draw.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/f03e5817-14eb-d13c-5fee-ef106583a711.png)

#### ②加重ルーティング
1つのLBに８０％、もう1つのLBに２０％ルーティングをさせる。
使用ケースとしては、ABテストです。

#### ③レイテンシールーティング
複数のリージョンでサービスを提供するときに使います。
例えば東京リージョンには100msで流せるが、米国西部には400msかかるときは、
東京リージョンを優先するという感じです。

#### ④位置情報ルーティング
先ほどは応答速度で判断するが、これはクライアント側の現在地によってリージョンが変化します。
米国在住の場合は、米国西部に、日本在住の場合は東京にという感じです。

#### ⑤複数値回答ルーティング
ロードバランサーに似た仕組み。

#### ⑥フェイルオーバールーティング
エラーが出た際に、ドメインに通信してくださいという優先順位を決めることができる＝つまりヘルスチェックが可能になる。

### レコードとは？
これら5つをまとめてホストゾーンと呼ぶ。

#### Aliasレコード
ドメインとAWSサービスの関連付けを行う。
#### Aレコード
ドメインとIPv4アドレスの関連付けを行う
#### AAAAレコード
ドメインとIPv6アドレスの関連付けを行う
#### NSレコード
ドメイン情報を管理するサーバー
#### SOAレコード
ドメインの管理情報

## それでは、ハンズオンをやっていきましょう！
### アーキテクチャ
![aws.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/d050db04-f324-7baf-4468-5c6ef493b7f7.png)

### 1. AWSへログイン
### 2. 東京リージョンになっていることを確認
![スクリーンショット 2021-05-01 14.21.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/73a9450b-47d7-5c13-54a7-e5e882db1e49.png)

### 3. VPCを作成（IP：10.0.0.0/21）
■ルート
コンソールで「VPC」と検索→左ペイン内の「VPC」を選択→「VPCを作成」を選択

![スクリーンショット 2021-05-01 14.24.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/2cda6785-513b-61a1-de80-15562d8439e6.png)

### 4. サブネットを作成（IP:10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24）
■ルート
コンソールで「VPC」と検索→左ペイン内の「サブネット」を選択→「サブネットを作成」を選択

#### Public Subnetを作成
WordPressに使うサブネットを作成します。

![スクリーンショット 2021-05-01 14.27.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/a9a204ca-5384-1b74-f1ce-e38b6d0522d2.png)

#### Private Subnetを作成
RDB(MySQL)に使うサブネットを作成します。

![スクリーンショット 2021-05-01 14.29.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/be11f4be-8af3-5c26-ffcb-58112991fc7e.png)

### 5. Publicサブネットをインターネットに接続するためにInternet Gatewayを作成
■ルート
コンソールで「VPC」と検索→左ペイン内の「インターネットゲートウェイ」を選択→「インターネットゲートウェイの作成」を選択

![スクリーンショット 2021-05-01 14.43.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/074ac6fa-fd66-59c4-a9ee-0b75097d966f.png)

これではVPCとアタッチできていないので、インターネットへ接続できません。
なのでアタッチさせましょう！
![スクリーンショット 2021-05-01 14.44.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/1bc732ed-4d5e-8624-4c6c-633fdf04010e.png)
これでアタッチしました。

### 6. EC2がインターネット接続するためにルートテーブルを作成
■ルート
コンソールで「VPC」と検索→左ペイン内の「サブネット」を選択→「Public-Subnet1」を選択→「ルートテーブル」を選択→「ルート」へ移動→「ルートを編集」を選択

![スクリーンショット 2021-05-01 14.49.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/1943619f-47f3-3ab3-5866-f6a069afefb2.png)

### 7. Publicサブネット内にEC２を構築
■ルート
コンソールで「EC2」と検索→左ペイン内の「インスタンス」を選択→「インスタンスを起動」を選択

■ステップの流れ
STEP１　Amazon Linux 2 AMI
STEP2　t2.micro
STEP3　「ネットワーク」、「サブネット」、「パブリックIP」を変更
![スクリーンショット 2021-05-01 14.35.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/29a3ea9a-b714-3402-a994-52547b575b9f.png)
STEP4　そのままでOK
STEP5　Name＝WEBSERVER1で設定
STEP6　セキュリティグループを変更
![スクリーンショット 2021-05-01 14.37.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/d023ba9f-f697-9ae5-4f06-389d7bb0a3e9.png)
STEP7　キーペアの作成
![スクリーンショット 2021-05-01 14.38.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/e9eed1f2-8a0a-9565-8b68-361c77a03636.png)

#### SSH接続でログイン
```terminal:ターミナル
// ①キーペアがあるところへ移動
$ cd desktop

// ②キーペア発見
$ ls -l keypair.pem
-rw-r--r--@ 1 ryo  staff  1704  5  1 14:38 keypair.pem

// ③権限を４００に変更
$ chmod 400 keypair.pem

// ④SSH接続
$ ssh -i keypair.pem ec2-user@(パブリックIPアドレス)

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|
```

#### EC2にWordPressを導入
```terminal:ターミナル
// 権限が足りないので権限をrootに移動
$ sudo su -

// EC2のパッケージを最新の状態にアップデート
$ yum -y update

// WordPressが動くために必要なツールをダウンロード（PHP, Apache, MySQL）
$ amazon-linux-extras install php7.2 -y
$ yum -y install mysql httpd php-mbstring php-xml gd php-gd

// Apacheが再起動後も自動的に動くようにする
$ systemctl enable httpd.service

// Apacheをスタート状態に
$ systemctl start httpd.service

// カレントディレクトリにWordPressの最新パッケージを入れる
$ wget http://ja.wordpress.org/latest-ja.tar.gz ~/

// あるか確認する
$ ls -l
total 16076
-rw-r--r-- 1 root root 16458939 Apr 21 00:00 latest-ja.tar.gz（あった）

// 拡張子がgzなので展開しましょう
$ tar zxvf ~/latest-ja.tar.gz

// ディレクトリごと/var/www/htmlへコピーする
$ cp -r ~/wordpress/* /var/www/html/

// /var/www/htmlをapacheのユーザーに権限変更
$ chown apache:apache -R /var/www/html
```

#### AMIの作成
作成した**WEBSERVER１**を停止してAMIを作成します。
■ルート
コンソールで「EC2」と検索→左ペイン内の「インスタンス」を選択→「インスタンスの状態」から停止を選択
コンソールで「EC2」と検索→左ペイン内の「インスタンス」を選択→「アクション」から「イメージを作成」を選択

![スクリーンショット 2021-05-02 21.35.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/465d57aa-3800-7bd0-5166-9cfc742a6c30.png)

では作成したAMIを使ってインスタンスを作成しましょう。
ステップ５のタグは、**Name＝WEBSERVER2**とします。
![スクリーンショット 2021-05-02 21.40.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/fd7614fd-a09d-d091-8593-ed38314b6269.png)
![スクリーンショット 2021-05-02 21.42.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/8c483ec6-1284-fb80-7e10-147b333d8d82.png)

### 8. PrivateサブネットにRDSを構築
RDSには、**エンドポイント通信**という機能がありました。
もし通信障害などが発生して、親のRDSが使えなくなった時子のRDSに接続してくれる機能です。
つまり、このことから**異なるAZにサブネットがないとRDSは使えません**。

ということで複数のサブネットにまたがる形でRDSは構築されるので、
**サブネットグループ**というものが必要になります。

■ルート
コンソールで「RDS」と検索→左ペイン内の「サブネットグループ」を選択→「DB サブネットグループを作成」を選択

![スクリーンショット 2021-05-01 15.04.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/66a4ad75-be0e-13c7-945e-b623b74d7bf6.png)

それでは次に、DBを作成していきましょう。
■ルート
コンソールで「RDS」と検索→左ペイン内の「データベース」を選択→「データベースの作成」を選択

![スクリーンショット 2021-05-01 15.10.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/8d20faa0-e801-423d-de9f-09398b4d1e52.png)
![スクリーンショット 2021-05-01 15.10.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/c8b29bfb-0625-442b-586a-e1088ca689da.png)
![スクリーンショット 2021-05-01 15.11.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/1e9937ea-0fa3-9e8d-f468-1f9d6a24834e.png)
![スクリーンショット 2021-05-01 15.11.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/c6fc8cd0-2efb-5c26-f551-6d0e5d937447.png)
![スクリーンショット 2021-05-01 15.11.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/728b9689-044e-d3f4-dc55-98a5f4cc6f1f.png)

次にRDSで作ったセキュリティグループを修正します。
■ルート
コンソールで「VPC」と検索→左ペイン内の「セキュリティグループ」を選択→「RDS-SG-1」を選択

DBは重要な情報が入っているため誰でも彼でもアクセスできると困ります。
なので、PublicサブネットのEC2（セキュリティグループ→WEB-SG-1）からしか触れないように修正します。

![スクリーンショット 2021-05-01 15.23.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/d4da3ac7-1bb8-ac88-ec13-52d77a60728a.png)

### 9. ロードバランサーを導入
■ルート
コンソールで「EC2」と検索→左ペイン内の「ロードバランサー」を選択→「ロードバランサーの作成」を選択

![スクリーンショット 2021-05-02 21.52.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/ca08224c-90eb-b071-78e9-94111f0644ed.png)
![スクリーンショット 2021-05-02 21.53.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/fd86b60f-ab9d-35b9-dac3-99306552c1eb.png)
![スクリーンショット 2021-05-02 21.54.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/8f06a976-e488-0a7e-91c1-c07e64777730.png)
![スクリーンショット 2021-05-02 21.54.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/60b42622-b24b-ed3d-44f7-a8c342a7205d.png)

### 10. RDSのサイトアドレスをロードバランサーのDNSに書き換え
```terminal:ターミナル
// ①RDSへログイン
$ mysql -h database-1.xxxxxxxxxxxxxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -u (管理者) -p

// ②WordPressのテーブルを使用
MySQL [(none)]> USE wordpress;

// ③指定のカラム
MySQL [(none)]> SELECT * FROM wp_options WHERE option_name IN ('siteurl', 'home');
+-----------+-------------+-----------------------+----------+
| option_id | option_name | option_value          | autoload |
+-----------+-------------+-----------------------+----------+
|         2 | home        | http://13.231.153.132 | yes      |
|         1 | siteurl     | http://13.231.153.132 | yes      |
+-----------+-------------+-----------------------+----------+

// ④ロードバランサーのDNS名に置き換える
MySQL [(none)]> UPDATE wp_options SET option_value = 'http://xx.xx.xx.xx' WHERE option_name IN ('siteurl', 'home');
```

### 11. EC２のセキュリティグループのアクセス許可をロードバランサーからに変更する
■ルート
コンソールで「EC2」と検索→左ペイン内の「セキュリティグループ」を選択→「WEB-SG-1」を選択

![スクリーンショット 2021-05-02 22.07.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/1a3213e8-953c-1194-4842-fb61350c2374.png)

### 12. RDSも冗長化構成へ変更
■ルート
コンソールで「RDS」と検索→左ペイン内の「データベース」を選択→「database-1」を選択
![スクリーンショット 2021-05-02 22.10.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/06f457fa-b376-5303-44a1-beb4beb1117c.png)

### 13. freenomでドメインを購入
今回はデモのため無料でドメインを取得できるfreenomを使います。
こちらが分かりやすいのでこちらを参考にしてください。

https://note.com/dafujii/n/n406f385651e2

購入した後は、「Services」 → 「My Domains」 -> 「Management Tools」 → 「NameServers」を開きます。
![スクリーンショット 2021-05-15 16.24.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/607c5714-7719-6353-3773-4f9d26368d88.png)

### 13. Route53の設定をします
■ルート
コンソールで「Route53」と検索→左ペイン内の「ホストゾーン」を選択→「ホストゾーンの作成」を選択

![スクリーンショット 2021-05-15 16.27.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/fa7b5bb1-69f6-4551-2988-a026e1b2e654.png)

![スクリーンショット 2021-05-15 16.28.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/e958d927-26d5-d508-02a5-ef8afbaaab55.png)

このネームサーバーの値をFreenomの方に書き写します。
![スクリーンショット 2021-05-15 16.29.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/a7b3566d-b498-13cb-6689-d7d5e5c31540.png)

### 14. 取得したドメインでアクセスできるようにする
■ルート
コンソールで「Route53」と検索→左ペイン内の「ホストゾーン」を選択→「aws-lesson.tk」を選択→「レコードを作成」を選択

![スクリーンショット 2021-05-15 16.34.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/da2c6d97-5887-b156-64a7-3f4f60b985cd.png)

![スクリーンショット 2021-05-15 16.34.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/6ad7e891-d49d-9e88-3a84-9d5e0804ee7d.png)

これでロードバランサーとblog.aws-lesson.tkは結びつきました。
blog.aws-lesson.tkにアクセスしてみましょう！

![スクリーンショット 2021-05-15 16.36.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/4f673123-b616-c1fa-e3e2-f7b9289c7bbe.png)

成功です！！

### 15. エラーページを表示するためにフェイルオーバールーティングの設定をします
これでプライマリの表示は完成しました。
次に障害が起きた時に備えてエラーページを作成しましょう。
そしてそのエラーページをセカンダリで表示させます。

■ルート
コンソールで「S3」と検索→左ペイン内の「バケット」を選択→「バケットを作成」を選択

![スクリーンショット 2021-05-15 16.40.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/89356694-aeca-9237-703b-dd7ee480db06.png)

![スクリーンショット 2021-05-15 16.43.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/738a8d15-6b8c-fecf-52dd-436108829a88.png)

ではここにエラーページをアップしましょう！
![スクリーンショット 2021-05-15 16.50.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/82887303-a6e5-a55f-5aea-e585bdcf01f1.png)

一番下に、「静的ウェブサイトホスティング」があるのでそれを選択します。
![スクリーンショット 2021-05-15 16.51.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/280589a3-7d1a-9a30-61a4-15e192d3a03e.png)

![スクリーンショット 2021-05-15 16.52.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/0d049cc1-acd3-5b9b-d415-aa4b01a4abec.png)

次にバケットポリシーを編集します。

![スクリーンショット 2021-05-15 16.53.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/cd2e3bce-47c8-5c85-07a8-c3c50b761fcf.png)

```json:ポリシー
{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"PublicRead",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject","s3:GetObjectVersion"],
      "Resource":["arn:aws:s3:::blog.aws-lesson.tk/*"]
    }
  ]
}
```

これでエラーメッセージが表示されます。

### 16. それではRoute53でセカンダリの設定を行います
■ルート
コンソールで「Route53」と検索→左ペイン内の「ホストゾーン」を選択→「aws-lesson.tk」を選択

フェイルオーバーに変更します。
まずはプライマリを変更します。
![スクリーンショット 2021-05-15 16.58.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/cbae0da0-ea22-79a0-56f7-9ccb8c47890e.png)

![スクリーンショット 2021-05-15 17.00.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/53005845-b7a3-67e1-1811-8c3303c8139b.png)

次にセカンダリを変更します。
![スクリーンショット 2021-05-15 17.02.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/4aa30e83-4026-d058-3aa3-55a3a3a58950.png)

![スクリーンショット 2021-05-15 17.01.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/2aad9e35-3bdc-a953-c167-f6cdc497396b.png)


これで完了です！！

## AWSでHTTPS通信を可能にするには？
AWS Certificate Managerを導入すれば可能です。
なのでここから追記していきましょう！！

### 1. ロードバランサーでリスナーを追加する
■ルート
コンソールで「EC2」と検索→左ペイン内の「ロードバランサー」を選択→「LB-1」を選択→「リスナーの追加」を選択

![スクリーンショット 2021-05-15 17.09.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/ab7dd0c6-3067-30c2-9ab2-015c59fcef2b.png)

「新しいACM証明書をリクエスト」で発行を行います。

![スクリーンショット 2021-05-15 17.12.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/2ae801e8-2051-7123-edd7-9e42d28d1f5a.png)

![スクリーンショット 2021-05-15 17.12.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/d8274a97-5df0-8702-f9ff-a90c472e02f4.png)

![スクリーンショット 2021-05-15 17.13.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/fc4f70d6-b6cd-95c8-c4d0-92f3b3a775ae.png)

Route５３にあるかどうか確かめましょう。
![スクリーンショット 2021-05-15 17.15.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/76483116-2190-a171-6875-c10360b5a898.png)

ありました！！

![スクリーンショット 2021-05-15 17.15.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/42cd7685-636e-8a04-82d5-4ad640b6aead.png)

### 2. セキュリティグループの修正でHTTPSも受け付けられるようにしよう
■ルート
コンソールで「EC2」と検索→左ペイン内の「ロードバランサー」を選択→「LB-1」を選択→「セキュリティグループ」を選択

![スクリーンショット 2021-05-15 17.18.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/07c104b0-43a7-5025-141c-9951b644391d.png)

これで完了です。
![スクリーンショット 2021-05-15 17.19.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/7aa2d561-8214-a91b-59d5-7643a37a9206.png)

しかし、WordPressの仕様上表示が乱れてしまうのでここを直しましょう！

### 3. SSHコマンドでEC2と接続
1台目のEC2と2台目のEC2両方ともに行います。

```terminal:ターミナル
$ ssh -i keypair.pem ec2-user@52.193.252.134
$ sudo su -
$ cd /var/www/html/

// wp-config.phpを開いて修正する
$ vi wp-config.php

// 「編集が必要なのはここまでです ! WordPress でのパブリッシングをお楽しみください。」の上にコードを挿入する
if($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
  $_SERVER['HTTPS'] = 'on';
  $_ENV['HTTPS'] = 'on';
}
```

### 4. ロードバランサーでHTTP通信ができないようにする
■ルート
コンソールで「EC2」と検索→左ペイン内の「ロードバランサー」を選択→「LB-1」を選択→「セキュリティグループ」を選択

![スクリーンショット 2021-05-15 17.30.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/db611d0e-46a6-29f8-edd0-15c3d067f771.png)

![スクリーンショット 2021-05-15 17.31.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/2f5fc8a0-63c4-bc30-17e8-92d6041c5818.png)


## 削除手順
S3
RDS
LB
EC2
AMI
Route53
AWS Certificate Manager
VPC