パブリックサブネットとプライベートサブネットを持つ VPCの作成


### マネジメントコンソールにログインして以下を実行

***  
   
**1.VPCを選択**  

![VPC](http://f.cl.ly/items/180E1N1G2q0x1E2E0C0D/AWS%20Management%20Console.png)
***

**2.VPC Dashboardを選択**  

![VPC Dashboard](http://f.cl.ly/items/0p0R1B1L0Z1W1L3D1B2F/VPC%20Management%20Console.png)
***

**3.Start VPC Wizardを選択**  

![](http://f.cl.ly/items/2z1A181K3c1i1T3d3310/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-12-01%2017.00.52.png)
***

**4.VPC with Public and Private Subnetsを選びContinueを選択**  

![](http://f.cl.ly/items/3d25163G0s3m1D0L1U2n/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-12-01%2017.09.22.png)
***
**5.必要に応じて編集してCreate VPCを選択**  

![](http://f.cl.ly/items/2W3j0O1e0q0t0I242S0V/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-12-01%2017.08.17.png)
***
【IP CIDR block】
VPC を作成する時に、1つの Classless Internet Domain Routing（CIDR）IP アドレスブロックに割り当てます。VPC 内のサブネットはこの範囲からアドレス指定されます。

【DNS hostnames】

VPC 内にインスタンスを起動したとき、VPC で DNS ホスト名が有効になっている場合にのみ、パブリック DNS ホスト名とプライベート DNS ホスト名がインスタンスに割り当てられます。デフォルトでは、DNS ホスト名はデフォルトの VPC と、VPC コンソールを使用して作成した VPC でのみ有効になります。　　

VPC 内のインスタンスに DNS ホスト名と DNS 解決がない場合、インターネットからインスタンスにアクセスすることはできません。

[【AWS発表】Amazon EC2 アップデート - 全ての皆様にVPC (Virtual Private Cloud)を!](http://aws.typepad.com/aws_japan/2013/03/amazon-ec2-update-virtual-private-clouds-for-everyone.html])  
***
> DNSホスト名 - default VPC内に起動されたインスタンスは全て、プライベートとパブリックなホスト名を持ちます。DNSホスト名は既存のVPCでは無効になっていますが、必要に応じて有効にできます。同じVPC内の他のインスタンスのパブリックホスト名を名前解決すると、対象インスタンスのプライベートIPが返されます。VPCの外のインスタンスのパブリックホスト名を名前解決すると、そのインスタンスのパブリックIPが返されます。
DNSの名前解決 - DNSの名前解決は全てのVPCで有効になっていますが、必要に応じてVPC内に用意されたDNSサービスの使用を無効にすることができます。  

***  

【サブネット設定は自動的にいい感じに設定してくれる】  

Public Subnet:  自動的に割り当て
Availability Zone:  自動的に割り当て
Private Subnet:  Public Subnetとは違うネットワーク帯で自動的に割り当て
Availability Zone:  Public SubnetのAZとは別のAZを自動割り当て

【NATインスタンス】

Instance Type: デフォルトは最小のm1.small (変更可）
Key Pair Name: 既存のキーが選択される
※NATインスタンスを作成しておかないと、Private Subnetに配置されたインスタンスからインターネットにアクセスできない。

【Hardware Tenancy】

Tenancy: Default (マルチテナント）
※Dedicated(single-tenant hardware)に変更可

**6.作成完了するのでcloseを選択**  

![s_VPC Management Console (1).png](https://qiita-image-store.s3.amazonaws.com/0/29788/f8163e5f-b449-9b65-8cde-35e8bd2c2a59.png)


そうすると以下が作成される

VPC x 1
Subnet x 2
Route Table x 2
Internet Gate Way x 1
Elastic IP x 1
EC2 NAT Instance x 1

2つ作ったサブネットの内、Public Subnetの方のデフォゲにInternet Gateway、Private Subnetの方のデフォゲを自動的に作成したNATに設定してくれる。
NATインスタンスに作成されたElastic IPが自動的にアタッチされる。

***

### 補足①  
VPCを選択するとDNS Settingsを編集できる。  

* Enable DNS resolution
インターナルDNS（AmazonProvidedDNS)を使用した名前解決を有効にする  

* Enabel DNS hostname support for instances launched in this VPC.
有効にするとインスタンス起動時にパブリックDNS名の付与を行う  

![](http://f.cl.ly/items/2X0a3L2g380b1y010538/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-12-01%2019.20.10.png)

### 補足②
VPC上でまだインスタンスが存在する場合、該当VPCは削除できない（当たり前ですが）    


![](http://f.cl.ly/items/2g2Z280t153R1C2L3V1Z/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-12-01%2019.30.29.png)


### 参考  

VPC回りを理解するために、以下が参考になります  

[AWSマイスターシリーズ Amazon VPC](http://adsj-contents.s3.amazonaws.com/meister-re%3AGenerate/20130828_AWS-Meister-reGenerate-VPC.pdf)

[JAWS DAYS 2013 札幌とVPCと私](http://www.slideshare.net/HiroshiKoyama/jaws-days-2013-vpc?ref=http://sssslide.com/www.slideshare.net/HiroshiKoyama/jaws-days-2013-vpc)

[VPCのつまずきポイント、設定したはずが通信不能に](http://itpro.nikkeibp.co.jp/article/COLUMN/20131108/516862/)

[インフラエンジニアに贈るAmazon VPC入門](http://dev.classmethod.jp/series/vpcfor-infra-engineer/)