操作
開発実装 #58
未完了開始日:
2024-01-15
期日:
2024-02-01 (約7ヶ月 遅れ)
進捗率:
0%
予定工数:
説明
VPC¶
- リソースの配置、接続性、セキュリティなどを制御可能な仮想ネットワーク
- 仮想ネットワーク内のインスタンスのアクセス制限
- 独自の IP アドレス範囲の選択
- サブネットの作成
- ルートテーブルの設定
VPCネットワーク¶
- 上記で設計した仮想ネットワークの基盤を作成した。
- IPアドレスの範囲は/16 から /28 までの最大 5 個の CIDRで選択可能。
- サービスの範囲を考慮すると、/28 で問題ないが、サブネットの選択が/16 から /28であることから、サブネットのIP範囲より大きい範囲を指定する必要がある。
- 将来的なサービスの拡張性よりIPを枯渇させない、サブネットとIPの計算が楽になるという理由で /16 を選択した。
VPCサブネット¶
- 以下の三種類のサブネットを作成した。
- パブリックサブネット
- プライベートサブネット内に配置することで、インターネットからの直接アクセスを制限し、セキュリティを向上させる。
- パブリックサブネット(ダミー)
- ALBは複数のサブネットを指定することが求められる。
- プライベートサブネット
- 基本的にアプリケーションサーバーは外部からのネットワークからは届かない空間に存在することが望ましい。
- パブリックサブネット
ゲートウェイ¶
- 以下の二種類のゲートウェイを作成した。
- インターネットゲートウェイ
- 外部インターネットと接続する必要があるため作成。
- NATゲートウェイ
- 正直VPCエンドポイントを作成しているため、必要性は懐疑的。EC2から外部ネットワークへアウトバウンドのネットワークが必要となった場合にNATゲートウェイがあると後々便利な気がしたため作成。
- インターネットゲートウェイ
VPCエンドポイント¶
- ECSから外部へコンテナイメージを取得する際にECRへアクセスが必要である。
- プライベートサブネットから外部インターネットへ接続するときに、以下二点の選択肢がある。
- NATゲートウェイを利用する
- 接続が発生するたびにコストがかかる。不要なデータ処理料金は削減するなら好ましい選択ではない。
- VPCエンドポイントを作成する。
- 参考
- NATゲートウェイを利用する
Lunatic1998 さんが7ヶ月前に更新
誤ってdestinationがIPv6型のパラメータであったためエラー¶
- NATゲートウェイの一部であるインターフェイスはIPv6プレフィックス外に設定できない的なことを言っている。
- 単純に設定していたdestinationがIPv6型のパラメータだった。
- ipv4のdestination設定と正しいipv4でのデフォルトルート型にしてやれば良い。
$ terraform apply
│ Error: error creating Route in Route Table (rtb-04e5881ba4b3bc13a) with destination (::/0): InvalidParameterValue: An interface that is part of a NAT gateway cannot be the next hop for an IPv6 destination CIDR block outside the CIDR range 64:ff9b::/96 or IPv6 prefix list.
│ status code: 400, request id: 2482ace8-a2b5-4719-96af-4ef95038b6ac
│
│ with module.network.aws_route.private_nat_route,
│ on network/main.tf line 85, in resource "aws_route" "private_nat_route":
│ 85: resource "aws_route" "private_nat_route" {
操作