AWS Starter Accountで初回ログインからWebページを公開するまで

# 前提
[AWS Starter Accountは取得済み](http://qiita.com/DaiHasegawa/items/4b8b030a59456363ed8a)

# Login
AWS Starter AccountはThird PartyのQWIKLABSが提供しています。そこで、最初はQWIKLABSのページからアカウント利用の手続きをします。

### AWS Starter Accountの利用を開始する
- [Loginページ](https://www.awseducate.com/student)にいきemailアドレスとパスワードを入力する
- ログイン後、上のヘッダーメニューから”AWS Account”へ
- ↓のようなページに飛ぶので”Go to your…”ボタンをクリック なぜか同じページに飛ばされる時もあるがいずれ次のページ （quiklabs）に飛べる

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/fcade33a-46e2-cd55-2aea-f1aa0f9145ec.png)

- 飛ばされるページ（quiklabs）は下のような感じ

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/7896d7fd-3cd1-2917-0b69-1087d43a426b.png)

- <font color="OrangeRed">**END LAB は押さないこと！押すと残り時間・クレジットにかかわらずEducate Starter Accountの使用が終了してしまう **</font>
- 初回は、画像では`END LAB`になっているボタンが`START LAB`と表記された緑色のボタンになっているのでそこをクリックして、初回設定が終わるまで待つ（いつまでもボタンが変化しない場合は、一度Loginページからログアウトして、再ログインしてみる）

### AWS Consoleへのログイン

- 終わったら、左の`OPEN CONSOLE`をクリックすることでAWSコンソールへ行くことができる 例によってここも一回だとうまく飛べないことがあるがだいたい2回目で飛べる


![image](https://qiita-image-store.s3.amazonaws.com/0/142277/b0632d86-ce64-d5b0-5229-229ee4cea285.png)


# EC2インスタンス（汎用コンピューティングリソース）の作成

### EC2ダッシュボード
- AWS Consoleから`EC2`をクリック

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/b0632d86-ce64-d5b0-5229-229ee4cea285.png)


### インスタンス作成開始
- 右上のリージョンの表示が`オレゴン`になっていることを確認する
- `インスタンスの作成`をクリック

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/d57db7d2-3f6c-8ad9-87f8-f05133d726ca.png)




### Amazon Machine Image (AMI) の選択
- `Amazon Linux AMI`を選択

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/bf051fbe-92ed-3323-104a-f6bfe0f47781.png)

### インスタンスタイプの選択
- `t2.micro`を選択

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/11c43e70-33f7-c8ad-7932-351d98674c82.png)

### インスタンス詳細の設定
- デフォルトのまま次に進む

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/55534ef7-ec32-18ea-5584-adcb3ae3cfb6.png)


### ストレージの追加
- ストレージサイズを20Gぐらいに変更して他はデフォルトのまま次に進む

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/1ecaf885-bb45-dfce-8884-9761126f82cd.png)

### タグの設定
- `Exp1-WebAPP`など自分でわかりやすい名前をつける

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/2c75fcd3-c491-9867-9122-00f9f874b07d.png)

### セキュリティグループの設定
- 新しいセキュリティグループを作成するにチェック
- `ルールの追加`から [ssh, tcp, 22, 0.0.0.0/0], [http, tcp, 80, 0.0.0.0/0]の２つのルールを定義
- 「送信元：0.0.0.0/0」はどこからでもアクセス可能ということなので運用上は注意

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/742b7712-ff73-3505-2b9f-c704cd7ab8cb.png)

### 設定の確認
- 確認して`作成`をクリック

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/baceb4c5-8a79-138f-b5ab-7544d58e42cb.png)

### SSHキーペアの作成
- モーダルが出てくるので「新しいキーペアの作成」、`exp1-webapp`などインスタンスに対応したファイル名を入力
- キーペアをダウンロード（サーバにSSHログインできなくなるのでなくさないようにする）
- `インタンスの作成`をクリック

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/5fa7d20d-9461-70f9-b978-56972fc2bb43.png)

### 起動確認
- EC2コンソールでインスタンスの状態が`running`になれば使用可能に
- 詳細説明にあるパブリックDNS or パブリックIPを対象にssh接続できる(パブリックDNS名をメモしておく)
- インスタンスは右クリック or “アクション”->”インスタンスの状態”から 起動、停止できる
-  削除すると設定がまるごと消えるので注意
- <font color="OrangeRed">**起動しているだけで利用料金がかかるので、必要のないときは停止しておくこと **</font>
- <font color="OrangeRed">**t2.microだと1ヶ月起動させっぱなしにすると＄30ぐらいの利用料になる **</font>
- <font color="OrangeRed">**＄75を超えると自動的に利用できなくなる **</font>

![image](https://qiita-image-store.s3.amazonaws.com/0/142277/7131c043-ee0e-b063-69a2-25f5d579cb29.png)


# 利用料の通知について
- 利用料キャップの50%、70%、90%に達すると通知されるようです。見逃さないようにしましょう。

[Will I get billed if my charges exceed the amount of available credit in the AWS Educate Starter Account?](https://www.awseducate.com/microsite/FAQs#fa0Po000000C0dmQEAR) 
>No, you will not be billed for use of AWS services because your usage is capped at your allocated AWS credit amount. The AWS Educate Starter Account alert system (through qwikLABS) will send out notifications when 50%, 75% and 90% of the AWS credit allocated in the AWS Educate Starter Account has been utilized. Once the AWS credit is depleted, the account will be terminated. We strongly recommend making a backup of important data to your local storage

# サーバ構築（Windows）
sshキーペア、ec2インスタンスのパブリックDNSが必要

### ログイン
- TeraTermをインストール
- EC2インスタンスにSSH接続する
    - host: `パブリックDNS名`
    - protocol/port: `ssh/22`
- ユーザ名とSSHキーを指定する
    - user: `ec2-user`
    - RSA鍵: `保存したSSHキーペア` (.pem拡張子のファイルが表示されない場合は表示対象を`すべてのファイル`にしてみる)

### Webサーバのインストールとドキュメントルートの権限設定

(参考: [チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/install-LAMP.html))

>```shell-session
[ec2-user ~]$ sudo yum update -y
[ec2-user ~]$ sudo yum install -y httpd24
[ec2-user ~]$ sudo service httpd start
Starting httpd:                                            [  OK  ]
[ec2-user ~]$ sudo chkconfig httpd on
[ec2-user ~]$ chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
[ec2-user ~]$ ls -l /var/www
total 16
drwxr-xr-x 2 root root 4096 Jul 12 01:00 cgi-bin
drwxr-xr-x 3 root root 4096 Aug  7 00:02 error
drwxr-xr-x 2 root root 4096 Jan  6  2012 html
drwxr-xr-x 3 root root 4096 Aug  7 00:02 icons
[ec2-user ~]$ sudo groupadd www
[ec2-user ~]$ sudo usermod -a -G www ec2-user
[ec2-user ~]$ exit
``` 

> 一度ログアウトして再接続

>```sell-session
[ec2-user ~]$ groups
ec2-user wheel www
[ec2-user ~]$ sudo chown -R root:www /var/www
[ec2-user ~]$ sudo chmod 2775 /var/www
[ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} \;
[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;
```

> ブラウザから`http://パブリックDNS名`にアクセスしてページが表示されればOK

### デプロイ
- TeraTermのメニュー[ファイル]->[SSH SCP]をつかう
- ウェブサーバのドキュメントルート`/var/www/html`以下にファイルをアップロードする
- `http://DNS名/example.html`などでアクセスし確認する