인프라

Elastic Beanstalk, EC2

user-anonymous 2020. 9. 26. 16:21
728x90

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들을 열어주었다. 

리스너 포트를 열어주니 잘 해결되었다.

728x90
반응형