EB는 AWS에서 제공하는 PaaS(Platform as a Service)
인프라에 대한 깊은 지식이 없어도, 애플리케이션을 아주 쉽고 빠르게 배포할 수 있도록 도와주는 서비스.
EB가 자동으로 해주는 것들
EC2 인스턴스 생성 (서버 임대)
EB가 사용자의 설정을 확인하고, 그에 맞는 빈 EC2 컴퓨터를 생성
OS 및 런타임 환경 구성 (세팅)
EC2에 직접 SSH(원격)로 접속해서 Linux 명령어를 치고 Java를 설치할 필요가 없다. EB가 다 세팅된 상태로 서버를 띄움.
코드 배포 및 실행
우리가 던져준 파일(SpringBoot 애플리케이션의 .jar파일)을 EC2 안에 자동으로 밀어 넣고, 8080포트로 서버를 실행시켜 준다.
네트워크와 보안 세팅 (Security Group 설정)
외부 사용자가 웹사이트에 접속할 수 있도록, 80 포트(HTTP)로 들어오는 트래픽을 EC2의 8080 포트로 연결해 주는 등 기본적인 방화벽 규칙도 알아서 생성해서 붙여줌.
Elastic BeanStalk를 사용하게 되면 생기는 변화
로컬 환경)는 이제 서버의 역할에서 완전히 벗어나게 된다.EC2에서 스프링 로직이 실행되는 실제 흐름
요청 도착
사용자가 웹 화면에서 “주식 백테스팅 시작” 버튼을 누르면, 이 HTTP 요청이 인터넷을 타고 EC2 안에 띄워져 있는 스프링 부터의 @Controller로 전달.
무거운 로직 실행
컨트롤러는 요청을 받아 비즈니스 로직을 담당하는 클래스로 넘김. 이때부터 EC2의 CPU와 메모리가 일하기 시작. KIS API를 호출해 실시간 주가 데이터를 요청하고 받아오는 통신도 내 컴퓨터가 아니라 EC2의 네트워크망을 통해 이루어짐.
DB 연동
결과 데이터를 저장하거나 회원 정보를 확인해야 할 때, EC2에서 실행 중인 스프링 코드가 (같은 VPC 안에 있는 RDS 혹은 외부에 있는 S3)로 SQL 쿼리를 날려 통신.
응답 반환
계산과 데이터 저장이 모두 끝나면, EC2가 웹 브라우저로 최종 결과 데이터를 반환.