[Spring 프로젝트] 배포

heyhey·2023년 3월 21일
0

프로젝트

목록 보기
5/8

요즘 백엔드 배포에는 여러 방법이 있지만, 대체로 클라우드 환경에서 운영하는 것이 트렌드이다.

클라우드 서비스

대표적인 클라우드 서비스는 AWS, Azure, Google Cloud Platform 이 있다.
이러한 클라우드 서비스를 이용하면 인프라 구성이 필요 없고, 필요한 리소스를 관리할 수 있다.

컨테이너 기반 배포

컨테이너 기반 배포 방식도 하나의 방법이다.
컨테이너는 애플리케이션을 실행하기 위한 필수 라이브러리, 환경 설정 및 코드를 포함하는 독립적인 패키지이다.
컨테이너를 사용하면 개발 환경과 운영 환경의 차이로 인한 문제를 최소화할 수 있다.
Kubernetes를 사용하면 자동배포 관리가 가능해서 유용하다.

서버리스 아키텍쳐

AWS Lamda, Azure function, Google Cloud Function 이 있다
서버 인프라를 관리할 필요가 없이, 코드가 실행될 때만 자원을 할당하고 실행한다.
인프라 걱정을 줄일 수 있다.=> 개발 생산성이 높아지게 된다.

그 중 클라우드 서비스를 선택했다 그 중에 EC2 인스턴스에 배포하는 것을 선택했다.
가상 머신을 직접 관리해 보며, 배포 방법도 익히고, 프로젝트, db, socket 까지 배포를 해보며, 익숙해 지고 이해하는 것이 목표이다.

EC2 인스턴스에 배포


1. 인스턴스 시작하기

2. 인스턴스 연결하기

  1. key pair을 받는다
  2. ssh 를 통해 key pair 와 함께 접속한다.
    ssh -i ./dubu-key.cer ubuntu@ec2-13-124-125-xxx.ap-northeast-2.compute.amazonaws.com

=> 에러 : Permissions 0644 for './dubu-key.cer' are too open.
파일의 권한이 너무 열려 있어 발생한다.

chmod 400 dubu-key.cer : 파일의 권한을 바꿔준다.

다시 로그인하면
ubuntu@ip-172-31-1-39:~$ 이 된다

3. JAR 파일 업로드 & 실행

SCP(Secure Copy) 이나 SFTP(Secure File Transfer Protocol)
사용하여 JAR 파일을 EC2 인스턴스에 업로드한다

sscp -i keypare-dubu.cer ./build/libs/dubu..SNAPSHOT.jar ubuntu@ec2-13-124-125-186.ap-northeast-2.compute.amazonaws.com:~/new/

자바 설치 하기

  1. 리눅스 업데이트
    sudo apt update

  2. openJDK,spring 설치
    sudo apt install default-jdk
    sudo apt-get install spring

  3. 자바 설치 확인
    java -version

4. 스프링 프로젝트 빌드

EC2에 배포하기 위해서는 먼저 애플리케이션을 빌드해야한다.
이 단계에서는 gradle을 사용해서 .jar 파일을 생성한다.

5. tomcat을 설치

sudo apt-get install tomcat9
spring 프로젝트를 tomcat에 배포할 것이다.

java -jar dubu-0.0.1-SNAPSHOT.jar
실행! => 뭐가 돌아가다가 에러가 뜨는데 아마 mysql이 안깔려서 그런듯?

6. DB 설치

1. MYSQL을 설치해준다.

sudo apt-get install mysql-server

2. 보안 그룹 구성

AWS EC2 보안 그룹에서 MySQL에 대한 포트를 열어준다. => 기본 (3306)

(나중에 열기 귀찮아서 443,80 포트도 열어놨다.. ㅎ)

3. MySQL 시작

sudo systemctl start mysql

서비스 상태 확인 ) sudo systemctl status mysql

사용자 계정으로 로그인 sudo su

profile
주경야독

0개의 댓글