はじめに
この記事はインフラ初心者の私がAWS Cloudtechを通して学んだことを
記録&アウトプットするための備忘録です。
ゴール
自宅PCからインターネット経由でWord PressがインストールされたEC2にアクセスしてブログ閲覧ができるようにする。
目的
・RDSの作成方法の理解
・WordPressの構築方法の理解
・基本的なシングル構築方法の理解
環境
・Windows10
・TeraTerm Version 4.105
・Word Press Version 5.7
環境構築
手順
VPC作成からEC2ログインまで
ざっくりとした手順(詳細手順を確認したい方は以前書いたこちらの記事を参照してください)
①VPCの作成
②AZ1-aにてPublicSubnet、PrivateSubnetを作成
③PublicSubnet内にEC2作成、セキュリティグループの設定(Web-SG-1)
④WebServer-1にログインするためにインターネットゲートウェイを作成
⑤VPCにアタッチ
⑥ルートテーブル編集(宛先がローカル以外の通信は全てIGWに向けるように設定する)
⑦セキュリティグループの確認(ssh接続をするため22番ポートが空いているかを確認)
⑧ssh接続
補足
※対象のインスタンスを選択し、[接続]→EC2 InstanceConnectを選択し、[接続]クリックすると
ブラウザ上でssh接続ができる
RDSの作成
Subnet Groupの作成
RDSを作成するためにはSubnet Groupを作成する必要がある。
※シングル構成であろうとsubnetグループが存在していないとRDSは構築できない。
※subnetグループを作成するためには2つ以上のsubnetをグルーピングかつsubnetは複数のAZにまたがっている必要がある。
①AZ1cにPublic SubnetとPrivate Subnetを作成する。
③左ペインから「サブネットグループ」を選択し、[DBサブネットグループを作成]をクリック
項目 | 概要 |
---|---|
VPC | Subnet Groupを作成するVPCを選択 |
アベイラビリティーゾーン | Subnet Groupを作成するAZを選択 |
サブネット | Subnet Groupに含めるSubnetを選択 |
データベースの作成
①左ペインをからデータベースを選択して[データベースの作成]をクリック
②各種設定を入力し、[データベースの作成]をクリック
■データベースの作成
今回は標準作成を選択。
■テンプレート
今回は無料利用枠を選択
■DB設定
今回はバースト可能クラス:db.t2.microを選択
■可用性と耐久性
今回は「スタンバイインスタンスを作成しないでください」を選択
■追加設定-1
データベース名を入力し、その他はデフォルト設定。
③作成したDBのステータスが利用可能になっていることを確認する。
④作成したSG(RDS-SG-1)のインバウンドルールを編集する
インバウンドルールのソースに「Web-SG-1」を指定して、[ルールを保存]をクリック。
こうすることでWeb-SG-1に所属しているもの(今回ではWebServer1)からしかアクセスできなくなる。
WordPressのインストール
①ec2-userからrootに権限切り替え
②yum -y updateでパッケージを最新の状態にアップデートする
yum -y update
③Apache,MySQL,PHP等必要なものをインストールする。
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
⑥(念の為、)Apacheサービスの起動状態を確認する。
systemctl status httpd.service
⑦WordPressをダウンロードする
以下のコマンドでWordPressをダウンロードする
wget http://ja.wordpress.org/latest-ja.tar.gz ~/
WordPressのサイト上で以下の操作を行うのと同じみたいですね。
llでWordPressの最新ファイルが存在することを確認。
※wgetコマンドは指定したURLに存在するファイルをダウンロードするコマンド
■参考URL
wgetコマンド
⑧圧縮ファイルを展開する
以下のコマンドで圧縮ファイルを展開する。
tar zxvf ~/latest-ja.tar.gz
※-zオプションは無くても展開できました。
■tarコマンドのオプション
オプション | 説明 |
---|---|
-v(--verbose) | アーカイブ結果を表示する。 |
-x(--extract) | アーカイブされたファイルを解凍し展開・復元を行う |
-f(--file=ARCHIVE) | アーカイブファイル名を指定する |
-z | gzip方式の圧縮または展開を同時に行う(省略可能っぽい) |
※tarコマンドはアーカイブを作成/展開するコマンド
■参考URL
tarコマンド
⑨展開したwordpressディレクトリをドキュメントルートにコピーする
llで確認するとwordpressディレクトリができている。
これを以下のコマンドでドキュメントルートにコピーする。
cp -r ~/wordpress/* /var/www/html/
⑩所有者とグループを変更する
以下のコマンドで/var/www/htmlの所有者とグループをapacheに変更する
chown apache:apache -R /var/www/html
※chownはファイルやディレクトリの所有者を変更するためのコマンド
■参考URL
chownコマンド
ブラウザでWordpressの確認
①インスタンスのパブリックIPアドレスをアドレスバーに貼り付けてEnterを押す
WordPressの初期設定ページが表示されることを確認し、[さあ、始めましょう]を選択
※データベースのホスト名はRDSのエンドポイントの箇所からコピー&ペースト
④各種項目を設定し、[WordPressをインストール]を選択
⑤インストール後、WordPressにログインできることを確認
終わりに
今回は基本的なシングル構成の構築方法について学びました。
今回のハンズオンを通してRDSの作成やWordPressの構築といったことができるようになりました。
以前学んだVPCやEC2の知識が身についているように実感できたのが嬉しかったです。
講座の内容以外にも何でこうするのか?や各コマンドの詳細を調べることで理解が深まりました。
疑問に思っていたことが解決することで「勉強楽しい!」と思えるようになりました。
次は冗長構成での環境構築にも挑戦します。
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com
おまけ:ドキュメントルートとは?
今回、なぜ/var/www/htmlに/wordpress配下のファイルをすべてコピーする必要があるのかがわからなかったため調べてみました。
調べた結果、以下のように理解しました。
単語 | 説明 | 設定ファイルの格納場所 |
---|---|---|
ドキュメントルート | Webサーバで公開するコンテンツを配置するディレクトリ。 | /etc/httpd/conf/httpd.conf |
・ドキュメントルートでApacheがどこのディレクトリに置かれたファイルを Webサーバとして公開するかを決めており、対象のディレクトリが"/var/www/html"だったと理解。
・CentOSのhttpdではデフォルトのドキュメントルートとして"/var/www/html"が設定されている。