-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabase.tf
More file actions
156 lines (124 loc) · 4.21 KB
/
database.tf
File metadata and controls
156 lines (124 loc) · 4.21 KB
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# Cloud SQL for PostgreSQL 설정 - 개발 환경
resource "google_sql_database_instance" "postgres_dev" {
# Cloud SQL 인스턴스 이름을 지정합니다.
name = var.db_instance_name_dev
# PostgreSQL 데이터베이스 버전을 지정합니다.
database_version = "POSTGRES_13"
# 인스턴스가 위치할 지역을 지정합니다. (한국 지역: asia-northeast3)
region = var.db_region
# 인스턴스 설정
settings {
# 인스턴스의 머신 타입을 지정합니다.
tier = var.db_tier
# 백업 구성 설정
backup_configuration {
# 백업 기능을 비활성화합니다.
enabled = false
}
# IP 구성 설정
ip_configuration {
# 승인된 네트워크를 설정합니다.
authorized_networks {
# 네트워크 이름을 지정합니다.
name = var.authorized_network_name
# 모든 IP 주소를 허용합니다. (보안상 실제 환경에서는 제한된 IP만 허용해야 합니다)
value = var.authorized_network_value
}
}
insights_config {
query_insights_enabled = false
query_plans_per_minute = 0
query_string_length = 1024
record_application_tags = false
record_client_address = false
}
database_flags {
name = "max_connections"
value = "100" # 원하는 최대 연결 수로 변경
}
}
lifecycle {
ignore_changes = [
settings[0].insights_config,
]
}
deletion_protection = false
}
# Cloud SQL for PostgreSQL 설정 - 프로덕션 환경
resource "google_sql_database_instance" "postgres_prd" {
# Cloud SQL 인스턴스 이름을 지정합니다.
name = var.db_instance_name_prd
# PostgreSQL 데이터베이스 버전을 지정합니다.
database_version = "POSTGRES_13"
# 인스턴스가 위치할 지역을 지정합니다. (한국 지역: asia-northeast3)
region = var.db_region
# 인스턴스 설정
settings {
# 인스턴스의 머신 타입을 지정합니다.
tier = var.db_tier
# 백업 구성 설정
backup_configuration {
# 백업 기능을 비활성화합니다.
enabled = false
}
# IP 구성 설정
ip_configuration {
# 승인된 네트워크를 설정합니다.
authorized_networks {
# 네트워크 이름을 지정합니다.
name = var.authorized_network_name
# 모든 IP 주소를 허용합니다. (보안상 실제 환경에서는 제한된 IP만 허용해야 합니다)
value = var.authorized_network_value
}
}
insights_config {
query_insights_enabled = false
query_plans_per_minute = 0
query_string_length = 1024
record_application_tags = false
record_client_address = false
}
database_flags {
name = "max_connections"
value = "100" # 원하는 최대 연결 수로 변경
}
}
lifecycle {
ignore_changes = [
settings[0].insights_config,
]
}
deletion_protection = false
}
# 개발 환경용 데이터베이스 설정
resource "google_sql_database" "dev" {
# 데이터베이스 이름을 지정합니다.
name = var.db_instance_name_dev
# 연결할 인스턴스를 지정합니다.
instance = google_sql_database_instance.postgres_dev.name
}
# 프로덕션 환경용 데이터베이스 설정
resource "google_sql_database" "prd" {
# 데이터베이스 이름을 지정합니다.
name = var.db_instance_name_prd
# 연결할 인스턴스를 지정합니다.
instance = google_sql_database_instance.postgres_prd.name
}
# 기본 사용자 설정 - 개발 환경
resource "google_sql_user" "default_dev" {
# 사용자 이름을 지정합니다.
name = var.db_user_name_dev
# 연결할 인스턴스를 지정합니다.
instance = google_sql_database_instance.postgres_dev.name
# 사용자의 비밀번호를 지정합니다.
password = var.db_user_password_dev
}
# 기본 사용자 설정 - 프로덕션 환경
resource "google_sql_user" "default_prd" {
# 사용자 이름을 지정합니다.
name = var.db_user_name_prd
# 연결할 인스턴스를 지정합니다.
instance = google_sql_database_instance.postgres_prd.name
# 사용자의 비밀번호를 지정합니다.
password = var.db_user_password_prd
}