AWSアカウントの作成
必要なものはクレジットカード、通話可能な携帯電話、メールアドレスです。
ログイン後はマネジメントコンソールで、AWSの管理画面が表示されます。アマゾンウェブサービスというAWSの公式サイトにをクリックしましょう。
無料サインアップと右上にあるのでそちらをクリックしてください。 Eメールアドレスパスワード確認があります。アカウント名を入力してください。

連絡先情報を記入していきます。今回はパーソナルを選択します。AWSカスタマーアグリーメントの同意チェックをつけて、アカウント作成、続いて支払い情報でクレジットカードの情報を入れて「セキュアな送信」というボタンを押します。
続いて本人確認です。携帯電話に検証コードを受け取ります。電話番号を入力しセキュリティーチェックを入力し、SMSを送信すると携帯電話のほうに認証コードが届きます。
認証コードを入れ4桁の検証コードを入力します。今回は個人用の利用なので練習用のプランなので無料プランを申し込んでおきます。
アカウントは明日作成できたらサインインをしていきます。AWSマネージメントコンソールが現れたら、アカウント作成とサインインが完了です。
クラウドウォッチで料金アラートを設定しよう
AWSは基本従量課金です。気づいたら使いすぎていて、「思いのほか料金を請求されてしまった」ということがありえます。それを防ぐために「〇〇円以上使用したらアラートを通知するように設定しておこう」というのがクラウドウォッチです。
設定の手順はツーステップです。まず請求ダッシュボードで請求を受け取るように設定します。次にクラウドウォッチというサービスを利用して具体的な設定をします。
画面上のメニューから請求ダッシュボードをクリックします。
請求情報とコスト管理ダッシュボードの画面が開きます。左のメニューからBuildingの設定というところにいきます。
AWSは1年間無料で利用できる枠が提供されています。今回もこの無料枠を利用しながら進めていきます。無料枠は「1年間、毎月この量までは無料ですよ」という設定になっています。 その枠を超えそうになったらアラートを入れてくれる設定にします。
「電子メールでPDF請求書を受け取る」「無料利用枠の使用アラートの受信」「請求アラートを受け取る」この3つにチェックを入れていきます。「請求アラートを管理する」というリンクを押し、クラウドウォッチの画面にとびます。左のメニューの請求というボタンをしてください。請求アラームが設定できます。

「超過と通知の連絡先」を入力してください。そうすると認証のためにメールが届きます。サーバーを立ち上げて、止めるのを忘れたりすると料金がかかってしまうこともあるので設定しておきましょう。
IAMで作業用ユーザを作成しよう
作業用ユーザを新たに作成し、それを利用することで、セキュリティーを高めます。AWSアカウントを作成すると、ルートユーザでログインされます。ルートユーザは普段は使用せず、作業用のIAMユーザを使用するのがAWSでは推奨されています。ルートユーザというのはAWS上でそのアカウントであれば何でもできる特権ユーザです。何でもできるという事は思わぬ操作をしてしまうこともあるわけで、それを防ぐためにルートユーザというのは極力使わないようにされています。
作業用ユーザはIAMユーザとAWSではいわれています。これはAWS上で作成されるユーザのことです。個別にユーザを作成することで、誰がどのどんな作業をしたのか確認することもできます。

IAMユーザの作成
マネジメントコンソールにログインします。ルートユーザで作業しておいた方が良いことが1つあるので、それをやっていきます。メニューからマイアカウントを開きます。下のほうにいくと「IAMユーザロールによる請求書情報へのアクセス」があります。こちらはIAMユーザが請求書情報を操作できるかどうかを設定するところです。

IAMユーザでも請求書は見れた方が良いので、設定しておきます。右側にある編集をクリックします。IAMアクセスのアクティブ化をチェックしておきます。更新ボタンを押します。これでIAMユーザでも請求書確認できるようになりました。
一番上に行って、サービスをクリックします。検索欄でIAMを検索します。IAMの画面が開きます。ユーザというところをクリックし、「ユーザを追加」をクリックします。ユーザ名は何でも大丈夫です。「アクセスの種類」を選択します。2つの操作する方法がありますが、今回はコマンドラインを使うのでプログラムによるアクセスをチェックします。
次はアクセス許可の設定をしていきます。どのユーザは、何ができるかを設定していくわけです。既存のポリシーを直接アタッチを使っていきます。実際作成するときはユーザごとに適切なレベルに設定する必要があり、なるべく無駄な権限はつけないほうが安全です。ただ今回は個人で作っていくので。1番強い権限にしておきます。検索欄でアドミニストレーターを検索して、チェックを入れておきます。ほとんどのサービスにアクセスできる権限です。
次はタグの設定です。そのユーザはどういう役割を付与していくものですが今回は必要ないので次に進めます。そして ユーザの作成をクリックしましょう。成功と出るとURLが表示されますので、コピーしてメモしておいてください。CSVのダウンロードもしておくと便利です。
ではIAMユーザでログインしてください作業はこのIAMユーザでログインして進めていきます。
EC2の操作
ログイン
ssh -i [キーペアのパス] ec2-user@[パブリックIPv4アドレス]
- [キーペアのパス]
- EC2起動時にダウンロード(もしくは指定)した*pemファイルを指定する
- [パブリックIPv4アドレス]
- EC2インスタンスの詳細を見て確認する
例
ssh -i ~/.ssh/test-server.pem ec2-user@123.123.123.123
ログアウト
exit
EC2にファイルをアップロード
scp -i [キーペアのパス] ec2-user@[パブリックIPv4アドレス]:[サーバー上のディレクトリパス]
※ -r をつけるとディレクトリをアップロードできます
例
scp -i ~/.ssh/test-server.pem ~/Documents/index.html ec2-user@123.123.123.123:~/
index.htmlをEC2のhome以下に配置する
scp -r -i ~/.ssh/test-server.pem ./html ./lib ./template ec2-user@123.123.123.123:~/work
./html ./lib ./template の3つのディレクトリをEC2のhome以下のworkディレクトリ以下に配置する
EC2にNGINXをインストール
amazon-linux-extrasでnginxをインストールできるようにする
sudo amazon-linux-extras enable nginx1
yumでnginxをインストール
yum clean metadata
sudo yum install nginx -y
systemctlでnginxを操作
起動
sudo systemctl start nginx.service
停止
sudo systemctl stop nginx.service
再起動
confファイルを修正した後は再起動をして反映點せましょう。
sudo systemctl restart nginx.service
自動起動を有効にする
以下を実行しておけばEC2起動時に自動でnginxが起動されます
sudo systemctl enable nginx.service
ドキュメントルートにファイルを設置する

/usr/share/nginx/html/以下にファイルを配置する場合は以下のようにします。
sudo mv [ファイルのパス] /usr/share/nginx/html/
※/usr/share/nginx/html/がnginxのデフォルトのドキュメントルートです(変更可能)
例: ~/index.html を移動する場合
sudo mv ~/index.html /usr/share/nginx/html/
例: ~/html/ 以下のすべてのファイルを移動する場合
sudo mv ~/html/* /usr/share/nginx/html/
EC2の操作
amazon-linux-extrasでphpをインストールできるようにする
sudo amazon-linux-extras enable php7.4
yumでnginxをインストール
yum clean metadata
sudo yum install php-cli php-pdo php-fpm php-json php-mysqlnd -y
yum
パッケージ管理のためのコマンドです。
ソフトウェアをかんたんにインストール、アンインストールなど行うことができます。
systemctlでphp-fpmを操作
起動
sudo systemctl start php-fpm.service
停止
sudo systemctl stop php-fpm.service
再起動
confファイルを修正した後は再起動をして設定を反映させましょう。
sudo systemctl restart php-fpm.service
自動起動を有効にする
以下を実行しておけばEC2起動時に自動でphp-fpmが起動されます
sudo systemctl enable php-fpm.service
NGINXでのPHPの設定
nginxの設定を変更
sudo vim /etc/nginx/default.d/php.conf
/etc/nginx/default.d/php.confを修正します
fastcgi_intercept_errorsがonの場合は、PHPが404を返したときにnginxで設定しているerror_pageのページが表示されます。
今回はoffにします
fastcgi_intercept_errors on;
↓ 変更
# fastcgi_intercept_errors on;
あるいはonをoffにする
変更した設定を反映
sudo systemctl restart nginx.service
参考
ファイルアップロード~ドキュメントルート配置まで
参考にファイルアップロードからファイル配置までを行ったコマンドを書いておきます
EC2のIPはAWSのコンソールにログインして確認してください(以下の例では123.123.123.123にしています)
scp -r -i ~/.ssh/test-server.pem ./html ./lib ./template ec2-user@123.123.123.123:~/
ssh -i ~/.ssh/test-server.pem ec2-user@123.123.123.123
sudo mv lib template /usr/share/nginx/
sudo mv html/* /usr/share/nginx/html/