폐역 네트워크를 이용한 애플리케이션 간 통신 실현
VPC 간을 통신하기 위해 VPC Endpoint, VPC EndpointServices 등이 있지만 이번에는 동일한 VPC 내의 동일한 서브넷 내에서 통신하기 때문에 이러한 구성 요소는 필요하지 않습니다. 개발 환경 등에서는 비용 절감을 위해 EC2 Instance를 기동·정지를 제어하고 있습니다. 인터넷용 Load Balancer는 Autoscaling Group과 연계하여 EC2 Instance를 타겟팅하는 것이 가능하지만 Elastic Beanstalk에서 관리하지 않는 내부 Load Balancer(Elastic Beanstalk는 동시에 여러 개의 Load Balancer를 만들 수 없다)는 처음 대상에 지정한 EC2 Instance가 종료되면 다음에 시작할 EC2 Instance를 계속 타겟팅할 수 없습니다. 따라서 개별적으로 Autoscaling Attachment를 작성하고 Elastic Beanstalk에서 제어하는 Autoscaling Group과 개별적으로 작성한 Target Group을 연동시킵니다. 이렇게 하면 시간과 리소스에 따라 증가 또는 감소하는 EC2 Instance를 계속 타겟팅할 수 있습니다.
lb_target_group
resource "aws_lb_target_group" "int_nlb_target_group" {
name = "int_nlb_target_group"
target_type = "instance"
port = 80
protocol = "TCP"
vpc_id = data.aws_vpc.xxxx.id
}
lb_target_group_attachment
resource "aws_lb_target_group_attachment" "int_nlb_target_group_attachment_1" {
target_group_arn = aws_lb_target_group.int_nlb_target_group.arn
target_id = "i-xxxxxxxxxxxxx"
port = 80
}
resource "aws_lb_target_group_attachment" "int_nlb_target_group_attachment_2" {
target_group_arn = aws_lb_target_group.int_nlb_target_group.arn
target_id = "i-xxxxxxxxxxxxx"
port = 80
}
lb_listener
resource "aws_lb_listener" "int_nlb_listener" {
load_balancer_arn = aws_lb.int_nlb.arn
port = "80"
protocol = "TCP"
default_action {
type = "forward"
target_group_arn = aws_lb_target_group.int_nlb_target_group.arn
}
}
lb
// Changing this value for load balancers of type network will force a recreation of the resource.
resource "aws_lb" "int_nlb" {
name = "int-nlb"
internal = true
load_balancer_type = "network"
subnets = ["subnet-xxxxxxxxxxxxx", "subnet-xxxxxxxxxxxxx"]
access_logs {
bucket = "xxxxxxxxxxxxx"
prefix = "xxxxxxxxxxxxx/xxxxxxxxxxxxx/xxxxxxxxxxxxx"
enabled = true
}
tags = {
Name = "int-nlb"
Environment = "xxxxxx"
}
}
autoscaling_attachment
resource "aws_autoscaling_attachment" "nt_nlb_asg_attachment" {
autoscaling_group_name = aws_elastic_beanstalk_environment.xxxxxxxxxxxxx.autoscaling_groups[0]
alb_target_group_arn = aws_lb_target_group.int_nlb_target_group.arn
}
처음에 하드 코드 한 InstanceID가 차등으로 출력되어 계속되어 버리는 해결되지 않은 과제가 있습니다 ...
issue라고 하는지 기능 요구하고 싶은 부분입니다.
------------------------------------------------------------------------
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# aws_lb_target_group_attachment.int_nlb_target_group_attachment will be created
+ resource "aws_lb_target_group_attachment" "int_nlb_target_group_attachment" {
+ id = (known after apply)
+ port = 80
+ target_group_arn = "arn:aws:elasticloadbalancing:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ target_id = "i-xxxxxxxxxxxxxx"
}
Plan: 1 to add, 0 to change, 0 to destroy.
------------------------------------------------------------------------
Reference
이 문제에 관하여(폐역 네트워크를 이용한 애플리케이션 간 통신 실현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ldr/items/56b8a79daadecfbedd70텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)