やること
AWS上にLamp環境構築
EC2(Linux)環境構築
1.AWSコンソールからEC2を選択し、インスタンスを起動を選択
2.Amazon Linux 2 AMI (HVM), SSD Volume Typeを選択し、残りの設定はお好みで設定する
3.ssh通信をするためのキーペアを作成し、ダウンロードしておく
4.作成したEC2のセキュリティタブからセキュリティグループを選択し、インバウンド通信にsshを追加することで、外部からのssh通信を許可する
5.ターミナル上でダウンロードしたキーペアのあるディレクトリに移動し、ssh接続を行う
ssh -i {ダウンロードした証明書} ec2-user@{作成したEC2のパブリック IPv4 DNS}
※パブリック IPv4 DNSはインスタンス概要から確認できる
Apache環境構築
1.EC2のインバウンド通信にhttpを追加し、外部からのhttp接続を許可する
2.以下のコマンドでapacheをインストールし起動する
sudo yum -y install httpd
sudo service httpd start
3.インスタンス概要欄にあるパブリック IPv4 アドレスのオープンアドレスを開く(許可しているのはhttpなので、httpsからhttpに変更する)
MySQL環境構築
- AWSコンソールからRDSを選択し、データベースの作成を選択し、MySQLにチェックを入れ作成を行う(マスターユーザ名とパスワードはメモしておく)
- 作成されたデータベースのセキュリティグループを選択し、インバウンド通信にMySQLを許可し、外部からの接続を許可する
- ssh通信したEC2サーバに、MySQLをインストールし、データベースへの接続を行う
sudo yum -y install mysql
mysql -h {作成したDBのエンドポイント} -P 3306 -u {マスターユーザ名} -p
なお、現在の状態では、データベースはプライベート接続のみ許可されている状態となっているため、EC2のサーバを踏み台として利用することのみで接続できる
また、EC2はデフォルトでアウトバウンドが全てのポート許可となっているため、MySQLに接続できる
PHP環境構築
1.PHPのインストールおよび設定読み込み(再起動)
sudo amazon-linux-extras install php7.2
sudo service httpd restart
2.ドキュメントルートに移動する
cd /var/www/html/
3.PHPファイルを作成する
sudo vi index.php
4.内容を記述する
<?php
echo "Hello World!";
※Vimの使い方は詳しく触れませんが、Iキーを押すことで入力モード、ESXキーを押すことでノーマルモードに戻り、ノーマルモードで:wqと入力すれば保存することができます。
5.再度パブリック IPv4 アドレスのオープンアドレスを開く
※この時、キャッシュが残っている場合に最初に開いたApacheの初期画面が表示されることがあるので、キャッシュクリアもしくは別のブラウザの使用、時間を置いてアクセスなどしてください
感想
初めは少しセキュリティグループの設定漏れなどで困ったが、簡易に環境構築ができると感じた。
普段はAzureユーザなので、Paas(WebApps等)でアプリケーションサーバを構築することが多いが、EC2の場合は実際にはIaasなので、少し設定が面倒だと感じたので、他に方法が無いか探る(Elastic Beanstalkがそれに該当?)