-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.tf
122 lines (111 loc) · 4.3 KB
/
main.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# ========================================================== #
# [処理名]
# メイン処理
#
# [概要]
# AWS上のパブリックサブネットにNginxを構築する
#
# [手順]
# 0. プロバイダ設定(AWS)
# 1. ネットワーク構築
# 1.1. VPC構築
# 1.2. IGW構築
# 1.3. RouteTable構築
# 1.4. Subnet構築
# 1.5. RouteTableとPublic Subnetの紐付け
# 2. セキュリティ設定
# 2.1. MyIP取得
# 2.2. ネットワークACL構築
# 2.3. セキュリティグループ構築
# 2.4. キーペア構築 ※EC2インスタンスのSSH接続で利用するため
# 3. EC2インスタンス構築
# ========================================================== #
# ========================================================== #
# 0. プロバイダ設定(AWS)
# ========================================================== #
provider "aws" {
region = var.u_aws_region
}
# ========================================================== #
# 1. ネットワーク構築
# ========================================================== #
# 1.1. VPC構築
# ========================================================== #
module "aws_vpc" {
source = "./modules/network/aws_vpc"
u_vpc_ip_ip4 = var.u_aws_vpc_cidr
}
# ========================================================== #
# 1.2. IGW構築
# ========================================================== #
module "aws_internet_gateway" {
source = "./modules/network/aws_internet_gateway"
u_vpc_id = module.aws_vpc.id
}
# ========================================================== #
# 1.3. RouteTable構築
# ========================================================== #
module "aws_route_table" {
source = "./modules/network/aws_route_table"
u_vpc_id = module.aws_vpc.id
u_internet_gateway_id = module.aws_internet_gateway.id
}
# ========================================================== #
# 1.4. Subnet構築
# ========================================================== #
module "aws_subnet" {
source = "./modules/network/aws_subnet"
u_vpc_id = module.aws_vpc.id
u_public_subnet_ip = var.u_public_subnet_ip
}
# ========================================================== #
# 1.5. RouteTableとPublic Subnetの紐付け
# ========================================================== #
module "aws_route_table_association" {
source = "./modules/network/aws_route_table_association"
u_aws_route_table_id = module.aws_route_table.id
u_public_subnet_id = module.aws_subnet.public_subnet_id
}
# ========================================================== #
# 2. セキュリティ設定
# ========================================================== #
# 2.1. MyIP取得
# ========================================================== #
module "cidr_myip" {
source = "./modules/network/cidr_myip"
u_allowed_cidr_myip = var.u_allowed_cidr_myip
}
# ========================================================== #
# 2.2. ネットワークACL構築
# ========================================================== #
module "aws_network_acl" {
source = "./modules/security/aws_network_acl"
u_vpc_id = module.aws_vpc.id
u_public_subnet_id = module.aws_subnet.public_subnet_id
}
# ========================================================== #
# 2.3. セキュリティグループ構築
# ========================================================== #
module "aws_security_group" {
source = "./modules/security/aws_security_group"
u_vpc_id = module.aws_vpc.id
u_allowed_cidr_myip = module.cidr_myip.ip
}
# ========================================================== #
# 2.4. キーペア構築 ※EC2インスタンスのSSH接続で利用するため
# ========================================================== #
module "aws_key_pairs" {
source = "./modules/security/aws_key_pairs"
u_key_name = var.u_key_name
u_private_key_name = var.u_private_key_name
u_public_key_name = var.u_public_key_name
}
# ========================================================== #
# 3. EC2インスタンス構築
# ========================================================== #
module "ec2" {
source = "./modules/webserver"
u_public_subnet_id = module.aws_subnet.public_subnet_id
u_sg_web_id = module.aws_security_group.sg_web_id
u_key_name = module.aws_key_pairs.key_name
}