「Amazon Web Services 定番業務システム12パターン設計ガイドを読みながら実際に構築する① 〜VPCとサブネットとEC2とセキュリティーグループ〜

# 概要
自分は普段Webやアプリのバックエンドエンジニアとして従事しており、ここ1年はずっとアプリのバックエンドとして、開発、保守を担当している。
インフラは当然のようにAWSが使われているが、構築と保守自体はアウトソーシングされているため、設定変更などは依頼ベースとなっている。
そんな事で知見はある程度貯まっていくが、自分で触らない以上最低限のレベルには到達出来ないという想いから本を買って実際に手を動かす事にした。

まず、以下の本が評判良かったのでAmazonで即購入。
<a target="_blank" href="https://www.amazon.co.jp/gp/product/B01IB6Q1CA/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B01IB6Q1CA&linkCode=as2&tag=amazooooooooo-22&linkId=2c5db08621964edf2076fdd39e0022b3">Amazon Web Services　定番業務システム12パターン設計ガイド</a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=amazooooooooo-22&l=am2&o=9&a=B01IB6Q1CA" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

本に書いてある事はなるべく書かないで、それ以外にやった事や、本当にど素人だとつまづきそうなところ、自分もハマったところを中心に書いていこうと思う。
# はじめに - P3
この本の特徴としては、EC2、S3といった個々のサービスの機能についてはネットや各種書籍で得られるが、サービスをどう組み合わせてシステムを設計していくかというノウハウ、知見が充分でないのでこの本はそこを重点的にケアしている、みたいなことが書いている。

# 1章 Webシステム - P9

## 1-1 [パターン1]キャンペーンサイト - P10
まずは、シンプルな構成のキャンペーンサイトを例に、最小構成となる公開Webサーバの作り方を紹介するとの事。
概要やインフラデザインのポイントは本書を参照して欲しい。
リュージョンやアベイラビリティーゾーンの説明のあと、まずはお馴染みのEC2を一つだけ作成するとの事で、以下がイメージ図（図５）となる。（本書とは多少アイコンとか差し替えてます）
ところが
```事前にVPCとサブネットから成る仮想ネットワーク環境を作成しておく必要があることを覚えておきましょう```
とあり、「いやそこから教えてくれよ」と思った。

P15
<img width="536" alt="図5.png" src="https://qiita-image-store.s3.amazonaws.com/0/113039/011c1e01-3648-7e7e-5eda-88ba01fe564d.png">

### VPCを作る
---
1.　AWSコンソールにログインし、TOP画面より「VPC」ボタンを押下し、VPCダッシュボードへ
2.　「VPCウィザードの開始」なるボタンがあるので押してみる
3.　【ステップ1:VPC設定の選択（下記画面）】に遷移する
4.　「1個のパブリックサブネットを持つVPC」のまま「選択」ボタン押下


<img width="1057" alt="VPC001.png" src="https://qiita-image-store.s3.amazonaws.com/0/113039/93858394-6abd-af79-6a44-ee4bd9011ab6.png">
---
5.　 【ステップ2:1個のパブリックサブネットを持つVPC】
<img width="835" alt="VPC002.png" src="https://qiita-image-store.s3.amazonaws.com/0/113039/593a89e8-c52c-f5ef-0894-6d8a6fdac238.png">
---
6.　VPC名に「vpc_1-1」を入力。アベイラビリティゾーンは「ap-northeast-1a」を選択して、「VPCの作成」ボタンを押下

<img width="936" alt="VPC003.png" src="https://qiita-image-store.s3.amazonaws.com/0/113039/fba73cb2-b8ff-85da-80ef-6b3f1f961c3e.png">
---
7.　VPCが作成されたらしい。上記のメッセージを見る限り、サブネットも同時に作られるらしい。
<img width="1428" alt="VPC004.png" src="https://qiita-image-store.s3.amazonaws.com/0/113039/c15038d0-ece0-7e50-29d3-25a9d022ac1d.png">
---
8.「VPCダッシュボード」の「VPC」を見ると、上記のように「vpc_1-1」が作成されている。

<img width="643" alt="VPC005.png" src="https://qiita-image-store.s3.amazonaws.com/0/113039/85530784-36f3-6b60-60fb-ddd5775c8a0c.png">
---
9.「VPCダッシュボード」の「サブネット」を見ると、一番下にデフォルトで指定した「パブリックサブネット」という名前で作成されている。
### EC2を作る - P16
---
ようやく本に戻れる
1. AMIは「AmazonLinux」を選択
2. インスタンスタイプは、本は「t2.medium」とあるが、無料利用枠の「t2.micro」を選択
3. インスタンスの詳細の設定を本の通り先ほど作ったVPCを選択などして設定
4. セキュリティーグループのSSHの送信元はデフォルトの *0.0.0.0/0* だと、秘密鍵さえあればどこからでも入られてしまう危険性があるため、 ```<自分のIP>/32```とした。後ろの/32はサブネットマスクを示し、上位から何ビットまでがネットワークIPを指すかを示す。サブネットマスクが何かなどはググればいくらでも出てくるので割愛するとして、32とすれば全ビットなので指定したIPのみという事になる。自分のIPは [ifconfig.me](http://ifconfig.me/) で調べるとよい。
5. 最後にsshのキーペアを作成するか聞かれるので作成する（ここでダウンロードした鍵は秘密鍵という、公開鍵認証方式という方法でサーバにsshログインするために大切なものなので大切に保管すること。誰かにあげる場合も必ず圧縮パスワードなどで保護すること）。あとここでダウンロードしたら二度とダウンロードする機会はないのでなくさないこと。

---
今回はここまで。次回はElastic IPの関連付け、Route53等の予定。
[Amazon Web Services 定番業務システム12パターン設計ガイドを読みながら実際に構築する② 〜Route53〜](https://qiita.com/tera78/items/9f95301e8b2ecb200e78)