EC2의 뜻은 Elastic Compute Cloud이다 C가 2개라서 EC2이다. EC2는 가상서버환경으로 우리가 원하는 환경에 맞게 설치하여 사용할 수 있다. EBS는 ElasticBeansTalk로 EC2보다 편리하게 제공되는 기능이 많다 로드 밸런싱(ELB), 오토 스케일링, health check 등 제공 해주고 내가 무슨 환경인지에 따라 미리 구축되서 나온다. EC2로 환경을 구성할 경우엔 우리가 따로 설치해야하는 점이 있다.
aws.amazon.com/ko/elasticloadbalancing/
Elastic Beanstalk를 이용한 무중단 배포 구축
1 우리는 Elastic Beanstalk를 이용하여 로드밸런싱을 사용하기 위해 하나의 ElasticBeanstalk 안에 ec2 두개를 포함시켰다. AWS에서 제공해주는 로드밸런서는 (ALB : Application Load Balencer), (CLB : Classic Load Balencer), NLB(Network Load Balencer)이렇게 된다. 우린 CLB를 사용하였다.
우린 이런 서비스로 구성되어있다.
여기서 Elastic Beanstalk의 로드 밸런서는 분산처리를 할 수 있도록 해준다.
나는 이때 궁금점이 있었다. 지금보면 이런 고민을 한 내가 어이가 없지만 바로 포트문제이다. 지금도 여전히 공부하고있지만 그땐 각 ec2의 보안규칙에서 아웃바운드 - 포트만 열어주면 된다고 생각했다. 하지만 아니였다. 로브밸런싱도 포트를 열어줄 필요가 있다는 것이였다. 보면 ElasticBeanstalk에서 이렇게 제공해주는 url이 있다. 난 Spring web을 올리고 (포트가 80으로 되어있다) 그러면서 왜 Spring web만 저 url로 잘되고, 다른 포트를 가진 친구들은 어떻게 해줘야되는거지?? 이랬는데... 역시나는 역시나였다.
현재 로드밸런싱에서 기본적으로 열려있는 포트는 80이다. 그래서 이 문제는 해당 ELB -> 구성 -> 로드밸런서 -> 리스너 추가를 통해 다른 API들을 열어주었다.
리스너 포트를 열어주니 잘 해결되었다.
'인프라' 카테고리의 다른 글
[ Netflix OSS ] Zuul timeout error (0) | 2023.01.29 |
---|---|
Jenkins를 통한 React.js 자동 배포 [Nginx] (0) | 2021.07.18 |
Nginx 다중 포트 연결 (0) | 2021.01.17 |
Jenkins를 이용한 서버 배포 (0) | 2021.01.17 |
PSCP 이용하여 AWS/EC2 파일 전송 및 폴더 전송하기 (0) | 2020.10.12 |