CMDB-Server/CMDB/vpc.tf

197 lines
5.7 KiB
Terraform
Raw Permalink Normal View History

2025-07-03 17:24:43 +09:00
# ---------------------------
# VPC
# ---------------------------
resource "aws_vpc" "cmdb-vpc" {
cidr_block = "10.5.0.0/16"
enable_dns_hostnames = true # DNSホスト名を有効化
tags = {
Name = "cmdb-vpc"
}
}
# ---------------------------
# サブネット
# ---------------------------
# パブリックサブネット1
resource "aws_subnet" "cmdb_public_1a_subnet" {
vpc_id = aws_vpc.cmdb-vpc.id
cidr_block = "10.5.1.0/24"
availability_zone = "ap-northeast-1a"
map_public_ip_on_launch = true
tags = {
Name = "cmdb-public-1a-subnet"
}
}
# パブリックサブネット2
resource "aws_subnet" "cmdb_public_1c_subnet" {
vpc_id = aws_vpc.cmdb-vpc.id
cidr_block = "10.5.3.0/24"
availability_zone = "ap-northeast-1c"
map_public_ip_on_launch = true
tags = {
Name = "cmdb-public-1c-subnet"
}
}
# プライベートサブネット1
resource "aws_subnet" "cmdb_private_1a_subnet" {
vpc_id = aws_vpc.cmdb-vpc.id
cidr_block = "10.5.2.0/24"
availability_zone = "ap-northeast-1a"
tags = {
Name = "cmdb-private-1a-subnet"
}
}
# プライベートサブネット2
resource "aws_subnet" "cmdb_private_1c_subnet" {
vpc_id = aws_vpc.cmdb-vpc.id
cidr_block = "10.5.4.0/24"
availability_zone = "ap-northeast-1c"
tags = {
Name = "cmdb-private-1c-subnet"
}
}
# ---------------------------
# インターネットゲートウェイ
# ---------------------------
resource "aws_internet_gateway" "cmdb_igw" {
vpc_id = aws_vpc.cmdb-vpc.id
tags = {
Name = "cmdb-igw"
}
}
# ---------------------------
# ルートテーブル
# ---------------------------
# パブリックサブネット用のルートテーブル
resource "aws_route_table" "cmdb_public_rtb" {
vpc_id = aws_vpc.cmdb-vpc.id
route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.cmdb_igw.id
}
tags = {
Name = "cmdb-public-rtb"
}
}
# ルートテーブルの関連付けパブリックサブネット1
resource "aws_route_table_association" "cmdb_public_1a_rtb_associate" {
subnet_id = aws_subnet.cmdb_public_1a_subnet.id
route_table_id = aws_route_table.cmdb_public_rtb.id
}
# ルートテーブルの関連付けパブリックサブネット2
resource "aws_route_table_association" "cmdb_public_1c_rtb_associate" {
subnet_id = aws_subnet.cmdb_public_1c_subnet.id
route_table_id = aws_route_table.cmdb_public_rtb.id
}
# ---------------------------
# セキュリティグループ
# ---------------------------
# EC2用
resource "aws_security_group" "cmdb_ec2_sg" {
name = "cmdb-ec2-sg"
description = "for ec2"
vpc_id = aws_vpc.cmdb-vpc.id
tags = {
Name = "cmdb-ec2-sg"
}
}
# RDS用
resource "aws_security_group" "cmdb_rds_sg" {
name = "cmdb-rds-sg"
description = "for rds"
vpc_id = aws_vpc.cmdb-vpc.id
tags = {
Name = "cmdb-rds-sg"
}
}
# ---------------------------
# セキュリティグループルール
# ---------------------------
# EC2用インバウンドルール ssh
resource "aws_vpc_security_group_ingress_rule" "cmdb_ec2_sg_allow_ssh" {
security_group_id = aws_security_group.cmdb_ec2_sg.id
cidr_ipv4 = "0.0.0.0/0"
from_port = 22
to_port = 22
ip_protocol = "tcp"
}
# EC2用インバウンドルール http
resource "aws_vpc_security_group_ingress_rule" "cmdb_ec2_sg_allow_http" {
security_group_id = aws_security_group.cmdb_ec2_sg.id
cidr_ipv4 = "0.0.0.0/0"
from_port = 80
to_port = 80
ip_protocol = "tcp"
}
# EC2用インバウンドルール https
resource "aws_vpc_security_group_ingress_rule" "cmdb_ec2_sg_allow_https" {
security_group_id = aws_security_group.cmdb_ec2_sg.id
cidr_ipv4 = "0.0.0.0/0"
from_port = 443
to_port = 443
ip_protocol = "tcp"
}
# EC2用インバウンドルール smtps
resource "aws_vpc_security_group_ingress_rule" "cmdb_ec2_sg_allow_smtps" {
security_group_id = aws_security_group.cmdb_ec2_sg.id
cidr_ipv4 = "0.0.0.0/0"
from_port = 465
to_port = 465
ip_protocol = "tcp"
}
# EC2用インバウンドルール gitea
resource "aws_vpc_security_group_ingress_rule" "cmdb_ec2_sg_allow_gitea" {
security_group_id = aws_security_group.cmdb_ec2_sg.id
cidr_ipv4 = "0.0.0.0/0"
from_port = 3000
to_port = 3000
ip_protocol = "tcp"
}
# EC2用インバウンドルール jenkins
resource "aws_vpc_security_group_ingress_rule" "cmdb_ec2_sg_allow_jenkins" {
security_group_id = aws_security_group.cmdb_ec2_sg.id
cidr_ipv4 = "0.0.0.0/0"
from_port = 3500
to_port = 3500
ip_protocol = "tcp"
}
# EC2用アウトバウンドルール any
resource "aws_vpc_security_group_egress_rule" "cmdb_ec2_sg_allow_all" {
security_group_id = aws_security_group.cmdb_ec2_sg.id
cidr_ipv4 = "0.0.0.0/0"
ip_protocol = "-1"
}
# RDS用インバウンドルール mysql
resource "aws_vpc_security_group_ingress_rule" "cmdb_rds_sg_allow_http" {
security_group_id = aws_security_group.cmdb_rds_sg.id
cidr_ipv4 = "0.0.0.0/0"
from_port = 3306
to_port = 3306
ip_protocol = "tcp"
}
# RDS用アウトバウンドルール any
resource "aws_vpc_security_group_egress_rule" "cmdb_rds_sg_allow_all" {
security_group_id = aws_security_group.cmdb_rds_sg.id
cidr_ipv4 = "0.0.0.0/0"
ip_protocol = "-1"
}