본문 바로가기
3.1 SpringBoot/묘공단 SpirngBoot3

[묘공단/spring] 11-12장 AWS, CI/CD - 개념편

by Dohi._. 2023. 11. 10.
728x90

포스팅 목차  (책의 목차와 다릅니다 개인적으로 공부한 내용입니다)

11장 AWS에 프로젝트 배포하기

  11-1. 클라우드 서비스 

  11-2. AWS 

12장 CI/CD 도입하기

  12-1. CI

  12-2. CD

 

 

11-1. 클라우드 서비스 

저희가 지금 까지 만든 스프링 부트 서버를 실행 시키기 위해서는 서버용 PC를 구매혹은 지정하여 직접 배포하는 방식과 AWS,NaverCloud와 같은 클라우드 컴퓨팅 서비스를 이용하여 배포하는 방식이 있습니다

직접 운영하는 방식을 온프레미스(on-premise)라고 합니다

 

일단 온프레미스는 직접 운영하는 만큼 높은 직접 관리를 해야하고 높은 초기비용 지불해야 합니다.

반면 클라우드의 경우 운영을 직접 하지 않기 때문에 인프라 운영에 대한 부담이 크게 발생하지 않습니다.

온프레미스    클라우드
장점
  • 물리적 보안 가능
  • 사용자에 맞춤 시스템 구축
  • 저렴한 유지보수 비용
장점
  • 저렴한 초기 비용
  • 운영 부담 감소
  • 어디서나 사용 가능
단점
  • 높은 초기 비용
  • IT 인프라 직접 관리 필요
단점
  • 보안 이슈
  • 높은 유지 비용 발생

 

 

11-2 AWS

AWS는 클라우드 서비스에서 유명하며 다양한 서비스를 제공합니다.

컴퓨팅 서비스,데이터베이스 서비스, 스토리지 서비스, AI서비스등 다양한 서비스를 제공하죠

AWS로 배포를 하기 위해서는 일단 AWS상에 서버를 구성해야합니다 

이번에 사용할 서비스는 아래와 같습니다.

  • EC2: AWS에서 제공하는 원격 서버
    • 오토 스케일링 그룹 : 사용자의 요청 횟숭 따라 EC2의 갯수를 늘리거나 줄이는 관리 서비스
    • 대상 그룹(target group) 
    • 로드 밸런서 : 요청이 한 경로로 들어와 과부화가 되는것을 방지하기 위해 요청을 분산시킴.
  • RDS: AWS에서 제공하는 원격 데이터베이스서버
  • S3 :파일 저장소

 

12-1. CI 

CI는 continnuous Intergration를 줄인 표현으로 지속적 통합이라는 뜻을 가지고 있습니다

풀어서 설명하면 개발자를 위해 빌드와 테스트를 자동화 하는 과정입니다.

CI는 변경 사항을 자동으로 테스트 하여 애플리케이션이 문제가 없다는 것을 보장하며

코드를 정기적으로 빌드하고, 테스트하므로 여러 명이 동시에 작업을 하는 경우에 충돌을 방지하고 모니터링을 할 수 있습니다.

 

12-2. CD 

CD는 지속적 제공(continnuous delivery)과 지속적 배포(continuous deployment)의 의미를 모두 가지는 말로

CI 작업을 끝낸 다음 실행하는 작업입니다.

즉, 배포 준비가 된 코드를 자동으로 서버에 배포하는 작업을 자동화 하는 것이죠.

코드를 정기적으로 빌드하고, 테스트하므로 여러 명이 동시에 작업을 하는 경우에 충돌을 방지하고 모니터링을 할 수 있습니다.

 


이 글은 골든래빗 《스프링 부트 3 백엔드 개발자 되기 - 자바 편》의 11~12장 써머리입니다.

 

728x90

댓글