Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 확장시 컴퓨팅을 제공합니다. Amazon EC2를 사용하면 하드웨어에 선투자 할 필요가 없어 더 빠르게 애플리케이션을 개발하고 배포할 수 있습니다. Amazon EC2를 통해 원하는 만큼 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능 합니다. 또한 Amazon EC2는 요구사항이나 갑작스러운 인기 증대 등 변동 사항에 따라 신속하게 규모를 확장하거나 축소 할 수 있어 서버 트래픽 예측 필요성이 줄어듭니다.
한 대의 컴퓨터를 임대하여 그 컴퓨터에 OS를 설치하고 웹서비스를 위한 프로그램들(웹서버, DB)을 설치해서 사용하는 방식으로 1대의 컴퓨터를 하나의 EC2 인스턴스라고 생각 할 수 있습니다.
AWS Elastic Beanstalk는 Apache, Nginx같은 친숙한 서버에서 Java, NET, PHP, Node.js, Python, Ruby, Go 및 Docker와 함께 개발된 웹 응용 프로그램 및 서비스를 배포하고 확장하기 쉬운 서비스 입니다. 아래서 보는 도표와 같이 Elastic Beanstalk은 EC2 인스턴스나 데이타베이스 같이 많은 것들을 포함한 “환경”을 구성하며 만들고 있는 소프트웨어를 업데이트 할때마다 이 환경을 관리 해줍니다.
트래픽이 많아지면 인스턴스 하나로 모든 요청을 감당 할수 없기 때문에 로드밸런스를 통해서 요청들을 EC2로 나눠주도록 한다.
트래픽이 많아지면 EC2 인스턴스가 자동으로 생성되고 로드밸런스가 트래픽을 알아서 나눠준다.