This commit is contained in:
havelight-ee
2023-05-11 13:55:28 +09:00
parent 55d4828037
commit 2d70373907
1390 changed files with 0 additions and 1398 deletions

View File

@@ -0,0 +1,25 @@
# This file is maintained automatically by "terraform init".
# Manual edits may be lost in future updates.
provider "registry.terraform.io/hashicorp/aws" {
version = "4.45.0"
constraints = ">= 4.0.0"
hashes = [
"h1:J/XjRsEJIpxi+mczXQfnH3nvfACv3LRDtrthQJCIibY=",
"zh:22da03786f25658a000d1bcc28c780816a97e7e8a1f59fff6eee7d452830e95e",
"zh:2543be56eee0491eb0c79ca1c901dcbf71da26625961fe719f088263fef062f4",
"zh:31a1da1e3beedfd88c3c152ab505bdcf330427f26b75835885526f7bb75c4857",
"zh:4409afe50f225659d5f378fe9303a45052953a1219f7f1acc82b69d07528b7ba",
"zh:4dadec3b783f10d2f8eef3dab5e817baae9c932a7967d45fe3d77fcbcbdaa438",
"zh:55be80d6e24828dcb0db7a0226fb275415c1c0ad63dd2f33b76f3ac0cd64e6a6",
"zh:560bba29efb7dbe0bfcc937369d88817aa31a8d18aa25395b1afe2576cb04495",
"zh:6caacc202e83438ff63d5d96733e283f44e349668d96c6b1c5c7df463ebf85cc",
"zh:6cabab83a61d5b4ac801c5a5d57556a0e76ec8dc879d28cf777509db5f6a657e",
"zh:96c4528bf9c16edb8841b68479ec51c499ed7fa680462fa28caeab3fc168bb43",
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
"zh:cdc0b47ff840d708fbf75abfe86d23dc7f1dffdd233a771822a17b5c637f4769",
"zh:d9a9583e82776d1ebb6cf6c3d47acc2b302f8778f470ceffe7579dc794eb1feb",
"zh:e9367ca9f6f6418a23cdf8d01f29dd0c4f614e78499f52a767a422e4c334b915",
"zh:f6d355a2fb3bcebb597f68bbca4fa2aaa364efd29240236c582375e219d77656",
]
}

View File

@@ -0,0 +1,138 @@
#!/bin/bash
#----------------------------------------------------------------------------------------------------------------
# BASH SHELL로 실행
if [ -z "$BASH_VERSION" ]; then exec bash "$0" "$@"; exit; fi
#----------------------------------------------------------------------------------------------------------------
# 변수 선언
echo_line="======================================================"
kops_env_file="prod_kops_env.sh"
var_file="99_variables.tf"
search_tag="masters.k8s-prod"
#----------------------------------------------------------------------------------------------------------------
# 파일에서 기존에 선언되어 있는 ID값 가져오는 함수
_get_var_id (){
tf_variable=$1
ret_id=`grep ${tf_variable} ${var_file_path} -A 1 | tail -1 | awk -F= '{print $2}' | tr -d ' ' | tr -d "\""`
if [ -z ${ret_id} ]; then echo "[Error] ${tf_variable} : Not found variable default (${var_file_path})"; exit; fi
#if [ -z ${ret_id} ]; then echo "[Error] ${tf_variable} : Not found variable default"; fi
}
#----------------------------------------------------------------------------------------------------------------
# 파일의 내용을 변경하는 함수 (before_id -> after_id)
_change_default (){
before_id=$1
after_id=$2
#echo "[${before_id}]"
#echo "[${after_id}]"
echo ${echo_line}
echo "[INFO] ${tf_variable}"
if [ "${before_id}" != "${after_id}" ]
then
if [ "${after_id}" == "" ];
then
echo "[Error] # ${tf_variable} value is null"
else
echo "[Change] # ${before_id} --> ${after_id}"
sed -i "s/${before_id}/${after_id}/g" ${var_file_path}
#echo "sed -i 's/${before_id}/${after_id}/g' ${var_file_path}"
fi
else
echo "[PASS] # ${ret_id}"
fi
}
#----------------------------------------------------------------------------------------------------------------
# master 별 ID 확인 후 변수에 저장하는 함수
_get_aws_ec2_id (){
ec2_id=$1
tag_name=$2
if [ `echo ${tag_name} | grep 2a | wc -l` == 1 ]
then
master_2a=${ec2_id}
elif [ `echo ${tag_name} | grep 2b | wc -l` == 1 ]
then
master_2b=${ec2_id}
elif [ `echo ${tag_name} | grep 2c | wc -l` == 1 ]
then
master_2c=${ec2_id}
fi
}
#----------------------------------------------------------------------------------------------------------------
# path 확인
current_path=`pwd`
kops_env_path=`find ${current_path} -name ${kops_env_file}`
var_file_path=`find ${current_path} -name ${var_file}`
#----------------------------------------------------------------------------------------------------------------
# kops 환경변수 적용
source ${kops_env_path} > /dev/null 2>/dev/null
if [ -z "${VPC_ID}" ]; then
source ../${kops_env_file}
fi
#----------------------------------------------------------------------------------------------------------------
# aws에 인스턴스 ID 조회
aws_query="Reservations[].Instances[].[ InstanceId, Tags[?Key=='Name'].Value|[0] ]"
aws_filter="Name=instance-state-name,Values=running"
aws ec2 describe-instances --query "${aws_query}" --filter ${aws_filter} --output text | grep ${search_tag} > tmp_cluster
#echo "aws ec2 describe-instances --query \"${aws_query}\" --filter \"${aws_filter}\" --output text | grep ${search_tag}"
while read line
do
_get_aws_ec2_id ${line}
done < tmp_cluster
unlink tmp_cluster
#----------------------------------------------------------------------------------------------------------------
# 기존에 파일에 선언되어 있는 ID 값을 조회해서 변경된 ID값이 있으면 변경 진행
_get_var_id master-2a
before_master_2a=${ret_id}
_change_default ${before_master_2a} ${master_2a}
_get_var_id master-2b
before_master_2b=${ret_id}
_change_default ${before_master_2b} ${master_2b}
_get_var_id master-2c
before_master_2c=${ret_id}
_change_default ${before_master_2c} ${master_2c}
_get_var_id VPC_ID
before_VPC_ID=${ret_id}
_change_default ${before_VPC_ID} ${VPC_ID}
_get_var_id Network_CIDR
before_Network_CIDR=${ret_id}
_change_default ${before_Network_CIDR} ${Network_CIDR}
_get_var_id Private_Subnet_ID_1
before_Private_Subnet_ID_1=${ret_id}
_change_default ${before_Private_Subnet_ID_1} ${Private_Subnet_ID_1}
_get_var_id Private_Subnet_ID_2
before_Private_Subnet_ID_2=${ret_id}
_change_default ${before_Private_Subnet_ID_2} ${Private_Subnet_ID_2}
_get_var_id Private_Subnet_ID_3
before_Private_Subnet_ID_3=${ret_id}
_change_default ${before_Private_Subnet_ID_3} ${Private_Subnet_ID_3}
_get_var_id Public_Subnet_ID_1
before_Public_Subnet_ID_1=${ret_id}
_change_default ${before_Public_Subnet_ID_1} ${Public_Subnet_ID_1}
_get_var_id Public_Subnet_ID_2
before_Public_Subnet_ID_2=${ret_id}
_change_default ${before_Public_Subnet_ID_2} ${Public_Subnet_ID_2}
_get_var_id Public_Subnet_ID_3
before_Public_Subnet_ID_3=${ret_id}
_change_default ${before_Public_Subnet_ID_3} ${Public_Subnet_ID_3}
echo ${echo_line}

View File

@@ -0,0 +1,17 @@
terraform {
required_version = ">= 0.15.0"
required_providers {
aws = {
"configuration_aliases" = [aws.files]
"source" = "hashicorp/aws"
"version" = ">= 4.0.0"
}
}
}
provider "aws" {
alias = "files"
region = "ap-northeast-2"
}

View File

@@ -0,0 +1,19 @@
resource "aws_alb" "nlb-prod-kr-ingress" {
name = "nlb-prod-kr-ingress"
internal = false
load_balancer_type = "network"
subnet_mapping {
subnet_id = "${var.Public_Subnet_ID_1}"
}
subnet_mapping {
subnet_id = "${var.Public_Subnet_ID_2}"
}
subnet_mapping {
subnet_id = "${var.Public_Subnet_ID_3}"
}
enable_deletion_protection = false
tags = {
Environment = "nlb-prod-kr-ingress"
}
}

View File

@@ -0,0 +1,161 @@
resource "aws_alb_listener" "nlb-listener-http-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "443"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-30001.arn
}
}
resource "aws_alb_listener" "nlb-listener-tls-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "80"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-30000.arn
}
}
resource "aws_alb_listener" "nlb-listener-31300-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "31300"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-31300.arn
}
}
resource "aws_alb_listener" "nlb-listener-31301-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "31301"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-31301.arn
}
}
resource "aws_alb_listener" "nlb-listener-31302-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "31302"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-31302.arn
}
}
resource "aws_alb_listener" "nlb-listener-31303-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "31303"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-31303.arn
}
}
resource "aws_alb_listener" "nlb-listener-31304-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "31304"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-31304.arn
}
}
resource "aws_alb_listener" "nlb-listener-31305-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "31305"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-31305.arn
}
}
resource "aws_alb_listener" "nlb-listener-31310-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "31310"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-31310.arn
}
}
resource "aws_alb_listener" "nlb-listener-31311-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "31311"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-31311.arn
}
}
resource "aws_alb_listener" "nlb-listener-31312-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "31312"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-31312.arn
}
}
resource "aws_alb_listener" "nlb-listener-31313-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "31313"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-31313.arn
}
}
resource "aws_alb_listener" "nlb-listener-31314-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "31314"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-31314.arn
}
}
resource "aws_alb_listener" "nlb-listener-31315-prod" {
load_balancer_arn = aws_alb.nlb-prod-kr-ingress.arn
port = "31315"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_alb_target_group.tg-prod-kr-tcp-31315.arn
}
}

View File

@@ -0,0 +1,498 @@
resource "aws_alb_target_group" "tg-prod-kr-tcp-30000" {
name = "tg-prod-kr-tcp-30000"
port = 30000
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-http-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-30000.arn}"
target_id = "${var.master-2a}"
port = 30000
}
resource "aws_alb_target_group_attachment" "prod-master-http-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-30000.arn}"
target_id = "${var.master-2b}"
port = 30000
}
resource "aws_alb_target_group_attachment" "prod-master-http-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-30000.arn}"
target_id = "${var.master-2c}"
port = 30000
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-30001" {
name = "tg-prod-kr-tcp-30001"
port = 30001
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-30001-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-30001.arn}"
target_id = "${var.master-2a}"
port = 30001
}
resource "aws_alb_target_group_attachment" "prod-master-tls-30001-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-30001.arn}"
target_id = "${var.master-2b}"
port = 30001
}
resource "aws_alb_target_group_attachment" "prod-master-tls-30001-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-30001.arn}"
target_id = "${var.master-2c}"
port = 30001
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-31300" {
name = "tg-prod-kr-tcp-31300"
port = 31300
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31300-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31300.arn}"
target_id = "${var.master-2a}"
port = 31300
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31300-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31300.arn}"
target_id = "${var.master-2b}"
port = 31300
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31300-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31300.arn}"
target_id = "${var.master-2c}"
port = 31300
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-31301" {
name = "tg-prod-kr-tcp-31301"
port = 31301
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31301-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31301.arn}"
target_id = "${var.master-2a}"
port = 31301
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31301-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31301.arn}"
target_id = "${var.master-2b}"
port = 31301
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31301-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31301.arn}"
target_id = "${var.master-2c}"
port = 31301
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-31302" {
name = "tg-prod-kr-tcp-31302"
port = 31302
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31302-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31302.arn}"
target_id = "${var.master-2a}"
port = 31302
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31302-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31302.arn}"
target_id = "${var.master-2b}"
port = 31302
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31302-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31302.arn}"
target_id = "${var.master-2c}"
port = 31302
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-31303" {
name = "tg-prod-kr-tcp-31303"
port = 31303
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31303-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31303.arn}"
target_id = "${var.master-2a}"
port = 31303
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31303-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31303.arn}"
target_id = "${var.master-2b}"
port = 31303
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31303-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31303.arn}"
target_id = "${var.master-2c}"
port = 31303
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-31304" {
name = "tg-prod-kr-tcp-31304"
port = 31304
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31304-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31304.arn}"
target_id = "${var.master-2a}"
port = 31304
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31304-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31304.arn}"
target_id = "${var.master-2b}"
port = 31304
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31304-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31304.arn}"
target_id = "${var.master-2c}"
port = 31304
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-31305" {
name = "tg-prod-kr-tcp-31305"
port = 31305
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31305-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31305.arn}"
target_id = "${var.master-2a}"
port = 31305
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31305-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31305.arn}"
target_id = "${var.master-2b}"
port = 31305
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31305-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31305.arn}"
target_id = "${var.master-2c}"
port = 31305
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-31310" {
name = "tg-prod-kr-tcp-31310"
port = 31310
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31310-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31310.arn}"
target_id = "${var.master-2a}"
port = 31310
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31310-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31310.arn}"
target_id = "${var.master-2b}"
port = 31310
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31310-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31310.arn}"
target_id = "${var.master-2c}"
port = 31310
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-31311" {
name = "tg-prod-kr-tcp-31311"
port = 31311
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31311-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31311.arn}"
target_id = "${var.master-2a}"
port = 31311
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31311-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31311.arn}"
target_id = "${var.master-2b}"
port = 31311
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31311-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31311.arn}"
target_id = "${var.master-2c}"
port = 31311
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-31312" {
name = "tg-prod-kr-tcp-31312"
port = 31312
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31312-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31312.arn}"
target_id = "${var.master-2a}"
port = 31312
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31312-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31312.arn}"
target_id = "${var.master-2b}"
port = 31312
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31312-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31312.arn}"
target_id = "${var.master-2c}"
port = 31312
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-31313" {
name = "tg-prod-kr-tcp-31313"
port = 31313
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31313-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31313.arn}"
target_id = "${var.master-2a}"
port = 31313
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31313-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31313.arn}"
target_id = "${var.master-2b}"
port = 31313
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31313-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31313.arn}"
target_id = "${var.master-2c}"
port = 31313
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-31314" {
name = "tg-prod-kr-tcp-31314"
port = 31314
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31314-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31314.arn}"
target_id = "${var.master-2a}"
port = 31314
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31314-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31314.arn}"
target_id = "${var.master-2b}"
port = 31314
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31314-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31314.arn}"
target_id = "${var.master-2c}"
port = 31314
}
###############################################################################
resource "aws_alb_target_group" "tg-prod-kr-tcp-31315" {
name = "tg-prod-kr-tcp-31315"
port = 31315
protocol = "TCP"
vpc_id = "${var.VPC_ID}"
health_check {
interval = 30
protocol = "TCP"
healthy_threshold = 3
unhealthy_threshold = 3
}
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31315-2a" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31315.arn}"
target_id = "${var.master-2a}"
port = 31315
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31315-2b" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31315.arn}"
target_id = "${var.master-2b}"
port = 31315
}
resource "aws_alb_target_group_attachment" "prod-master-tls-31315-2c" {
target_group_arn = "${aws_alb_target_group.tg-prod-kr-tcp-31315.arn}"
target_id = "${var.master-2c}"
port = 31315
}
###############################################################################

View File

@@ -0,0 +1,84 @@
resource "aws_route53_record" "ui" {
zone_id = "${var.datasaker-io}"
name = "app.kr.datasaker.io"
type = "A"
alias {
name = aws_alb.nlb-prod-kr-ingress.dns_name
zone_id = aws_alb.nlb-prod-kr-ingress.zone_id
evaluate_target_health = true
}
}
resource "aws_route53_record" "krakend" {
zone_id = "${var.datasaker-io}"
name = "api.kr.datasaker.io"
type = "A"
alias {
name = aws_alb.nlb-prod-kr-ingress.dns_name
zone_id = aws_alb.nlb-prod-kr-ingress.zone_id
evaluate_target_health = true
}
}
resource "aws_route53_record" "keycloak" {
zone_id = "${var.datasaker-io}"
name = "auth.kr.datasaker.io"
type = "A"
alias {
name = aws_alb.nlb-prod-kr-ingress.dns_name
zone_id = aws_alb.nlb-prod-kr-ingress.zone_id
evaluate_target_health = true
}
}
resource "aws_route53_record" "datagate" {
zone_id = "${var.datasaker-io}"
name = "gate.kr.datasaker.io"
type = "A"
alias {
name = aws_alb.nlb-prod-kr-ingress.dns_name
zone_id = aws_alb.nlb-prod-kr-ingress.zone_id
evaluate_target_health = true
}
}
resource "aws_route53_record" "release_ui" {
zone_id = "${var.datasaker-io}"
name = "app.rel.kr.datasaker.io"
type = "A"
alias {
name = aws_alb.nlb-prod-kr-ingress.dns_name
zone_id = aws_alb.nlb-prod-kr-ingress.zone_id
evaluate_target_health = true
}
}
resource "aws_route53_record" "release_krakend" {
zone_id = "${var.datasaker-io}"
name = "api.rel.kr.datasaker.io"
type = "A"
alias {
name = aws_alb.nlb-prod-kr-ingress.dns_name
zone_id = aws_alb.nlb-prod-kr-ingress.zone_id
evaluate_target_health = true
}
}
resource "aws_route53_record" "release_datagate" {
zone_id = "${var.datasaker-io}"
name = "gate.rel.kr.datasaker.io"
type = "A"
alias {
name = aws_alb.nlb-prod-kr-ingress.dns_name
zone_id = aws_alb.nlb-prod-kr-ingress.zone_id
evaluate_target_health = true
}
}
resource "aws_route53_record" "druid_route" {
zone_id = "${var.datasaker-io}"
name = "druid2.kr.datasaker.io"
type = "A"
alias {
name = aws_alb.nlb-prod-kr-ingress.dns_name
zone_id = aws_alb.nlb-prod-kr-ingress.zone_id
evaluate_target_health = true
}
}

View File

@@ -0,0 +1,79 @@
#---------------------------------------------------------------#
# target group port list
variable "port_list" {
type = list(string)
default = ["80","443","31300","31301","31302","31303","31304"]
}
#---------------------------------------------------------------#
# LB 구성 후 target group 매칭 시 필요한 인스턴스 ID
variable "master-2a" {
default = "i-0d3e86c594670c179"
}
variable "master-2b" {
default = "i-095d625023c4d8d7e"
}
variable "master-2c" {
default = "i-015532d6fb24f2754"
}
#---------------------------------------------------------------#
# Network ID
variable "VPC_ID" {
default = "vpc-00ba2b0e9ad59f0ed"
}
variable "Network_CIDR" {
default = "172.24.0.0/19"
}
variable "Private_Subnet_ID_1" {
default = "subnet-024f0deda82039fa4"
}
variable "Private_Subnet_ID_2" {
default = "subnet-050d942fa1c46540a"
}
variable "Private_Subnet_ID_3" {
default = "subnet-0946eb806af7377be"
}
variable "Public_Subnet_ID_1" {
default = "subnet-00c363356f133411d"
}
variable "Public_Subnet_ID_2" {
default = "subnet-07aa5e879a262014d"
}
variable "Public_Subnet_ID_3" {
default = "subnet-0073a61bc56a68a3e"
}
#---------------------------------------------------------------#
# Route53 ID
variable "datasaker-ai" {
default = "Z06479772L265DHVJW30F"
}
variable "datasaker-com" {
default = "Z0218361HIZ723RV9EX4"
}
variable "datasaker-io" {
default = "Z072735718G25WNVKU834"
}
variable "datasaker-co-kr" {
default = "Z06528191YJHOMRBYTXXT"
}
variable "datasaker-net" {
default = "Z072720912UR7SY03M9F8"
}

View File

@@ -0,0 +1,458 @@
{
"version": 4,
"terraform_version": "1.3.7",
"serial": 16,
"lineage": "1b9efcaa-3e3f-62c1-8ac7-da423fc74255",
"outputs": {},
"resources": [
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-31300-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-31301-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-31302-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-31303-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-31304-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-31305-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-31310-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-31311-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-31312-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-31313-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-31314-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-31315-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-http-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_listener",
"name": "nlb-listener-tls-prod",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-http-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-http-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-http-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-30001-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-30001-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-30001-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31300-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31300-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31300-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31301-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31301-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31301-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31302-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31302-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31302-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31303-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31303-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31303-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31304-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31304-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31304-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31305-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31305-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31305-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31310-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31310-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31310-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31311-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31311-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31311-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31312-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31312-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31312-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31313-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31313-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31313-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31314-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31314-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31314-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31315-2a",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31315-2b",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_alb_target_group_attachment",
"name": "prod-master-tls-31315-2c",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_route53_record",
"name": "datagate",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_route53_record",
"name": "druid_route",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_route53_record",
"name": "keycloak",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_route53_record",
"name": "krakend",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_route53_record",
"name": "release_datagate",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_route53_record",
"name": "release_krakend",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_route53_record",
"name": "release_ui",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
},
{
"mode": "managed",
"type": "aws_route53_record",
"name": "ui",
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
"instances": []
}
],
"check_results": null
}