AWSでネットワークを構築するには
AWSでネットワーク構築するための、ざっくり大まかな手順になります。
①AWSアカウントの作成
AWSよりアカウントを作成する。
無料範囲については同ページに記載されているため、期間内・範囲内であれば無料で触ることができる。
初期設定や全体管理時はルートユーザーで行うが、基本的には学習目的だとしてもIAMユーザー
を作成して作業するのがベストプラクティス。
IAMユーザーのポリシーは自分で設定することもできるし、既に用意されてるものを指定することも可能。
学習始めの場合でどう設定するか迷ったら、AdministratorAccess(管理者権限を持つIAMユーザー)等にしておくのがおすすめ。
②VPC作成
VPCとは仮想ネットワーク環境でAWSリソースを起動できるサービスのこと。
ネットワークで用いるIPアドレスの範囲(CIDRブロック)を適切に定める。
VPCの操作対象となるリージョンも設定しておくこと。
リージョンとはAWSのグローバルクラウドインフラストラクチャを地理的に捉えた概念のこと。
③サブネット作成
VPCを作成したあとに、さらに分割したネットワークのことをサブネット
という。
基本的には割り当てられたCIDRブロックのまま使わずに、サブネットを作成して使用する。(分割したCIDRブロックのこと)
例えばだが、社内セキュリティの関係で部署によりアクセスできるネットワークを分離したいとき等にも利用できる。
サブネットでは、インターネットからアクセスすることを目的としたパブリックサブネット
と、内部アクセス用のプライベートサブネット
がある。
サブネットにAZ(アベイラビリティゾーン)
を任意指定もしくはランダムで設定することができるが、複数のサブネットを作成する際に、異なるAZにサブネットを配置しておくことで障害等が起こったときでも片方のサブネットには影響が及ばない、という対策を行うこともできる。
④ネットワークACL設定
ネットワークACL(Network Access Control List)は、VPC内のサブネットに対して適用されるセキュリティルールのこと。
サブネット単位でトラフィックの許可・拒否を制御するステートレスなファイアウォールで、サブネット内の全てのリソースに影響がある。
ルール番号が小さいものから判断され、最初に一致したルールが適用される。
これによりアクセスの許可・拒否を明示的に設定することができる。
⑤インターネットゲートウェイアタッチ
インターネットゲートウェイ
とはVPCとインターネットとの間の通信を可能にするためのもの。
VPCにおいて、サブネットをインターネットに接続するにはインターネットゲートウェイを作成する必要がある。
作成後、対象のVPC領域と結びつけるためにアタッチすること。
⑥ルートテーブル作成
ネットワークにデータを流すためにルートテーブル
を作成する必要がある。
各サブネットごとにルートテーブルを設定することができる。
設定として、何も設定されていないときはデフォルトの転送先となっているが、このことをデフォルトゲートウェイと呼ぶ。
ただし、ルートテーブルの設定をデフォルト以外で行いたいたときは、デフォルトのルートテーブルは触らず、新しいルートテーブルを作成するようにすること。
VPCの領域全体に適用されているデフォルトなため、変えることによって他のサブネットに影響でてしまう可能性もあるため。
ルートテーブルって?
データはパケットという単位で送受信される。
それぞれのパケットにはヘッダー情報とデータの実体が含まれており、どこからどこに送るデータなのかを区別することができる。
ネットワーク機器のルーターが、パケットに含まれている宛先のIPアドレス情報をもとに、宛先IPアドレスに近い方のネットワークへと次々にパケットを送っている。
だが、どの宛先IPアドレスがネットワークに近いかがわからないとパケットが到達しないことがある。
そんなときの、宛先IPアドレスがどうだったらどのネットワークに流すのか、という設定を行うのがルートテーブル
である。
宛先アドレスは「ディスティネーション」
ネットワーク先は「ターゲット」等という。
まとめ
①AWSアカウントの作成
ルートユーザーで最初に設定し、その後IAMユーザーを作成作業するのがベストプラクティス。
②VPC作成
CIDRブロックを設定し、適切なリージョンを選択。
③サブネット作成
必要な数のサブネットを作成。
プライベート・パブリックを分け、複数のAZにまたがる配置だと障害対策となる。
④ネットワークACL設定
サブネット内のトラフィックを制御するためにACLルールを設定。
⑤インターネットゲートウェイアタッチ
VPCとインターネットを接続するために作成してアタッチ。
⑥ルートテーブル作成
各サブネットに適切なルートを設定。