【初心者向け】AWS IPアドレス設計で押さえておきたいポイント
こんにちは、梶です。
今日はAWSにおいてIPアドレス設計(ネットワークアドレス設計)で数年後ハマらないようにするために、ポイントを共有したいと思います。
特に、オンプレミスとAWS間を直接ネットワーク接続する際も、プライベートアドレスについて確認が必要です。
内容としてすごく地味だと思いますが、まとまった資料が無かったので作成してみました。
背景
「ネットワークアドレスを設計するときにはこのへんを考慮しておくと後々困らない」という内容があるといいよね。
と社内で声が上がりましたので作成してみました。
プライベートネットワークアドレス
- AWS VPCは作成開始時に決定したプライベートネットワークアドレスは、後から変更はできないため注意すること。
- インスタンスへの固定IPアドレスの利用は避けること。
- CloudFormationにおいてIPアドレスを固定することにより、メンテナンス上の問題が発生するため。
- 個別のノードにアクセスする必要があるのであれば、Route53を使って名前解決するように設計すること。
- 詳細ページ
AWS とネットワーク接続(VPN Connect、Direct Connect)する場合に、拠点が1つ増えたのと同じ状態になるため、社内ネットワークアドレスと重複すると一般的に通信ができなくなります。(NAT を駆使すれば可能ですが、維持管理を含めて困難と考えます。)
サブネット
- サブネットは後で変更できないため、注意すること。
- サブネットで利用できるIPアドレスの個数は、AWSで4つ予約されたアドレスがあるため、-4つ減らした個数が利用可能なので注意すること。
- 拡張性に柔軟性を持てる様に、Multi-AZを利用可能なようにセットにして設計しておくこと <例>172.16.1xをPublic(DMZ 公開ネットワーク)、172.16.2xをPrivate(非公開ネットワーク)でセットにした例。 Production1(Availability Zone1) Public=172.16.11.0/24、Private=172.16.21.0/24 Production2(Availability Zone2) Public=172.16.12.0/24、Private=172.16.22.0/24
- サブネットはマスク指定に当てはまるアドレス設計をしておくこと(特にオンプレミスとの通信制御で有効)
- Security Groupのルール設定において、複数アドレスの指定はネットワークアドレスで指定となるため。
- スケールアップを考慮すること
- /20〜/24の広めのネットワークアドレスで割り当てること
- インスタンス数が増加させることができるため、スケールアップが容易。
- AutoScalingの最大値(インスタンス数が最大いくつになるのか)を検討し反映すること。
- ElastiCache/EMRなどは、クラスタのノード数に考慮し設計すること。
- /20〜/24の広めのネットワークアドレスで割り当てること
- 機能毎にサブネットを分けること
- きめ細かいネットワークセキュリティを行うために分割してフィルタ(Security Group)を設定。
NAT
- NATインスタンスをサービス利用する場合は、単一障害点(SPOF)になりやすいので注意すること。
- 対応するには、フェイルオーバーの仕組みが必要なので注意が必要。詳細ページ
- 外部のサービスへアクセスする時にIP制限が有る場合には、NATを利用する。その場合、役割毎にサブネットを分けているとRoute Tableが制御しやすい。
感想
アドレスは変更するには苦労が伴うので、慎重に決めたいものです。(オンプレミスでも同じですよね。)