AWSが何なのかがわからない人のためのエントリー

#はじめに
ネットワークの勉強（[3分間ネットワーキング](http://www5e.biglobe.ne.jp/aji/3min/)）をしていてそろそろ実践的な部分がないとちょっとモチベ高まるものないなーと感じ、AWSネットワーク入門を読んでまとめてみました。

超初歩の部分をやっていると思うので、AWSがそもそも何してるのかと言ったところがわからない方は是非参考にしていただければ嬉しいです。


#AWSとは
AWS(Amazon Web Service)とは、名前の通りAmazonが提供するクラウドで構成されたシステムです。ここでは、コンピュータ、ストレージ、ネットワークなどを仮想的に構築していくことができます。
本来、物理的なネットワークの構築などを一からしなければいけません。（この一からしなければいけないことに関しては、[3分間ネットワーキング](http://www5e.biglobe.ne.jp/aji/3min/)を読むとなんて面倒くさいことかがかるので暇な時どうぞ。）このめんどくさい物理的なネットワークの構築をクラウド上で瞬時に構築することができるので、多くの企業や個人が利用しているインフラ的役割を果たしているシステムです。

ただ、上記で瞬時に構築すると述べましたが色々細かい設定をしていかないといけないので、最低限の基本用語くらいは知っておかないときついです。
このエントリーでは、そもそもどんな所をAWSが便利にしてくれているのかをシステム全体から俯瞰しながら特徴など基本知識を書いていきたいと思います。


#オンプミス環境とAWS環境
##オンプレミス環境
ルータやスイッチングハブなどのネットワーク機器で構成されている環境のことを指します。
この環境を作るためには、初心者でもLANの仕組みなどのネットワークの勉強を一からして行かなければなりません。この環境を構築する作業の例として、もしインターネットに接続したいのであれば、インターネットの引込み線を選ぶところから始まり、それを繋げていく作業をしないといけないと行った具合の面倒さがあります。
とにかく物理的な機器類を用意してそれらを設定しなければいけないことにコストがかかっちゃいます。

![on-premises.001.jpeg](https://qiita-image-store.s3.amazonaws.com/0/130302/7d5c0dc0-e6a5-226a-445e-12d7a65c8e44.jpeg "on-premises.001.jpeg")


##AWS環境
AWS環境は上記で述べたようなオンプレミス環境の構築とは違い、クラウド上でネットワーク構築をほぼ完結させることのできる環境です。先ほど記述したルーターやスイッチングハブなども、AWSが仮想的要素として用意しており、すぐに設定をすることができます。
以下に全体の図を用意したのでみてもらった方がわかりやすいと思います。
そのあとの説明は図の中から重要なものを抜き出して説明文を述べていきます。

![on-premises.002.jpeg](https://qiita-image-store.s3.amazonaws.com/0/130302/cce58d6d-e02f-95a2-7691-0a5046f7654a.jpeg "on-premises.002.jpeg")

引用：https://www.cloud-koubou.jp/archives/1607






ここから見直し。








#AmazonVPC（Amazon Virtual Private Cloud）
AWSのクラウド環境では、契約者ごとに独立した **「ネットワークを構築できる場所」** が与えられます。AamazonVPCはその場所に仮想的なネットワークを構築することができます。ちなみにその **「ネットワークを構築できる場所」のことをVPC領域** と呼びます。（VPC領域については次の項目で説明します。）

#VPC領域とサブネット
VPC領域は上記の説明でもあったように「ネットワークを構築できる場所」として割り振られるものです。VPC領域を作成するときには、利用するIPアドレスの範囲を指定します。VPC領域を作るという操作は、「利用するIPアドレス範囲の枠組みを決める」ということだけで、まだ実体はありません。したがって、VPC領域を作っただけでは、そこにEC2インスタンス（仮想サーバー）を設置することはできません。
　そこでVPC領域を実際に使えるようにするために、IPアドレスを指定した範囲内で切り分けて「サブネット」を作り、いずれかのアベイラビリティゾーンに配置します。上記の図ではアベイラビリティゾーンがVPC領域の中に一つしかありませんが、実際は複数アベイラビリティゾーンが存在していることがあります。その中で1つのサブネットはどこかに所属しており、アベイラビリティゾーンをまたぐことはありません。
#IPアドレスの割り当て
VPC領域に割り当てるIPアドレスの範囲は、プライベートIPアドレスのネットワーク範囲内から任意で指定します。しかしながら、パブリックIPアドレスがなければインターネットに接続できないので、パブリックIPアドレスをそれぞれのサブネットに割り当てなければなりません。この割り当てる役割を果たしているのが、一種のNATのようなものでもあるインターネットゲートウェイです。

#EC2インスタンス
ここまでAWS環境構築の手順はVPC領域をまず確保し、その中のどれか一つのアベイラビリティゾーンにサブネットを確保するといった流れでした。
　そしてサブネット内にEC2インスタンスを設置して、サブネットが確保しているIPアドレス内からを一つプライベートIPアドレスが指定されてネットワークとつながるWebサーバーとして成り立ちます。
　プライベートIPアドレスのEC2インスタンスへの割り振りはENIという物理サーバーで言うNICみたいなものが作成されたときに割り振られます。
　EC2インスタンスの種類は性能の差で分類されています。基本的には稼働時間１時間当たりの従量課金制プラス、高性能なインスタンスタイプほど高価なものとなっています。
　性能の違いを決める項目としてあげられるのは３つあり、①CPU性能②メモリ③GPUといった項目で性能の差が出てきて使用料が高くなったり低くなったりします。

#セキュリティーグループとネットワークACL
AWSのVPC には2つのファイアウォール機能があります。
①セキュリティーグループ
→EC2インスタンスのENIに対して設定するパケットフィルタリング機能。ステートフル動作。
②ネットワークACL
→サブネットにつけられるパケットフィルタリング機能。ステートレス動作。


①について
インバウンド、アウトバウンドで設定できる項目

- タイプ
 - 「TCP」「UDP」「ICMP」「その他」など
- プロトコル
 - 「エコー応答」などどのプロトコルを通すか
- 送信元または送信先
 - カスタム...「CIDER」「IPアドレス」「セキュリティグループ」など
 - 任意の場所...「全ての場所」を意味する。「0.0.0.0/0」と同じ。
 - マイIP

ほとんどの場合許可しないといけないものはたくさんあると思うので、カスタムの必要性大。

②について
設定できる項目はセキュリティグループとほぼ同じだが以下の点が異なる。

- 拒否するルールを設定できる
- ルールには順序番号から順に適用される
- ステートレスな動作を行う
- 最後は必ず拒否するルールで終わる

ここの設定についてはあまり変更する場面は少ないので、デフォルトのままで大体大丈夫。


#最後に
ここらのAWS用語を抑えておいたら大体のリファレンスは雰囲気をつかめるようになるとおもうので参考にしてみてください。