ギークなエンジニアを目指す男

機械学習系の知識を蓄えようとするブログ

初心者が学ぶAWS備忘録(AWSネットワークの基本、セキュリティグループ、ネットワークACL)

こんにちは。こんばんは。takapy(@takapy0210)です。

本記事もUdemyで受講した講座のまとめ記事です。

講座はこちら
手を動かしながら2週間で学ぶ AWS 基本から応用まで

AWSのネットワークの基本のキ

リージョン

AWSは世界各国にあるデータセンターがあるのですが、そのデータセンターを束ねた単位がリージョンです。 そしてその束ねた中にある、各データセンター(物理的な場所)がAZ(アベイラビリティーゾーン)と呼ばれています。このAZは物理的な場所が離れた場所に存在しています。(可用性を高めるために)

例えば、東京リージョン(東京にあるデータセンター)では下記の3つのAZが存在しています。(2019年1月27日時点)このAZの物理的な場所は公開されていないようです。

  • ap-northeast-1a
  • ap-northeast-1c
  • ap-northeast-1d

VPC

それぞれのアカウント毎に独立したネットワークを作成することができるサービスです。VPCはAZ(アベイラビリティーゾーン)をまたがって作成することになります。

1つのアカウントで複数のVPCを作成することができます。

サブネット

VPCの中に、複数のサブネットを構築することができます。また、1つのAZ(アベイラビリティーゾーン)に複数のサブネットを作成することもできます。例えばWEBサービスなどをEC2上で稼働させる場合は、複数のAZにサブネットを構築し、その上でEC2を立ち上げるのが一般的だと言われています。

このサブネットは、パブリックサブネットとプライベートサブネットに分けることができます。
簡単に説明すると

  • パブリックサブネット
    Internet GateWayを通して、VPC外のIPアドレスとの通信を行うことができる。

  • プライベートサブネット
    原則、VPC内しか通信できない。(NAT機能を用いることで外部との通信も可能)

アーキテクチャ例

下記のようなアーキテクチャの場合、次のような手順で作成することができます。

  1. VPCを作成する
  2. パブリックサブネットを作成する
  3. インターネットゲートウェイを作成する
  4. ルーティングテーブルを作成する
  5. 2.のサブネットにEC2(Webサーバ)を作成する
  6. プライペートサブネットを作成する
  7. 6.のプライベートサブネットにEC2(mysql)を作成する

f:id:taxa_program:20190113111952p:plain
 

セキュリティグループとネットワークACLについて

セキュリティグループは、EC2単位にいわゆるファイアウォールのような機能を提供してくれます。対してネットワークACLは、サブネッット単位でのファイアウォール機能を提供しています。

ステートフル、ステートレスに関しては下記のような違いがあります。

  • ステートフル:インバウンドの通信さえOKであればアウトバウンド(レスポンス)に関しては制限しない。
  • ステートレス:インバウンド、アウトバウンド(レスポンス)の両方に制限をかける。

f:id:taxa_program:20190127192115p:plain
ネットワークACLについて

セキュリティグループは下記のようにIPアドレス単位で接続を許可する設定もできれば、セキュリティグループ名で接続の設定もすることが可能です。(DBのEC2にはWeb-sgというセキュリティグループがついているEC2からのみ通信を許可する)

f:id:taxa_program:20190127183605p:plain
セキュリティグループについての補足

ネットワーク関連の設計ポイント

VPC&サブネットは将来を意識して適切な広さに設定する

  • 「このサブネットって将来的にどれくらいPrivateIPが必要になるか」
  • サービス、機能ごとの要件

を意識して、設計することが大切です。

アカウント分割・VPCの粒度について

関係のないシステムを同じアカウントで作るのはNG。運用などを考えるとアカウント単位で分けるべきだそうです。

では例えば、同じシステムでも開発環境と本番環境でアカウントは分けた方が良いのでしょうか?アカウントで分割するか、VPCで分割するかによって、それぞれメリットデメリットがあるようです。

f:id:taxa_program:20190127193003p:plain
 

以上。