[Spring + React] IaaS 서비스 활용 배포

keymu·2025년 2월 14일
0

다양한 클라우드 서비스 유형과 Docker

IaaS (Infrastructure as a Service)

  • 가상 서버, 스토리지, 네트워크 등 기본적인 컴퓨팅 인프라를 제공하는 서비스
  • Amazon EC2가 대표적인 예시

IaaS의 특징

  • 사용자가 직접 OS, 미들웨어, 런타임, 애플리케이션을 설치하고 관리
  • 더 많은 통제권과 유연성 제공
  • 관리 책임이 큼 (OS 업데이트, 보안 패치, 런타임 환경 설정 등)

IaaS 배포 프로세스 예시

  1. EC2, RDS 서버 연결
  2. JPA로 테이블 생성
  3. React 서버 실행
  4. 연결 확인 후 tar 압축파일 생성

PaaS (Platform as a Service)

  • 애플리케이션 실행에 필요한 플랫폼을 제공하는 서비스
  • AWS Elastic Beanstalk이 대표적인 예시

PaaS의 특징

  • OS, 미들웨어, 런타임 환경을 서비스 제공자가 관리
  • 개발과 배포에 더 집중 가능
  • 코드 업로드만으로 배포 가능
  • 자동 스케일링과 로드 밸런싱 제공
  • 환경 관리 자동화

Docker: 컨테이너화 플랫폼

  • 애플리케이션을 "컨테이너"라는 표준화된 단위로 패키징하는 플랫폼

Docker 컨테이너란?

  • 컨테이너는 애플리케이션과 그것을 실행하는데 필요한 모든 의존성(라이브러리, 설정 등)을 하나의 패키지로 묶은 것
  • 마치 선박 컨테이너처럼 표준화된 방식으로 어디서든 실행이 가능

Docker의 장점

  • 환경 일관성: "내 컴퓨터에서는 작동했는데..." 문제 해결
  • 격리성: 각 애플리케이션이 독립된 환경에서 실행
  • 이식성: 개발/테스트/운영 환경 간 쉬운 이동
  • 자원 효율성: VM보다 가벼운 구조

Docker 사용 예시

Spring Boot 애플리케이션을 위한 Dockerfile 예시:

FROM openjdk:17
COPY target/FITPLE-1.0.0.jar app.jar
EXPOSE 8081
ENTRYPOINT ["java","-jar","/app.jar"]

Docker와 클라우드 서비스의 관계

  • Docker 자체는 IaaS나 PaaS로 직접 분류되지 않으며, 사용 방식에 따라 다르게 활용될 수 있음

IaaS 방식

  • EC2에 Docker를 직접 설치하고 관리
  • 더 많은 통제권과 책임
  • 직접적인 Docker 설치, 관리, 운영 필요

PaaS 방식

  • AWS ECS, EKS와 같은 관리형 컨테이너 서비스 사용
  • AWS가 Docker 실행 환경을 관리
  • 컨테이너 이미지만 제공하면 됨

IaaS: 빈 아파트를 받아서 직접 가구를 놓고 꾸미는 것
PaaS: 풀옵션 원룸처럼 다 갖춰진 환경을 받는 것
Docker: 가구나 살림살이를 표준화된 상자에 담아서 쉽게 옮길 수 있게 해주는 포장 기술

profile
Junior Backend Developer

0개의 댓글