AWS上でWordpressを構築
今回は会社のブログをAWS上に建てたいとのことだったので手探りで試して見ました。結果構築はすごく簡単でしたがHTTPS化が少しめんどくさかったので説明を残しておきたいと思います。
あと、AWS上でWordPressを構築した場合規模が小さければこっちの方が安く済むかもしれませんが、サーバーの管理やメンテナンスの費用はかかってしまうので個人的にはオススメしませんが。。。
EC2インスタンスから作成
EC2のAWS Marketplaceでwordpressと検索します。そうするとたくさんWordPressのイメージが出てくるのですが、WordPress Certified by Bitnamiを選択します。それぞれ特徴は理解していませんがとりあえず現状これで問題ないです。設定も何も変更せずにインスタンスの作成まで完了させます。
これで作った場合、EC2上にデータベースも作成されるため基本的にはインスタンスを作成したらWordPressの作成は完了になります。

ALBにぶら下げる
EC2単体での運用は今後大変そうなので一旦ALBにぶら下げておきます。今後負荷が増えてきたらEC2を増やして、データベースをRDSに移すことを少しだけ考慮しておきます。あとはALBのヘルスチェック機能を使うためですね。
ドメインはRoute53で取得し、証明書はAWS Ceertificate Managerを使えばAWSで全てを完結させることができます。ドメインを取得したらRoute53でAレコードのAliasでALBを選択します。もしくはCloudFrontて経由でALBにアクセスするならCloudFrontを選択してください。
ALBのターゲットグループの設定は下記のようになります。
ターゲットグループ自体はHTTPの80番ポートでリクエストを受け付けるようにします。ヘルスチェックは/index.phpに対して行います。WordPressにはindex.htmlがないので気をつけてください。

このターゲットグループをALBに設定します。設定はALBのリスナータブから行います。
HTTPSを設定して、ACMで作成した証明書を選択します。ALBの設定はこれだけで完了です。

設定したドメインにアクセスしてみてください。たぶんちゃんと表示されないはずです。これはWordPressがALBで受け付けたHTTPSの通信をうまく処理できていないからです。今度はWordPressの設定を変更します。
wp-config.phpの変更
まずはHTTPS対応の設定です。/opt/bitnami/apps/wordpress/htdocs/wp-config.phpに下記を追加します。
/** For HTTPS on */ if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS'] = 'on';
次に固定されたドメインを変更します。もともとの設定をコメントアウトして使用するドメインを設定します。
/* define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/'); define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/'); */ define('WP_SITEURL', 'https://blog.com'); define('WP_HOME', 'https://blog.com');
この設定が完了したらサイトにアクセスしてみください。今度はちゃんとHTTPSでアクセスできるかと思います。
おすすめ書籍
AWSをこれから使う初心者の方から現在使っている中級者の方までおすすめできる書籍です。内容はVPC、セキュリティグループ、IAMなどの基本的なことからWEBサービスを作るのに欠かせない、EC2、RDS、Route53などの扱い方が丁寧に説明されています。
中級者向けにはWEBサーバのオートスケール、Cloud Watchを使ったモニタリング方法、セキュリティ等について解説されています。手元において困ったときに読むのにちょうどいい一冊になると思います。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す