【初心者向け】AWS IPアドレス設計で押さえておきたいポイント

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、梶です。

今日はAWSにおいてIPアドレス設計(ネットワークアドレス設計)で数年後ハマらないようにするために、ポイントを共有したいと思います。

特に、オンプレミスとAWS間を直接ネットワーク接続する際も、プライベートアドレスについて確認が必要です。

内容としてすごく地味だと思いますが、まとまった資料が無かったので作成してみました。

背景

「ネットワークアドレスを設計するときにはこのへんを考慮しておくと後々困らない」という内容があるといいよね。

と社内で声が上がりましたので作成してみました。

プライベートネットワークアドレス

  • AWS VPCは作成開始時に決定したプライベートネットワークアドレスは、後から変更はできないため注意すること。
  •  インスタンスへの固定IPアドレスの利用は避けること。
    • CloudFormationにおいてIPアドレスを固定することにより、メンテナンス上の問題が発生するため。
  •  アドレスの重複は回避すること。

AWS とネットワーク接続(VPN Connect、Direct Connect)する場合に、拠点が1つ増えたのと同じ状態になるため、社内ネットワークアドレスと重複すると一般的に通信ができなくなります。(NAT を駆使すれば可能ですが、維持管理を含めて困難と考えます。)

address-duplicate

サブネット

  • サブネットは後で変更できないため、注意すること。
  • サブネットで利用できる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のルール設定において、複数アドレスの指定はネットワークアドレスで指定となるため。
<例>
172.16.0.0/24→○
172.16.0.1〜10→× このような指定は不可。/29と/28の間になるため複数ルールが必要
  • スケールアップを考慮すること
    • /20〜/24の広めのネットワークアドレスで割り当てること
      • インスタンス数が増加させることができるため、スケールアップが容易。
      • AutoScalingの最大値(インスタンス数が最大いくつになるのか)を検討し反映すること。
      • ElastiCache/EMRなどは、クラスタのノード数に考慮し設計すること。
  • 機能毎にサブネットを分けること
    • きめ細かいネットワークセキュリティを行うために分割してフィルタ(Security Group)を設定。

NAT

  • NATインスタンスをサービス利用する場合は、単一障害点(SPOF)になりやすいので注意すること。
    • 対応するには、フェイルオーバーの仕組みが必要なので注意が必要。詳細ページ
  • 外部のサービスへアクセスする時にIP制限が有る場合には、NATを利用する。その場合、役割毎にサブネットを分けているとRoute Tableが制御しやすい。

感想

アドレスは変更するには苦労が伴うので、慎重に決めたいものです。(オンプレミスでも同じですよね。)