AWS EC2を利用し、Node.jsアプリを作成する　EC2初期設定備忘録（前編）

#はじめに

アプリ制作をする上で学んだことを備忘録として残していこうと思っています。
今回はAWS EC2インスタンスを使用してアプリを作ろうと思ったので、その過程でつまづいたことわからなかったことなどを書いていけたらなと思います。

長くなったので前、後編に分けてあります。
AWS EC2を利用し、Node.jsアプリを作成する　EC2初期設定備忘録（後編）：https://qiita.com/kobyta/items/acb5b8f484dc3c79db50

#目次

下のような順番で書いていきます

- AWSでアカウントを作成
- AWSにルートユーザーでサインイン、IAMユーザー作成
- EC2インスタンスの作成
- SSHでEC2インスタンスへ接続
- LAMPサーバー(Apache,MariaDB,PHP)のインストール
- Node.jsのインストール

#AWSアカウントを作成

アカウントの作成方法です。最初にAWSのサイトに行ってください。以下のページからAWSサイトにいけます

AWS URL:https://aws.amazon.com/jp/


![スクリーンショット 2019-07-29 20.38.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449631/1dfcf403-f818-1954-80f1-ca23d75ed257.png)

上の黄色い「アカウント」から入り、登録してください。途中でクレジット登録を求められますが、最初の1年は無課金のプランで作成できるので安心して進んでください。

サポートプラン選択画面では、無課金のベーシックプランを選択、最後のアカウント作成完了画面で「コンソールにサインイン」ボタンを押し、次に進んでください。

#AWSにルートユーザーでサインイン、IAMユーザー作成

AWSのアカウント設定後、「コンソールにサインイン」を押すとサインイン画面に飛びます。
ここでは普通にAWSアカウントで設定したメールアドレスを入れてください。
パスワードを設定し、サインインするとAWS マネジメントコンソールに飛びます。下の画面です。
![スクリーンショット 2019-07-29 20.49.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449631/30fec41a-749d-6c9b-1056-739b73270f76.png)

まず右上の黄色い四角に注目してください。ここは初期設定だとオハイオ？になっているので、「アジアパシフィック(東京)」に変更しておいてください。

- 一言メモ「リージョンに東京を選ぶ理由」
ここに書いてあるリージョンはAWSを提供する国・地域というだけであって、別に東京にしなくても使えます。しかし地理的に近いリージョンの方がネットワークのレスポンスが早いため、日本国内から利用する場合は東京にしておくことが多いそうです。東京以外のリージョンを使う場合もありますが、その場合は①東京リージョンでまだ提供されていないサービスを使いたい②別のリージョンの方が東京リージョンより安い等の理由があるみたいです。

次に左上のサービスを選択し、左にある「IAM」⇨「ユーザー」からIAMユーザーを追加します。下の画面です。

![スクリーンショット 2019-07-29 20.55.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449631/6b0cce91-73fc-ae00-558f-d735cf00751f.png)

- 一言メモ「なぜ、IAMユーザーを登録するのか」
ここがチュートリアルを見たとき、よくわからず嵌りました。そもそもIAMユーザーとは何か。ルートユーザー(最初にAWSアカウントを取っているユーザー)と比較するとわかりやすいです。
 - ルートユーザー　⇨　AWSにおける全ての権限を持つユーザー。AWSに対する操作、支払い方法の変更や解約、契約に対する操作等々。めちゃくちゃ強力な力を持っている。IAMユーザーに任意の権限を与えることも可能。
 - IAMユーザー　⇨　ルートユーザー以外のユーザー。

- IAMユーザーの説明は雑ですが、こんな感じの理解です。そして肝心のなぜIAMユーザーを設定するかですが、ルートユーザーはとても強力な力を持っているので、万一そのアカウントが漏洩すると大変なことになります。そのためわざわざ別のアカウントを作成し、権限を持たせて、普段はそっちのアカウントを操作するようにするということです。

なぜ設定するのか、僕の理解は上のような感じです。それでは設定を始めます。
一個前の画像の「ユーザーを追加」でユーザーを追加できます。

![スクリーンショット 2019-07-29 21.01.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449631/cb5cd428-d815-eeba-37b9-88d1b043b14c.png)

ユーザー名を求められるので、チュートリアルに倣って「Administrator(管理者)」と名付けておきますが、なんでもいいです。

下のアクセスの種類ですが、プログラムによるアクセスは「アクセスキー」と「シークレットアクセスキー」は漏洩すると第３者によるアクセスが可能になってしまうので、特に必要のない場合はチェックをつけずに進みます。（必要になった場合、後で追加できます。）
AWSマネジメントコンソールへのアクセスはチェックをつけ、適当なパスワードを入れてください。

パスワードのリセットはオフにしておきます。ここにチェックをつけておくと初回ログイン時にパスワードの変更を求められます。

全ての入力が終わったら、「次のステップ：アクセス権限」に進みます。

![スクリーンショット 2019-07-29 21.04.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449631/e1c47e34-70fb-2a22-0706-4cdb43a0df1c.png)

アクセス権の設定には３つ選択肢があります。今回は「ユーザーをグループに追加」の「グループの作成」を押してください。そうすると下のようにグループ名とポリシーを選べという画面が出てきます。

![スクリーンショット 2019-07-29 21.06.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449631/cf43a6aa-bbe0-6a49-fc28-2be6d329e6f7.png)

そこでチュートリアルに倣い、グループ名を「Administrators」とし、ポリシーを「AdministratorAcces」とします。この「AdminisyratorAccess」はAWSサービスにおける全権限(契約内容に関するものは除く)を有するポリシーで、今回それを新しく作るIAMユーザーに付与することになります。
入力し終わったら、「グループの作成」⇨「次のステップ：タグ」で次に進みます。

- 一言メモ「アクションとポリシー」
AWSにおける操作は「アクション」と呼ばれる単位で構成されています。「仮想サーバーを作成するアクション」、「ストレージを読み込みできるアクション」等々です。アクションはとても数が多いので、一つ一つ設定すると煩雑になります。そのため目的ごとにアクションをまとめた「ポリシー」と呼ばれるものをIAMユーザーに適用することで権限を付与します。

- 一言メモ「IAMグループ」
今回権限を付与する際、グループを作って権限を付与しています。このグループをIAMグループと呼び、今回やった通り、IAMユーザーをグループ化して権限を付与することができます。IAMユーザー一人一人に権限を付与したい場合は一番右の「既存のポリシーを直接アタッチ」から付与できます。

![スクリーンショット 2019-07-29 21.11.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449631/1981aeae-eca0-09cc-5dcf-365378b5101d.png)

次のページでは、タグの設定をします。タグは作成したユーザーに対してメモ書きを残す機能ですが、今回は特に何も設定しなくて良いです。
「次のステップ：確認」に進みます。
![スクリーンショット 2019-07-29 21.13.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449631/1e9047c7-17c0-3c28-54a0-14a672bd457c.png)

ここで「ユーザーの作成」を行うとユーザーが作成されます


![スクリーンショット 2019-07-29 21.13.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449631/8485125d-d200-a40f-b288-6e1b7472de58.png)

サインインのURLの確認画面が出てきます。IAMユーザーでサインインする場合、このURLを使います。CSVをダウンロードするとこのURLがダウンロードできるので、ダウンロードしておきます。

最後に作成したIAMユーザーでサインインします。先ほどのCSVファイル中の「Console login link」をクリックすると、サインイン画面に飛ぶので、サインインします。
そうするとIAMユーザーのAWSマネジメントコンソールに飛ぶことができます。

![スクリーンショット 2019-07-29 21.15.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449631/ad4600fa-fa01-6741-d35f-878ec3822d1a.png)

サインインした先のAWSマネジメントコンソールでは確かに右上の黄色に塗りつぶしてある部分が設定したユーザー名、アカウント番号になっていると思います。ここから各種操作をしていきます。

残りの項目は後編に書きます