AWS初心者が基礎的なブログサイトを構築してみた！！

#1.はじめに
今回はawsを使ってWordpressのWebサイトを構築してみました。
awsを使ってみたい人など是非参考にしてください。
#2.今回の目標
![9A5B82DE-5080-4D7F-9DB5-05667C2882C1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1159891/42603a34-e420-583b-7b30-05aab403cbdf.png)
このような構成でwordpressのブログサイトを作っていきます。
今回は自分が行った手順と同じように進めていきます。
#3.作成手順
##0 補足
RDSにはサブネットグループが必要であり、サブネットグループには2つ以上のサブネットが必要である。
さらにサブネットは複数のAZにまたがっている必要があるため今回、AZはap-northeast-1aとap-northeast-1cを使用していく。
※何も指定がなかった場合はデフォルトのままで大丈夫です。
##1 VPCとサブネットを作る。
###VPC 
Name: MyVPC
IPv4 CIDR: 10.0.0.0/21
###サブネット
※MyVPC内に作成する。

AZ ap-northeast-1a内に作成するサブネット

Name:&emsp; PublicSubnet1 &emsp;&emsp;&emsp;&emsp;&emsp;PrivateSubnet1
IPv4 CIDR:&emsp; 10.0.0.0/24 &emsp;&emsp;&emsp;&emsp;&emsp;10.0.2.0/24

AZ ap-northeast-1c内に作成するサブネット

Name:&emsp; PublicSubnet2　&emsp;&emsp;&emsp;&emsp;&emsp;PrivateSubnet2
IPv4 CIDR:&emsp; 10.0.1.0/24　&emsp;&emsp;&emsp;&emsp;&emsp;10.0.3.0/24
##2 PublicSubnet1にEC2を構築
OS:　Amazon Linux2
インスタンスタイプ: t2.micro
VPC: MyVPC
サブネット: PublicSubnet1
自動割り当てパブリックIP: 有効
Name: WebServer1
セキュリティグループ名: Web-SG-1
セキュリティグループの設定でルールの追加からHTTP通信を許可する。
キーペアの設定は既存のキーペアまたは新規のキーペアを作成して行う。
##3 VPCにインターネットゲートウェイを接続
インターネットゲートウェイを作成する。作成したときはVPCにアタッチされていないのでMyVPCにアタッチしてあげる。
##4 ルートテーブルを設定する
Webサーバーがインターネットと通信するためにPublicSubnet1にルートテーブルを設定する。
PublicSubnet1のルートテーブルの設定を確認する。　→　ルートテーブルのリンクから内容を変更　→　ルートの編集　→　ルートの追加　→　送信先(ルート)を0.0.0.0／0　（全てのIPアドレスの範囲を表す）ターゲットをインターネットゲートウェイにして手順3で作成したインターネットゲートウェイを選択する。
##5 サブネットグループを作成
RDSを作成するためにサブネットグループを作成する。
名前: MysubnetGroup
説明: MysubnetGroup
VPC: MyVPC
AZ: ap-northeast-1a, ap-northeast-1c
サブネット: PrivteSubnet1(10.0.2.0/24), PrivteSubnet2(10.0.3.0/24)
##6 RDSを作成
データベースを作成していく。
データベース作成方法: 標準作成
エンジン: MySQL
テンプレート: 開発/テスト用（使用料金が気になる方は無料利用枠を選択）
マスターユーザー名:　wordpress
マスターパスワード: 任意のパスワードを設定
DBインスタンスクラス: バースト可能クラス（db.t2.micro)
可用性と耐久性: スタンバイインスタンスを作成しない
VPC: MyVPC
サブネットグループ: mysubnetGroup
パブリックアクセス可能: なし
VPCセキュリティグループ: 新規作成
名前: RDS-SG-1
AZ: ap-northeast-1a
追加設定
データベース名: wordpress
##7 RDSのセキュリティグループを編集
セキュリティグループ（RDS-SG-1)を選択
接続元をWebサーバーだけから許可したいという設定に変える
インバウンドルールからインバウンドルールの編集にいく
もともとあるIPアドレスを消去してWeb-SG-1を選択する。
##8 ターミナルでwordpressをインストールする。
EC2環境にターミナルでログインする。

管理者権限にスイッチする。
`sudo su -`

EC2を最新の状態にアップデートする。
`yum -y update`

wordpressが烏合のに必要なソフトウェア（apache, php, MySQL）をインストールする。
`amazon-linux-extras install php7.2 -y`

MySQLのクライアントやhttpdアパッチ、phpの必要な物を追加でインストールする。
`yum -y install mysql httpd php-mbstring php-xml gd php-gd`

システムコントロールコマンドでapacheのサービスを再起動後も自動で起動するためにenableの状態にする。
`systemctl enable httpd.service`

apacheのサービスをスタート状態にする。
`systemctl start httpd.service`

apacheがアクティブ状態（running状態）か確認する。
`systemctl status httpd.service`

ここまででwordpressが動く環境の準備ができる。
ここからは実際にwordpressのパッケージをダウンロードしてインストールしていく。

wgetでwordpressパッケージの最新のものをURLから~へ取得する
~はカレントディレクトリのことを表す。
`wget http://ja.wordpress.org/latest-ja.tar.gz ~/`

llコマンドでカレントディレクトリの内容を確認すると圧縮されていることがわかるので展開する。
`tar zxvf ~/latest-ja.tar.gz`

llコマンドで確認するとwordpressというディレクトリ名で存在していることがわかる。

wordpress及び配下のファイルを/var/www/html/のしたにコーピーする。
`cp -r ~/wordpress/* /var/www/html/`

/var/www/html/の配下の権限をapacheのユーザーグループの設定に変える
`chown apache:apache -R /var/www/html`

以上でwordpressが閲覧可能な状態になります。
#4.最後に
この記事はAWS初学者を導く体系的な動画学習サービス「AWS　CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com