배포

hayoung__ee·2026년 4월 9일

AWS

목록 보기
2/2

배포 방법
A ) AWS Elastic Beanstalk (가장 최신, 쉬움)
: JAR 파일만 업로드하면 EC2 + Load Balancer + 오토 스케일링 자동 구성

  • 오토 스케일링 : 상황에 맞춰 서버의 갯수를 자동으로 늘리거나 줄이는 기술
    Docker 없이도 가능, CI/CD는 GitHub Actions 연결

  • CI/CD : 서버에 전달하는 방식,
    코딩(셰프가 레시피 작성) & 빌드(요리 ing) & 패키징(요리 포장) & 배포 (사용자에게 전달)

장점 : 완전 자동화 -> 코드 수정 후 자동으로 서버에 반영(CI/CD),
서버 관리 (Beanstalk), 데이터베이스(RDS), 캐시(Redis)가 각각 분리되어있어 한쪽이 고장나도 관리 용이

B ) AWS Qpp Runner + ECR (Docker 기반, 기본방식)

Dockerfile + ECR 푸시 : App Runner가 자동 배포
HTTPS, 오토 스케일링 자동 : 개발자가 직접 관리해야하는 포인트가 적다는 장점이 있다

C ) ECS Fargate (확장성 좋음, 설정 복잡)
실제 서버를 구축하는 인프라에서 사용됨 : 본격적인 컨테이너 운영시 사용

1차 프로젝트 (A 이용)

  • Spring Legacy Project + MySQL

전체 배포 흐름 (배포 아키텍쳐)
GitHub -> GitHub Actions(빌드) -> S3(JAR파일 업로드) -> Beanstalk(EC2, 프리티어)

Beanstalk
|--RDS MySQL(프리티어)
ㄴ- ElastiCache Redis ※프리티어 없음(비용 발생)

GitHub : 개발자가 작성한 코드 저장
GitHub Actions : 코드를 빌드하여 JAR 파일을 만듦
S3 : 중간 창고 (AWS가 제공하는 무제한 저장소)
Beanstalk : S3에 저장된 파일을 자동 배포(EC2서버 자동 세팅 및 자동 실행)
RDS MySQL, ElastiCache : 서버가 죽어도 데이터는 유지되어야 하기위해 사용
RDS MySQL(메인 저장소) : 영구적으로 데이터 보관
ElastiCache Redis(빠른 임시 창고) : 자주 조회하는 데이터나 로그인 세션 정보를 빛의 속도로 응답하게 해주는 기술
-> 배포시 처음부터 넣기보다는 성능 최적화가 필요하다면 그때 추가하는 것이 좋다.

배포 단계

  1. 코드 준비
  • application-prod.properties 생성 (DB, Redis, 메일, OAuth 모두 환경 변수화)
  • .ebextensions/ 설정 (포트설정, JVM 옵션)
  • Procfile(JAR 실행)
  • .github/workflows/deploy.yml (Maven 빌드 ->Beanstalk 배포)
  • .gitignore 보강
  1. AWS 콘솔 작업
  • IAM 사용자 생성(Beanstalk + S3 권한 부여) -> Access Key 발급
  • RDS MySQL 인스턴스 생성(프리티어)
  • Beanstalk 애플리케이션/환경 생성(JDK 17 플랫폼)
  • Beanstalk 환경 변수 설정(DB, Redis, 메일, OAuth 등 시크릿 입력)
  1. GitHub 설정
  • 리포지토리 생성 / 푸시
  • GitHub Secrets 등록 (AWS_ACCESS_KEY_ID 등)
  1. 배포 트리거 : main 브랜치에 push -> 자동으로 배포 (생략가능한 단계)

  2. Redis (10달러이상 비용 발생)


IAM 계정생성
프로젝트명 - deployer 생성

추가

사전 준비물
Git : https://git-scm.com/download/win
GitHub CLI : https://cli.github.com/
AWS CLI v2 : https://awscli.amazonaws.com/AWSCLIV2.msi
-> 다운로드

보안 자격 - 액세스키 만듦


.csv 다운로드


버전 확인

AWS 페이지 이동









데이터베이스 생성



복사 후 저장


엔드포인트 복사 후 저장

"mysql 설치 경로" -h 엔드포인트 -u admin -p db명 < "sql이 있는 경로"
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql" -h zipmap-db.czo2i24sejc1.ap-northeast-2.rds.amazonaws.com -u admin -p zipmap
꺽쇄전까지
show tables;

4단계에서
새 서비스 역할 생성 및 사용 만든후



권한 추가


IAM 권한 추가

https://console.cloud.google.com/
접속

2차 프로젝트 (B 이용)

  • Spring Boot + MySQL + Python + VectorDB + React

0개의 댓글