EC2とRDSでWordPressをデプロイしてみる

アフィリエイトブログ
この記事は素人のたわごとです。AWSは設定によって料金がかかることがありますが当ブログも筆者である私も何ら一切責任を負いません。自己責任でお願いします。

前回無事ハローワールドできたので、今回は少し進めてEC2とRDSを使ってWordPressをデプロイしてみたいと思います。
ちなみに内容的には

Amazon RDS で WordPress をデプロイする - アマゾン ウェブ サービス
Amazon RDS でフルマネージドサービス型 MySQL データベースを使用して WordPress サイトを起動 この簡単なチュートリアルを見れば、50 分でサイトを立ち上げることができます。

まんまこれをパクっていきます。
ただやってて思ったんですがAWSのチュートリアルは画像が見にくいんでこの記事も少しは役に立つんじゃないかな―って思っております。よろしくお願いします。

RDSでデータベース作成

リージョンの確認 *注意

まずリージョンを確認しときましょう。私は「大阪リージョン」でRDSを立ち上げたら無料枠がなく
「まぁいいか」とそのまま3日つけたままにしていたら5ドルくらい費用が発生していました。


今はもしかしたら大阪リージョンでも無料枠あるかもしれませんが見つからなければ東京等に変えましょう。

RDSの起動

コンソールからRDSに移動して、オレンジ色のデータベース作成ボタンをクリックします。
どちらを選んでも問題ありません。

データベース作成方法を選択します。どちらがどうなのかよくわからないので左側の標準作成を選択しました

使用するデータベースを選びます。Wordpressは「MySQL」に依存しているため「MySQL」か、その派生の「MariaDB」を選択します。
今回は「MySQL」を選びました。
バージョンはとりあえず最新のものを選んでみました。

テンプレートを選びます。迷わず「無料利用枠」を選択してください。

DB設定をしていきます。とりあえず動くかの勉強のためにやっているんでセキュリティなんてくそくらえのガバガバ設定です。

  • DBインスタンス識別子 wordpress
  • マスターユーザー名 admin
  • マスターパスワード hogehoge

こんな感じで設定しました

次に追加設定という項目まで下がってから最初のデータベース名を「wordpress」とします。

最後に「データベースの作成」をクリックしてRDSが立ち上がります

EC2の起動

OSとスペックの選択

まずコンソールからEC2に移動して「インスタンスを起動」をクリックしてインスタンス作成へと進みます

ステップ1としてAmazonマシンイメージを選択するみたいです。要はWindowsとかMacみたいなOSを選べってことですね。
色々調べたけどここで「AmazonLinux2AMI」以外選択してる記事を見たこと無い気がします。
私もここは「AmazonLinux2」を選択し次に進みます。

次にインスタンスのタイプを選びます。パソコンのスペックを選べってことみたいですね。
無料利用枠が用意されているのでそちらにチェックを入れて「確認と作成」をクリックします。

セキュリティグループの編集

無事に「確認と作成」を選択すると何やらセキュリティを強化しろと忠告が出てきます。
なので「セキュリティグループの編集」をしていきます。

タイプが「SSH」になっていることを確認してからソースを「マイ IP」にしてみましょう。
これでSSH接続が自分のIPアドレスからでしか行われなくなります。

もちろん、他に自分しか使わないような安全なIPアドレスがあればそちらを入力してもいいと思われます。

次にHTTP接続を許可します。
「ルールの追加」をクリックして出てきた欄のタイプから「HTTP」を選択します。
これでブラウザなどを通じてHTTP通信でアクセスできるようになるはずです。

最後にセキュリティグループ名を見つけやすくするために「wordpress」とし、「確認と作成」をクリックします。

起動する

「インスタンス作成の確認」画面へと戻って「起動」をクリックします。

キーペアに関するウィンドウが開きます。今回はすでに作っていたキーペアを使用していたので「既存のキーペアの選択」からキーペアを選んでいます。
新しく作る場合は選択肢から「新規キーペアを作成」みたいなのを選択して名前をつけてキーペアをダウンロードしてみてください。
ダウンロードされたら「インスタンスの作成」をクリックします。

データベースの設定

EC2からRDSにアクセスできるようにする

コンソールからRDSを開き先程作ったDBをクリックします

「接続とセキュリティ」タブの中の「VPCセキュリティグループ」に表示されている「セキュリティグループ」をクリックします。

「インバウンドルール」をクリックし編集ボタンをクリックしてセキュリティグループを編集します

タイプの「すべてのトラフィック」を「MYSQL/Aurora」に変更して、現在のルールを削除します。

削除した上の欄をクリックして先程作ったセキュリティグループのwordpressを選択し、「ルールを保存」をクリックします。

SSH接続する

前回も書いてますが再度やっていきます。
VScodeの拡張機能のRemote-ssh使っていきます。

EC2インスタンスからIPアドレスをメモします

sshのconfigファイルを開いて編集していきます。
HostNameにIPアドレスをいれて、IdentityFileに先程のキーペアのダウンロードした絶対パスを入力します。

これで左側のec2を右クリックして出る選択肢を選べばEC2インスタンスにSSH接続ができるはずです。

データベースユーザー作成

AWSのチュートリアルの方でやるとMariaDBがダウンロードされます。
多分それでも問題ないです。でも今回はMySQLをインストールしていきたいと思います。

MySQL8系をインストールする

動画ではMariaDBで進めていますのでこの章は無視してください

yumを最新にする

sudo yum update

MariaDBの消去

sudo yum remove mariadb-libs

MySQL Yum リポジトリの追加

sudo yum install mysql80-community-release-el7-3.noarch.rpm

リポジトリを有効化する

sudo yum-config-manager --enable mysql80-community

yumリポジトリの確認
MySQL8のリポジトリがenabled=1になってるか確認します

sudo cat /etc/yum.repos.d/mysql-community.repo

MySQLのインストール

sudo yum install -y mysql-community-server

MySQL8がインストールできたか確認
Verが8.x.xと8になってたら成功

mysql --version

ユーザー作成

RDSのデータベースからwordpressを選択してエンドポイントを調べてコピーしておく

MySQLホストの環境変数を設定するみたいです

export MYSQL_HOST=wordpress*************3.rds.amazonaws.com

MySQLのデータベースに接続します。RDSデータベース作成時に入れた名前とパスワードです。

mysql --user=admin --password=hogehoge wordpress

最後にデータベースユーザーを作り、データベースへのアクセスができるようにします。

一般に公開する場合は「wordpress-pass」よりも複雑なパスワードを使うようにしないと駄目みたいです。

CREATE USER 'wordpress' IDENTIFIED BY 'wordpress-pass';
GRANT ALL PRIVILEGES ON wordpress.* TO wordpress;
FLUSH PRIVILEGES;
Exit

EC2でwordpressの設定

Apacheのインストール

前の記事とやってること被ってますがApacheをインストールしていきます。

sudo yum install -y httpd

ずらずらとターミナルに出力されます。Apacheを起動するのは

sudo service httpd start

ブラウザでIPアドレスにアクセスしてみるとApacheのテストページが開かれます

WordPressのダウンロードと設定

まずワードプレスのダウンロードと解凍をしていきます

wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz

解凍が終わったら

ls

latest.tar.gz wordpress

というふうに表示されると思います。WordPressディレクトリに移動し、構成ファイルのコピーを作成します。

wordpressが無いよって場合は解凍できてないと思われるのでもう一度解凍するコマンドを打ち込みます

tar -xzf latest.tar.gz
cd wordpress
cp wp-config-sample.php wp-config.php

wp-config.phpを開いて編集します。
AWSのチュートリアルではnanoエディタを使用して編集するようになってます。
でもVScodeを使います。

sudo chown ec2-user /var/www/html/wp-config.php

で、wp-config.phpの中を少しスクロールしたくらいにある

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** MySQL database username */
define( 'DB_USER', 'username_here' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

を探し出して各項目を変更します。

  • database_name_here は、”wordpress”
  • username_here は、先程作った”wordpress”
  • password_here は、先程作った”wordpress-pass”
  • localhost は、エンドポイントの”wordpress*****3.rds.amazonaws.com”

値はこんな感じになるらしいです。

続いてもう少し下に移動して

/**#@+
 * Authentication Unique Keys and Salts.
 *
 * Change these to different unique phrases!
 * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
 * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

を探し出して、https://api.wordpress.org/secret-key/1.1/salt/ このリンク先の値に書き換えましょう。セキュリティが強くなるらしいです。

WordPressをデプロイする

最新のphp7系は、MySQL8系のパスワード方式「caching_sha2_password」に対応しているらしいのでphpをダウンロードしていきます。
もし”The server requested authentication method unknown to the client [caching_sha2_password]”のようなエラーが出る場合はphpをアップデートさせるか、php8系を再インストールしてみてください。

sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2

ディレクトリを移動します

cd /home/ec2-user

wordpressをApacheが使用する/var/www/htmlにコピーします。

sudo cp -r wordpress/* /var/www/html

最後にApacheを再起動して変更を有効にします。

sudo service httpd restart

これでIPアドレスにアクセスしてみると

wordpressの登録画面にたどり着けると思います。

おわりと次回の話

今回のはいっぱい詰まって期間が空きすぎたりしてよくわからなくなってしまいました。
あとphp8系をインストールしていたんですが、パスワードの認証にSHA2なんとかっていう形式にも対応したみたいなんで、チュートリアルパクって7系で行くふうに書きました。

ってことで次回はついに最終回!
最初の目的であるCaddyを使ってWordPressをデプロイする編です。
あとDockerも使ってみようと思います。

それではまたお会いしましょう!バイバイ✋

シリーズ

1回目 アフィブログで一山当てたい

2回目 EC2でHelloWorld

4回目 DockerでCaddyとWordpressを動かす

コメント

タイトルとURLをコピーしました