0
2

terraformでのwordpress構築+SSL化

Last updated at Posted at 2024-05-05

#本記事は、copilotで下書を書いています。
#terraformでの構築部分はこちらの記事を参考にして実施いたしました.。
https://qiita.com/koseiinfratop/items/a307393ed74dca01ab86

はじめに

今回はTerraformを使用してAWS環境上にWordPressサイトを構築し、SSLでセキュリティを強化する方法を紹介します。Terraformはインフラストラクチャーのコード化を可能にし、繰り返し可能な方法でサーバーをデプロイすることができます。

1章:Terraformファイル準備

まず、AWSのようなクラウドプロバイダーで使用するためのTerraformファイルを準備します。これには、ネットワーク設定、サーバーインスタンス、データベース、その他必要なリソースの定義が含まれます。

今回用意したファイルは下記の9つです。
上4つがterraformの設定ファイルで、残りがwordpressを構築するための設定ファイルです。各ファイルの内容と説明はページ下部に記載しております。

ファイル名 説明
main.tf Terraformの設定ファイル
terraform.tfstate インフラストラクチャの状態ファイル
terraform.tfvars 変数定義ファイル
variable.tf 変数宣言ファイル
wordpress_config.sh WordPressの設定スクリプト
init.sh 初期設定スクリプト
nginx_config.sh Nginx設定スクリプト
nginx_default Nginxのデフォルト設定ファイル
prepareWordPress.sql WordPressのデータベース設定スクリプト

cloud9の環境に「handson」のフォルダを作成し各ファイルを配置

image.png

2章:実行

下記3つのコマンドを実行することで、Terraformはmain.tfに記述された設定に基づいて、WordPressのインフラストラクチャを構築します。また、他のスクリプト(init.sh、nginx_config.sh、wordpress_config.shなど)は、必要なソフトウェアのインストールや設定を行います

terraform fmt
このコマンドは、Terraform設定ファイル(main.tfなど)を整形します。これにより、コードが読みやすくなり、潜在的なエラーが見つけやすくなります。

terraform plan
このコマンドは、Terraformが行う予定の操作を表示します。これにより、何が作成、更新、または削除されるかを確認できます。これは、意図しない変更を適用する前に、設定が期待通りであることを確認するためのステップです。

terraform apply
最後に、このコマンドは実際にリソースを作成、更新、または削除します。terraform planで表示された操作が期待通りであることを確認した後に、このコマンドを実行します。

3章:WordPress初期設定

今回の設定だとwordpressのサーバーのIPが可変なので
固定IPへの紐づけ、およびドメインの取得を行います。
その後Route53でドメイン経由でのアクセスができるようにいたします。

下記のサイトを参考に実施いたしました

4章:SSL化

今回はReally Simple SSLというwordpressのプラグインをインストールしてSSL化を行いました
3章同様に下記サイトを参考にしましたが、躓いた点などを記載いたします。

1:管理コンソールへのログイン時に、クッキーが効かずログインできない。

→この場合、/var/www/html/wordpress/wp-config.phpに下記を追記して、
wordpressのEC2インスタンスのIPと揃えることにより、ログインができました。

wp-config.php
/* Add any custom values between this line and the "stop editing" line. */
define('RELOCATE',true);
define('WP_HOME','http://XX.XX.XX.XX/wordpress');
define('WP_SITEURL','http://XX.XX.XX.XX/wordpress'); 

image.png

2:SSL有効化後wp-config.phpが編集できずに、プラグイン「Really Simple SSL」でエラーが発生。

下記コード内容をwp-config.phpへ追記

wp-config.php
define('RELOCATE',true);
define('WP_HOME','http://tech-hobby1.com/wordpress');
define('WP_SITEURL','http://tech-hobby1.com/wordpress');

$_SERVER['HTTPS']='on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

3:「Really Simple SSL」でのセキュリティチェックにて警告が発生。

下記コード内容をwp-config.phpへ追記

//Begin Really Simple SSL session cookie settings
@ini_set('session.cookie_httponly', true);
@ini_set('session.cookie_secure', true);
@ini_set('session.use_only_cookies', true);
//END Really Simple SSL cookie settings

おわりに:

下記画面ショットのようにwordpressのサイトをterrafrmで構築し、SSL化をすることができました。
Terraformを使用することで、WordPressサイトの構築とSSL化を効率的かつ安全に行うことができます。このガイドが皆さんのプロジェクトに役立つことを願っています。どうぞ実践してみてください。

image.png

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2