概要AWSのVPCを1から構築することになり、理解が浅い部分があったので復習がてらまとめる。この辺理解すると、Terraformでの構築が楽になるということがわかった。※間違っている箇所もあると思うけど、そこは随時学びながら修正していきます。リソースを起動できます。自分の設計した仮想ネットワーク内にAWSの各リソースを設置して、構築できるという意味。最初からVPC作ってくれれば良いのでは?とも思うのだけど、ネットワークを大小に分割したい場合など柔軟に対応できるようになっている。そもそもAWSのサービスの中でもVPCに対応していないサービスとかもあるので、VPCで構築しないで一部サービス(Route53だけとかS3だけとか)を使うという場合には要らなかったりする。以上のサブネットを追加します。ブロックを指定します。つのアベイラビリティーゾーン内に含まれている必要があります。つのサブネットが複数のゾーンにまたがることはできません。VPC内でAZごとにサブネットを切る。この後に説明するネットワーク構成例に応じて、サブネットを分割していく。ルーティングの設定はルートテーブルで行い、ルートテーブルの関連付けでサブネットとルートテーブルを紐つける。つの目的を果たします。ルートテーブルに追加することです。インターネットゲートウェイがVPCの出入り口。VPCとの紐付きやセキュリティグループを設定する以外には特に細かく設定することはないし、変更することもないが、ここを出入り口としていることを知らないとルートテーブルの設定でわからなくなる。各サブネットをルートテーブルに関連付ける必要があります。サブネットのルーティングは、このテーブルによってコントロールされます。つのルートテーブルに関連付けることはできます。いわゆるルーティングテーブル。どこからどこへいくのかの経路情報を記載する。プライベートネットワークの宛先はプライベートへ、インターネットの宛先はインターネットゲートウェイへや、プライベートネットワークの宛先のみや、インターネットの宛先をNATゲートウェイへ向けるなど。ルートテーブルに設定するサブネットの関連付け。ルートテーブルとサブネットを関連付けすることで、初めてネットワークがつながるようになる。ここミスるとインターネットでられないとかある。サービスに接続できるが、インターネットからはこれらのインスタンスとの接続を開始できないようにすることができます。プライベートIPアドレスしか持たないインスタンスなどが、インターネット側からは直接アクセスさせないけど、インターネットへアクセスさせるのに使用する。ECSを使っていて、コンテナごとにパブリックIPアドレスを振らない場合、NATゲートウェイを介すことでイメージをPullできる。逆を言えば、NATゲートウェイを介すかパブリックIPアドレスを振らないとイメージをPullすることすらできない。NATゲートウェイをパブリックサブネットに配置して、プライベートネットワークのインスタンスをNATゲートウェイ経由にするようなルートテーブルの制御をしないとインターネットにでていけない。この辺は下記の方のサイトが大変わかりやすい。NATゲートウェイの使い方。プライベートサブネットからインターネットへちなみに作成にも削除にも時間がかかる(5分とか)。裏でインスタンスが起動しているのではと思っている。いわゆるグローバルIPアドレス。インスタンスに付けたり外したりできる。全部のインスタンスにつけられれば楽なのだけど、お金が結構かかる。31=3.72USD。1IPあたり約420円なので、10台とかあるだけで5000円くらいする。31=46USD,5170円+転送量)などをうまく活用することで、月額コストを下げることにつながると思う。単純計算だと10数台越えるくらいのインスタンスをたてるなら、NATゲートウェイを活用したほうが良さそうだ。NATゲートウェイにもEIPをアタッチすることになる。アドレス構成例AWSの新しいアイコンセット(わかりやすくなった反面、色味がなくなったアイコン)で構成図を書いてみた。※上のカラフルなアイコンの図はAWS公式サイトからの引用。ネットワーク1つのみ(Publicサブネットのみ)Publicサブネットのみの構成。わかりやすいので管理しやすい。PublicとPrivateを分割したサブネット2つPublicサブネットとPrivateサブネットの構成。わかりやすさは残しつつ、DBなどインターネットアクセスの要らないサービスをPrivateに配置することでネットワークレベルで分かれている。PublicとNATゲートウェイを経由するサブネットととPrivateサブネットの3つPublicとNATゲートウェイ経由のPrivateネットワークと、Privateネットワークの構成。用途に応じて各ロールを配置するので、ネットワークレベルで分割できる。セキュリティ的にも安心度は増す代わりに、複雑さが若干ある。NATプライベートサブネットが複雑。インタネットからはALBなどのPublicサブネットからのアクセスさせ、インターネットに出る時はNATゲートウェイを介す。グローバルIPアドレスを持たない場合に特に有効。NATゲートウェイは同じNATプラベートサブネットに配置するのではなく、Publicサブネットに配置する必要があり、最終的にはInternetGateway経由で外に出ていく。このサブネットの配置を間違えるとインターネットに出ていけなくなる。まとめネットワークの構成に関しては、必ずしも一番複雑な物が良いというものでは無いと私は思う。複雑過ぎて、セキュリティの穴になってしまうくらいだったら、あえてネットワークをシンプルにしてSGやIAMロールなどでしっかり管理するのも一つだろう。会社のルールや、サービスの規模、性質、チームの運用を踏まえた上で、最適なネットワーク構成をしていくのがクラウドサービスのネットワークにも求められる力だと思う。他にもVPNやVPC同士の接続など色々なネットワークの使い方があるので、もっと勉強して、クラウドサービスのネットワークに強くなりたい。