[JAWS-UG 磐田] JAWS DAYS 2017ハンズオン

#【ＡＷＳワークショップ】**AWS初心者いらっしゃい**
## **◆**概要
　ＡＷＳに興味はあるけど、どうしたらいいか分らないあなたへ
　基本のS3(ストレージ)、EC2(サーバ)、IAM(AWSアカウント管理)について解説を交えて使い方を伝授します。
- - -
## **◆**AWSワークショップを始める前に
#####　・パソコンの準備をお願いします。
　　※当ワークショップは、パソコンでのハンズオンを実施いたします。
#####　・会場設置のWi-Fiへ接続願います。
　　※インターネットへの接続を前提としています。
#####　・AWSアカウントの準備はお済みですか？
　　※ハンズオン開始前までに準備願います。
　　　作成手順：https://aws.amazon.com/jp/register-flow/
#####　・ターミナルソフトウェアの準備
　　※EC2（サーバ）の操作時に使用します。
　　　Windowsクライアントの方は、Tera TermやPuTTYなどをご用意ください。
#####　・ハンズオン終了後の操作について
　　※使用したEC2、S3は、AWSの課金対象になります。必要ない場合は、削除してください。
　　　[EC2の削除手順 [補足資料：EC2編 #1]](https://goo.gl/LXADkN)、[S3の削除手順](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/gsg/DeletingAnObjectandBucket.html)、[S3の削除手順 (新コンソール：オプトイン)](http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/user-guide/delete-bucket.html)
- - -
## **◆**今回の演習環境について
#####**①**ＩＡＭの管理について　**②**ＥＣ２を使用してWebサイトを構築　**③**Ｓ３を使用してWebサイトを構築
![image](https://qiita-image-store.s3.amazonaws.com/0/168665/e99bae47-6dd1-5318-9295-200de7d668b4.png)
- - -
## **◆**ハンズオンを始める前に・・・
#####・AWSマネジメントコンソールにログインして、東京リージョンが選択されている事を確認してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/168665/6d7c11dc-da83-40a0-e0c7-5515ba1373bc.png)
- - -
#####・画面上にIAM・EC2・S3の文字が表示されている事を確認してください。
　※表示されていない場合は、画面左上のサービスをクリックして各サービスを選択してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/168665/d70ce94b-2ce1-c6cf-892f-49e4af5b507d.png)
- - -
## **①**ＩＡＭの管理について
#####**１．**AWSマネジメントコンソールから**IAM**をクリックする。
#####**２．**最初のＩＡＭ管理者のユーザーおよびグループを作成する。　[[補足資料：IAM編 #1]](https://goo.gl/ujWtUV)

|ユーザー名|グループ名|
|:--------|:---------|
|admin-user|admin-group|
#####**３．**新規作成したユーザーでログインしてみよう。
　※AWSマネジメントコンソールをログオフしてから実施してください。
　・保存した.csvファイルを開き、Console Login LinkのURLに接続します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/168665/2d7aebd5-1896-2b63-78cb-4b4e7921ba99.png)
　・ユーザー名、パスワードを入力してサインインします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/168665/40193220-8631-ec05-9eba-42886179c758.png)

#####**４．**IAMロールを作成する。　[[補足資料：IAM編 #2]](https://goo.gl/8YLygb)

|IAMロール名|
|:--------|
|EC2Role|

|選択するポリシー|
|:-------------|
|AmazonEC2RoleforSSM|
|AmazonS3FullAccess|

[補足キーワード]：MFA(多要素認証)、ポリシーなど
[参考資料：AWS Black Belt Online Seminar (AWS IAM) ](https://d0.awsstatic.com/webinars/jp/pdf/services/20160921_AWS-BlackBelt-IAM.pdf)
- - -
## **②**ＥＣ２を使用してWebサイトを構築
#####**１．**AWSマネジメントコンソールから**EC2**をクリックする。
#####**２．**EC2サーバ作成前の事前準備　[[補足資料：EC2編 #2]](https://goo.gl/LaU65I)
　初めに、EC2サーバへ接続するために必要な[キーペア]と[セキュリティグループ]を作成します。

|キーペア名|
|:--------|
|jawsug-Hands-on|

|セキュリティグループ名|説明|
|:-------------------|:---|
|jawsug-Hands-on-sg|EC2 Hands on Security Group|
インバウンドルール

|タイプ|プロトコル|ポート範囲|送信元|
|:----|:---------|:-------|:-----|
|HTTP|TCP|80|カスタム　0.0.0.0/0|
|SSH|TCP|22|マイＩＰ　xx.xx.xx.xx/32|
※[マイＩＰ]を指定すると、マネジメントコンソール接続で使用しているグローバルアドレス（xx.xx.xx.xx/32）が自動的に入力されます。

#####**３．**EC2サーバの作成　[[補足資料：EC2編 #3]](https://goo.gl/x5vi63)

```Bash:ユーザーデータ
#!/bin/bash
yum update -y
cd /tmp
curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o amazon-ssm-agent.rpm
yum -y localinstall amazon-ssm-agent.rpm
yum install -y httpd24
curl http://jawsug-iwata.s3-website-ap-northeast-1.amazonaws.com/jawsdays2017/sample.tar -o sample.tar
cd /var/www/html
tar xvf /tmp/sample.tar
echo ErrorDocument 404 /error.html > /etc/httpd/conf.d/error.conf
service httpd start
chkconfig httpd on
groupadd www
usermod -a -G www ec2-user
chown -R root:www /var/www
chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} +
find /var/www -type f -exec chmod 0664 {} +
```

|Nameキーの値|
|:--------|
|jawsdays-2017-ec2-server|

#####**４．**EC2サーバに接続してみよう。
・作成したEC2サーバを選択し、[接続]をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/168665/f069be75-91d5-db09-03a6-9174febec9b7.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/168665/dc2fce6c-8bf8-2aa8-791a-62107846b984.png)
・上記画面のNo.4で記載している**パブリックDNS**をコピーし、ブラウザで接続します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/168665/0fe8675a-40a9-7dae-3140-28f8ff14950c.png)

[補足キーワード]：SSM エージェント、IAMロールなど
[参考資料：AWS Black Belt Online Seminar (Amazon EC2) ](https://d0.awsstatic.com/webinars/jp/pdf/services/20160413_AWS-BlackBelt-EC2.pdf)
- - -
## **③**Ｓ３を使用してWebサイトを構築
始める前に、[バケット名一覧](https://docs.google.com/spreadsheets/d/1jlytlXsZLYk83yoV4af8-LWsCjFMv4TnbFo9SpoTgpc/edit?usp=sharing)を開いてください。
　※配布した紙の番号の行をハンズオンで使用します。
#####**１．**AWSマネジメントコンソールから**S3**をクリックする。
#####**２．**S3バケットの作成　[[補足資料：S3編 #1]](https://goo.gl/4gUWQI)
|バケット名|選択するリージョン|
|:--------|:---------|
|*配布した紙に記載されている番号のバケット名*|アジアパシフィック（東京）|
　※１バケット名は、Amazon S3 にある既存のすべてのバケット名と異なる必要があります。 
　※２バケットを作成した後で名前を変更することはできないので、よく考えて選択してください。 
　※３バケット名はバケットに格納しようとしているオブジェクトを指し示す URL に組み込まれるので、バケット内のオブジェクトを反映したバケット名を選択します。
#####**３．**S3バケットのWebサイト公開設定　[[補足資料：S3編 #2]](https://goo.gl/eFuZMq)
|インデックスドキュメント|エラードキュメント|
|:--------|:---------|
|index.html|error.html|

```xml:バケットポリシー
{
  "Version":"2012-10-17",
  "Statement":[{
	"Sid":"PublicReadGetObject",
        "Effect":"Allow",
	  "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::作成したバケット名/*"
      ]
    }
  ]
}
```
　※[作成したバケット名]の箇所を修正してから、コピーしてください。
#####**４．**AWSマネジメントコンソールから**EC2**をクリックする。
#####**５．**EC2のコンテンツをS3バケットにアップロード　[[補足資料：EC2編 #4]](https://goo.gl/WMbEIS)
```bash:シェルコマンド
aws s3 sync /var/www/html/ s3://作成したバケット名/
```
　※[作成したバケット名]の箇所を修正してから、コピーしてください。

#####**６．**S3バケットのWebサイトに接続してみよう。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/168665/9a5df48e-0297-71f7-f6c2-8c2ed32d9b7d.png)
[補足キーワード]：Amazon EC2 Systems Managerなど
[参考資料：AWS Black Belt Online Seminar (Amazon S3) ](https://d0.awsstatic.com/webinars/jp/pdf/services/20160525_AWS-BlackBelt-S3.pdf)
[参考資料：AWS Black Belt Online Seminar (Amazon EC2 Systems Manager) ](https://d0.awsstatic.com/webinars/jp/pdf/services/20170222_AWS-BlackBelt-EC2SystemsManager_revB.pdf)
- - -