AWS入門 EC2〜マネジメントコンソールとUserData〜[2015年10月版]


どうもこんばんわ、酒を飲みながらhogehogeしてます吉田です。
勢いでガンガン書いていこうと思ってますよー

---
###0.ゴール
今回はEC2です！AWSの花形EC2です！
Lambdaとかフルマネジドサービスにはまってるせいでサーバレスとか素敵だと思ってますがやっぱり基本はEC2

###1.EC2作成
![スクリーンショット_2015-10-11_1_18_27.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/088521f2-6850-2aff-3b4b-491b63dfb03f.jpeg "スクリーンショット_2015-10-11_1_18_27.jpg")
マネジメントコンソールからEC2を選択

![スクリーンショット_2015-10-11_1_18_50.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/01d00b84-30b4-4ffe-ee1e-71b8e96296c9.jpeg "スクリーンショット_2015-10-11_1_18_50.jpg")
右側のインスタンスを選択

![スクリーンショット_2015-10-11_1_19_00.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/60b04fb7-0c04-ada5-cebc-747a72b00339.jpeg "スクリーンショット_2015-10-11_1_19_00.jpg")
インスタンスの作成
ちなみに、既に作成したことがある場合は上のインスタンス作成を選択しましょう
![スクリーンショット_2015-10-11_1_19_08.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/405681c5-9371-c852-8555-ba23c9d05101.jpeg "スクリーンショット_2015-10-11_1_19_08.jpg")


今回はAMI（AmazonMachineImage：OSイメージ）はAmazonLinuxを選択します

![スクリーンショット_2015-10-11_1_19_36.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/eed171cf-9860-c430-6dbb-748e7552986b.jpeg "スクリーンショット_2015-10-11_1_19_36.jpg")


インスタンスタイプを選択します。
要はインスタンスのパワーを決めます。
書いてある通りt2.micro選択が無料枠の条件なので基本練習ならこいつですね

![スクリーンショット_2015-10-11_1_19_51.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/29236e56-146a-62e5-bff7-ea17d7dcd0d8.jpeg "スクリーンショット_2015-10-11_1_19_51.jpg")


軽く説明します。
マネジメントコンソールが日本語化されてからはほんとに書いてある通りなので恐ろしくわかりやすいですが一応説明しておきます。

- インスタンス数：この設定で起動するインスタンスの数を設定します。
- 購入のオプション:スポットインスタンス（競売で安いインスタンスを使える）を使う場合の設定です
- ネットワーク：VPCの選択をします。今回はデフォルトを指定
- サブネット：VPC内サブネットを指定します
- 自動割当パブリックIP：デフォルトVPCを使用していると意識しないのですが、パブリックIPって指定しないと自動で振られなかったりします。今回はデフォルト使っているので大丈夫ですが
- IAMロール：インスタンスに他のAWSサービスを弄らせたい場合ここでロールを設定してあげます（別途詳しく説明する記事を書きます）
- シャットダウン操作：インスタンスをシャットダウン（コマンドでシャットダウンコマンドを打った場合）の挙動を操作します。停止にしていますが削除にもできます。・・・そんなに使わないと思いますけど、削除とか
- 削除保護の有効化：こいつでチェックいれるとマネジメントコンソールで削除しようとしても保護が働いてそのままだと削除できなくなります。ミスオペの防止、大事です。
- モニタリング：CloudWathcってサービスの設定です（別途）
- テナンシー：サーバーラックごとワシのものにしたい！セキュリティ的に。ってイメージ。家で練習しているなら使うことは無いオプションかと。

---
####高度な設定
ここで選択できるテキストエリアに以下のコードを叩き込んでください。

```bash:UserData
#!/bin/bash
yum update -y
yum install -y httpd24 php56 mysql55-server php56-mysqlnd
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 {} +
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

```
公式サンプルそのままです
[Linux インスタンスでの起動時のコマンドの実行](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/user-data.html#user-data-shell-scripts)

起動したらPHPのはじめてページができるよう、勝手にApacheの起動までスクリプトでやっちゃいます。

---

![スクリーンショット_2015-10-11_1_20_40.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/98beaf19-78c6-05a6-5f2d-b470a1de3ac9.jpeg "スクリーンショット_2015-10-11_1_20_40.jpg")

ストレージの設定をします。
EBSはなかなか勉強すると難しいですが、今回は気にせず進んでください。

![スクリーンショット_2015-10-11_1_20_53.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/e16775c9-0118-cc06-44a5-b6fca9872807.jpeg "スクリーンショット_2015-10-11_1_20_53.jpg")
![スクリーンショット_2015-10-11_1_22_02.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/83d6a6ea-09ed-d9cd-fa02-e336b905d1c4.jpeg "スクリーンショット_2015-10-11_1_22_02.jpg")

間違ってHTTPS状態でスクショ撮ってますがHTTPにしてください。
![スクリーンショット_2015-10-11_1_22_08.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/8827aed0-b792-fed3-5fec-09d931f96674.jpeg "スクリーンショット_2015-10-11_1_22_08.jpg")
サマリが出るので確認

![スクリーンショット_2015-10-11_1_22_23.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/f87afc9d-aae0-ce77-036d-012e47aac039.jpeg "スクリーンショット_2015-10-11_1_22_23.jpg")

キーペアを選択します。
初めての時は下のように新しいキーペアを作成してください。

![スクリーンショット_2015-10-11_1_22_33.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/96dd082e-4db9-d2b0-13f2-35e50efe728d.jpeg "スクリーンショット_2015-10-11_1_22_33.jpg")
![スクリーンショット_2015-10-11_1_22_44.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/28ce4268-4dd8-34ab-c6f3-0d62c288e204.jpeg "スクリーンショット_2015-10-11_1_22_44.jpg")


![スクリーンショット_2015-10-11_1_22_56.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/e587e5e9-d963-8998-eb01-cfa5e8429bb7.jpeg "スクリーンショット_2015-10-11_1_22_56.jpg")

####インスタンスができた！！！
少し待ってちゃんと設定が（自動で）されると・・・

```URL:http://<インスタンスのパブリックIP>/phpinfo.php``` にブラウザからアクセスすると・・・

![スクリーンショット_2015-10-11_2_06_10.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/86991985-b863-02e9-2618-7d4e219f7df0.jpeg "スクリーンショット_2015-10-11_2_06_10.jpg")

####Apacheが、動いてる！

---

以上でApacheが導入されたLinuxサーバを手に入れることができました。
しかも従量課金で、月750時間まで無料で使えるんですよ！
自己学習ツールには持って来いですね！

###2.インスタンスへのログイン方法
####Mac
ターミナルからログインします
ダウンロードしたキーペアの権限設定をします。
余談ですが、僕はクラスメソッドさんのブログでむかしpemファイルは.sshで管理しよう！って書かれてるのを見てから.sshに格納するようにしています。

```bash:pemファイルの設定
mv <pemファイルのパス> .ssh/
chmod 400 .ssh/***.pem
```
では、インスタンスにログインします

```bash:ログイン
ssh -i <pemファイルのパス> ec2-user@<インスタンスのパブリックIP>
```
当然ですが、インスタンスにパブリックIPを振る設定をしていないとインスタンスにログインすることはできません。
ログインのユーザーは```ec2-user```というユーザーです。
設定でログインユーザーは変えたりもできます。
ログインできるとこんな感じになります。

```
       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2015.09-release-notes/
[ec2-user@ip-******** ~]$ 
```

###3.おわり
さて、今回はAWSの基本EC2の起動とApacheの起動までみていきました。
ここまでの内容をCLIベースでやるには私が以前ポストした以下の記事を参考にしてみてください。
では、みなさま楽しいAWSライフを〜♪

###[EC2をCLIで立てる](http://qiita.com/Yuki_BB3/items/9a7e803245a9235de87d)