[Docker] Spring boot App 배포 (4) - 서버에 배포하기
·
Docker
1. 서론  빌드 도구인 gradle을 이용해 스프링부트 어플리케이션 build를 성공했다면, 실행 가능한 JAR 파일을 얻었을 것이다. 우리는 이제 이 JAR 파일을 사용해서 WAS가 내장된 스프링부트 어플리케이션에 대한 도커 이미지를 만들고 컨테이너로 구동시킬 것이다. 이전에 우리는 배포 서버로 AWS EC2 인스턴스를 활용하기로 했다. 이전 포스팅들의 흐름대로라면, EC2 인스턴스에는 Docker가 설치된 상태이고, 자신의 로컬 PC에는 빌드된 JAR 파일이 존재하는 상태이다. 도커 컨테이너는 배포 서버인 EC2 인스턴스 안에 띄워야하므로, 현재 EC2 인스턴스 내부에는 활용해야 하는 JAR 파일이 존재하지 않는다는 문제가 발생한다. 이를 해결하기 위한 2가지 방법이 있다.Docker hub를 이용..
[Docker] Spring boot App 배포 (3) - Web App 구동 및 빌드
·
Docker
1. 서론  도커를 설치했다면, 도커 컨테이너를 만들 준비가 완료되었다는 뜻이다. 그렇다면 이제 이미지를 만들어 이를 컨테이너에 담아 우리가 원하는 어플리케이션으로 동작하도록 해야 한다. 당연히 이번의 경우, 컨테이너에 담길 어플리케이션은 스프링부트 어플리케이션이다. 스프링부트 어플리케이션을 이미지로 만들기 위해서는 스프링부트 프로젝트를 빌드해서 나온 산출물인 Executable JAR 파일이 필요하다. 따라서 본격적인 Docker 활용 전에, 웹 어플리케이션 구동과 스프링부트 프로젝트 빌드에 대해 살펴보자.2. Java 웹 어플리케이션 구동 방식  Java 웹 어플리케이션 구동 방식에는 2가지가 있다.외장 WAS : 톰캣과 같은 Web Application Server(이하 WAS) 내부에 WAR 파일..
[Docker] Spring boot App 배포 (2) - EC2 기본 + Docker 설치
·
Docker
1. 서론  Docker를 사용하려면 Docker를 설치해야 한다. 설치되는 곳은 우리의 PC일수도 있고, AWS와 같은 클라우드 서비스일 수도 있다. 우리가 어떤 어플리케이션을 배포한다고 가정하면 어플리케이션이 실제로 존재하는 서버는 우리의 PC가 될 수도 있고, 클라우드 서비스를 이용해 서버를 구축할 수도 있다. 즉, Docker를 활용해 우리의 어플리케이션을 배포하기 위해서는 서버를 어디에서 어떻게 구축할지부터 결정해야 한다.  필자는 AWS EC2 서비스를 활용했다. AWS 계정을 새로 생성하면 1년 동안 일부 AWS 서비스를 무료로 이용할 수 있는데, 이를 프리티어라고 한다. 프리티어인 경우 매월 정해진 최대 사용량을 초과하지 않는다면 아예 무료이고, 성능이 아쉽다면 딱 한단계 높은 인스턴스로 ..
[Docker] Spring boot App 배포 (1) - Docker 기본
·
Docker
1. 서론  신한DS SW Academy에서 진행한 2차 프로젝트는 웹 어플리케이션이다. 프론트엔드는 React, 백엔드는 Spring boot 모듈로 구현되었다. 해당 프로젝트에서 배포를 위해 DevOps 체계를 구축했는데, DevOps 체계에서 CI(Continuous Integration)와 CD(Continuous Deployment)의 자동화는 불가피한 요소이다. 바로 이 자동화의 중심에 Docker라는 리눅스 컨테이너 기술이 있다. 쉽게 말하면, Docker는 이런 자동화 과정에서 필요한 것을 만들고, 올리고, 내릴 수 있는 일꾼이라고 생각하면 편하다. Docker의 기본적인 개념부터 살펴보도록 하자.2. 가상화란?  Wikipedia에서 정의하는 정돈된 정의는 다음과 같다.가상화(假像化, v..