-
배포 - AWS Elastic BeanstalkInfra/CI-CD 2023. 1. 3. 10:49
사용할 AWS 서비스들에 대한 설명
EC2(Elastic Compute Cloud)
Amazon Elastic Container Service(Amazon ECS)는 확장성이 뛰어나고 빠른 컨테이너 관리 서비스이다. 이를 사용하여 클러스터에서 컨테이너를 실행, 중지 및 관리할 수 있습니다. Amazon ECS에서 컨테이너는 서비스 안에 개별 task나 여러 task를 실행한다. 사용하는 task 정의에 정의된다. 이 컨텍스트에서 서비스는 클러스터에서 지정된 수의 task를 동시에 실행하고 유지하는 데 사용할 수 있는 구성이다. AWS Fargate에서 관리하는 서버를 사용하지 않는 인프라에서 task 및 서비스를 실행할 수 있다. 또는 인프라에 대한 더 세부적인 제어를 위해 관리하는 Amazon EC2 인스턴스의 클러스터에서 task와 서비스를 실행할 수 있다.
즉 원격에 존재하는 한대의 컴퓨터를 임대한다고 생각하면 된다. 그리고 임대된 원격에 컴퓨터에 사용자가 자유롭게 원하는 OS를 혹은 웹 서비스를 위한 프로그램들(웹 서버,DB)를 설치 해서 사용할 수 있다.
임대된 1대의 컴퓨터를 하나의 EC2 인스턴스라고 부른다.
*클러스터 : (cluster) 군체(群體), 집속체, 무리, 밀접해있는 다수의 무언가를 총칭하는 영단어이다. 위 글에서는 Container의 집합정도의 의미로 사용되었다.
EB(Elastic BeanStalk)
AWS Elastic Beanstalk는 Apache, Nginx같은 친숙한 서버에서 Java, .NET, PHP, Node.js, Pyton, Ruby, Go 및 Docker와 함께 개발된 웹 응용 프로그램 및 서비스를 배포하고 확장하기쉬운 서비스이다.
Elastic Beanatalk은 EC2 인스턴스나 데이터베이스 같이 많은 것들을 포함한 "환경"을 구성한다. 또 한 만들고 있는 소프트웨어를 업데이트 할때마다 자동으로 이 환경을 관리해준다.
EB라는 라는 환경이다. 그 환경안에서 많은 것을 관리하고 컨트롤해주는 서비스이다. EB를 통해서 App을 배포할 수 도 있다.
Elastic Beanstalk에서 어플리케이션 만들기
EB서비스를 통해 환경 생성을 할 때 일어 나는 일
트래픽이 적을 때
브라우저에서 요청을 보낼때 Load Balancer라는 것을 거치게 된다. 이 Load Balancer역시 EB환경안에서 관리되는 요소 중 하나이다.
트래픽이 많을 때
트랙픽이 많아 지면 EC2 인스턴스 하나로 브라우저에서 오는 요청들을 감당할 수 없게 된다. 그때는 또 다른 EC2 인스턴스가 추가적으로 이용이 되면서 Load Balancer를 통해 두개의 EC2 인스턴스에 적절히 요청을 나눠준다.
이런 식으로 트래픽관리자 자동적으로 된는 것은 EB이 환경을 구성을 해주기 때문이다.
EB환경안에 Travis CI에 있는 Github와 연동된 소스코드들을 가져와서 EB 환경에 Docker Container를 실행한 뒤에 그 안에서 어플리케이션도 실행을 하면된다.
'Infra > CI-CD' 카테고리의 다른 글
배포 - Multi App(ReactJS/NodeJS)와 위한 Dockerfile 만들기 (0) 2023.01.05 배포 - Docker를 이용한 복잡한 어플리케이션 만들기 (설계) (0) 2023.01.05 배포 - Travis CI (0) 2023.01.02 배포 - 운영환경을 위한 도커 image를 위한 Dockerfile작성하기 (0) 2023.01.01 배포 - 운영환경을 위한 Nginx (0) 2023.01.01