按可用区划分子网的优点在于可以将实例分布在不同的可用区,提升高可用性。每个子网可在一个可用区内,并控制该子网中实例的网络访问。此方法使得在某个可用区发生问题时,仍可以在其他可用区内继续运行。
示例代码:
1. # 在可用区a,b,c中划分3个子网
2. resource "aws_subnet" "example" {
3. count = 3
4.
5. vpc_id = aws_vpc.example.id
6. cidr_block = "10.0.${count.index + 1}.0/24"
7. availability_zone = "us-east-1${chrcode(count.index + 1)}"
8.
9. tags = {
10. Name = "example-${count.index + 1}"
11. }
12. }
按子网类型划分子网的优点在于可以更容易地控制子网的访问授权和加密。另外,按子网类型划分的子网可以更为灵活地满足不同的需求。
示例代码:
1. # 划分公共和私有两个子网
2. resource "aws_subnet" "public" {
3. vpc_id = aws_vpc.example.id
4. cidr_block = "10.0.1.0/24"
5. map_public_ip_on_launch = true
6.
7. tags = {
8. Name = "public-subnet"
9. }
10. }
11.
12. resource "aws_subnet" "private" {
13. vpc_id = aws_vpc.example.id
14. cidr_block = "10.0.2.0/24"
15.
16. tags = {
17. Name = "private-subnet"
18. }
19. }