반응형
하루를 삽질했다.... T-T
AWS ALB를 통해 통신을 하려면, 아래와 같이 여러 절차가 필요하다.
1. 코드 내에 health check를 위한 코드가 필요 하고,
app.listen(3001,function() {
console.log("** 1. web server open on port 3001");
})
console.log("** health checking executed");
res.sendStatus(200);
});
|
2. 각 포트들이 맞아야 한다.
2-1. 코드 내 오픈된 port(위 3001)
2-2. 컨테이너를 생성할 때 설정한 서비스 내 컨테이너 포트(아래 3001),
2-3. LB의 대상그룹(target group) 포트(3001)
2-4. ECS의 서비스 > 보안그룹 내 포트 (3001)
3. ECS task를 수행하는 Role에 LB를 위한 권한 설정 추가
(ElasticLoadBalancingFullAccess)
4. LB의 리스너도 경로가 타겟그룹에 맞게 설정되어 있는지 확인.
이렇게 하면... healthy가 뜬다.... 흑흑
그럼 LB를 통해 통신이 되는지 확인해보자.
bastion에 들어가서 LB의 dns + path로 curl을 날려본다.
[ec2-user@bastion~]$ curl internal-alb-testestsetste.ap-northeast-2.elb.amazonaws.com/jane/health
OK
[ec2-user@bastion~]$ curl internal-alb-testestestset.ap-northeast-2.elb.amazonaws.com/jane
Database printed
[{"id":1,"data":"text1"},{"id":2,"data":"text2"}]
확인 완료!
반응형