内容
・趣旨目標
・使用できるサービス
・参考サイト
・VPC作成
・EC2の作成
・LAMP サーバーを準備
・データベースサーバーをセキュリティで保護
・リソースの削除
趣旨目標
手を動かして学ぶ!手動でサーバーを準備!
使用できるサービス
VPC,EC2
※気になった箇所だけ記載して、大分端折って記載しています。
参考サイト(これに従って作成します。):
VPC作成
EC2の作成
LAMP サーバーを準備
・すべてのソフトウェアパッケージが最新の状態であることを確認
sudo yum update -y
・MariaDB パッケージの最新バージョンを取得
sudo amazon-linux-extras install mariadb10.5
・Amazon Linux 2 向け PHP パッケージの最新バージョンを取得
sudo amazon-linux-extras install php8.2
・Apache ウェブサーバー、MariaDB、および PHP ソフトウェアパッケージをインストール
sudo yum install -y httpd
・Apache ウェブサーバーを起動
sudo systemctl start httpd
・systemctl コマンドを使用して、システムがブートするたびに Apache ウェブサーバーが起動するように設定
sudo systemctl enable httpd
・httpd が有効であることの確認
sudo systemctl is-enabled httpd
・ウェブサーバーをテスト
コンソールからインスタンスのパブリックDNSアドレスをブラウザへ貼り付け。
・ec2-user を apache グループに追加し、ファイルの許可を設定
sudo usermod -a -G apache ec2-user
・一度ログアウト
exit
・apache グループのメンバーシップを検証
groups
・/var/www(Apache HTTPサーバーがウェブコンテンツをホストするデフォルトのルートディレクトリ)とそのコンテンツのグループ所有権をapache グループに変更
sudo chown -R ec2-user:apache /var/www
・グループとユーザーに読み取り、書き込みについて権限を付与
sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;
・再帰的(ディレクトリ内を検索して親子関係なく全てのディレクトリやファイルに対して)に権限付与
find /var/www -type f -exec sudo chmod 0664 {} \;
これらの権限付与によって権限を持ったユーザーが、静的ウェブサイトや PHP アプリケーションなどのコンテンツを追加できる。
※ここでSSL/TLS の設定について参考サイトを貼ります。
参考:
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2.html
・LAMP サーバーをテスト
PHPファイルを作成。
ユーザーで実行。
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
これでエラーが出なければ適切にグループ設定できている。
また、インスタンスのパブリック DNS アドレスにスラッシュとファイル名を追加し、ブラウザで検索すると次のPHPのページが表示される。
webサーバーとして機能していますね。
・phpinfo.php ファイルを削除
rm /var/www/html/phpinfo.php
データベースサーバーをセキュリティで保護
本番環境でDBを使う場合の初期設定としてaws公式サイトに従って記録!
・MariaDB サーバーを起動
sudo systemctl start mariadb
・mysql_secure_installation を実行(これが主体)
sudo mysql_secure_installation
1 Remove anonymous users?匿名ユーザーの削除
2 Disallow root login remotely?リモート接続禁止
3 Remove test database and access to it?テストデータベースを削除
4 Reload privilege tables now?権限テーブルを再ロードし、変更を保存
(参考1)MariaDB サーバーをすぐに使用する予定がなく、一時的に停止する場合
sudo systemctl stop mariadb
(参考2)ブート時に毎回 MariaDB サーバーを起動させる場合
sudo systemctl enable mariadb
リソースの削除
学習が完了したので、リソースを削除していきます。
さいごに
勉強になりました!また時間を作ってハンズオンやっていきます。