AWSでネットワークを構成するための要素
EC2インスタンスを起動するためのネットワーク要素
前回はAWSの物理的な(?)要素ということで、リージョンとアベイラビリティゾーン(AZ)について説明しました。
今回はAWSアカウントで実際に設定する要素について、簡単に記載しておきたいと思います。
名称 | 概要 | ||||||
VPC | AWSアカウント専用の仮想ネットワーク。論理的に独立している。 リージョンに作成する。 | ||||||
サブネット | VPCの中に作成するネットワーク。AZを選択して作成する。 | ||||||
インターネットゲートウェイ | インターネットに接続するためのゲートウェイ。VPCに設置する。 | ||||||
ルートテーブル | サブネットに割り当てて利用する。サブネット内のリソースが通信するターゲットを指定するもの。 例:送信先がVPC(10.1.0.0/16)内、そのほかはインターネットとする場合
| ||||||
ネットワークACL | サブネットに関連付ける、ファイアウォール。 ステートレスなので、接続を許可しても返すトラフィックも許可してあげないと通信できない。 | ||||||
セキュリティグループ | インスタンスに設定するファイアウォール。(語弊ありそうな表現かも) ステートフルなので、許可する接続のみ設定してあげればその返りは設定しなくても良い。 |
以前の投稿(↓)ではルートテーブルまで説明してありますので、今回はネットワークACLとセキュリティグループについて触れたいと思います。
ネットワークACLとセキュリティグループ
概要については前項の表で書いてしまっているのですが、大きな違いとしては、
・ステートレス(ネットワークACL)かステートフル(セキュリティグループ)か。
と言うことにつきるかと思います。
使い分けとしては
・ネットワークACLには禁止するトラフィックのみ記載する。
・セキュリティグループでサーバへのアクセスを整理する。
ということでいいと思います。
セキュリティグループなんて危険だ、という方はネットワークACLできちんと往きも返りも完全に網羅したルールを作成してください。止めはしません。頑張ってください。
サブネットというよりAZに関する補足
VPCなどを紹介した以前の記事で、”AZの見え方はアカウントによって違う”ということを書きましたが、先日コンソールを開いたところ、アベイラビリティゾーンIDなるものが追加されていました。
これは私のアカウントで見た状態なので、他のアカウントで見た場合は違う可能性があります。
結局内容は間違ってはいないと思いますが、個人的に、おぉ、と少し衝撃?的な変化だったので紹介させていただきました。
話はそれますが、システムの可用性を担保するにはマルチAZ構成にすべし、というのが通説というかAWS側の推奨ですが、実際はAZ間のレイテンシーが遅くなる(場合もある)とかいろいろとありそうですね。
当然システムの求める要件では十分に考えなければならない点ではあるので、直面したら考えることにします。
以上です。