AWS

Spring boot + AWS ec2 windows 를 활용한 프로젝트 배포

힙합비둘기 2024. 9. 26. 13:16

이번 시간엔 클라우드 플랫폼 중 하나인 아마존 웹 서비스(AWS) 를 이용한 간단한 spring boot 프로젝트를

배포해보는 시간을 가져보겠다.

 

일단 배포할 프로젝트는 docker 테스트 시 쓰였던 프로젝트를 그대로 활용하겠다.

https://github.com/TAEWOOKK/docker

 

GitHub - TAEWOOKK/docker: 도커를 이용해서 배포가 되는 스프링 프로젝트 기본 툴

도커를 이용해서 배포가 되는 스프링 프로젝트 기본 툴. Contribute to TAEWOOKK/docker development by creating an account on GitHub.

github.com

 

@RestController
public class MainController {

    @GetMapping("/")
    public String Main() {

        return "Hello World2";    }
}

 

문자를 출력해주는 간단한 프로젝트이다.

 

일단 .jar 파일이 필요하기 때문에 bootJar 를 통해 .jar 파일로 빌드해 주겠다.

 

인텔리제이 기준 우측 Gradle  - build - bootJar 를 클릭해주면 

빌드가 성공적으로 되게 되고

.jar 파일이 성공적으로 생성된 걸 확인 할 수있다.

이제 AWS 에서 배포 환경을 만들어보자.

 

https://ap-northeast-2.console.aws.amazon.com/ec2/home?region=ap-northeast-2#Home:

 

https://ap-northeast-2.console.aws.amazon.com/ec2/home?region=ap-northeast-2#Home:

 

ap-northeast-2.console.aws.amazon.com

만약 AWS에 회원가입 하지 않았다면 진행해주도록 하자.

 

 

필자의 경우 인스턴스가 이미 하나가 실행 중이므로 이런창이 뜨나 

 

 

여기서 우측 상단의 인스턴스 시작을 클릭해서 새로운 인스턴스를 만들어주자.

인스턴스 이름은 test 

OS 의 경우 windows 서버를 택해주도록 하겠다.

 

인스턴스 유형은 프리티어가 가능한 t2.micro 를 해주겠다.

허나 프로젝트나 실제 배포를 위한 서버에 t2.micro 는 너무 속도가 느리기때문에

유료로 다른 인스턴스 유형을 선택하기도 한다.

 

키 페어의 경우 이렇게 새롭게 생성해주면 키 파일이 다운로드 받아진다.

이 파일의 경우 생성한 인스턴스에 접속하기 위해 꼭 필요한 파일이므로 안전한 곳에 보관해두도록 한다.

보안그룹의 경우

 

이렇게 새로 생성해주도록 한다.

 

 

스토리지의 경우 우리컴퓨터의 c: 드라이브의 용량을 결정짓는거라 생각하면 된다. 

기본값으로 설정해놓자.

 

이렇게 인스턴스를 성공적으로 생성했다.

 

이제 인스턴스 에 연결해보자 인스턴스 연결 - RDP 클라이언트 에 들어가면 

 

 

여기서 원격 데스크톱 파일 다운로드를 클릭해서 windows 서버에 접속 할 수 있다.

 

허나 접속할려 하면

 

 

이렇게 암호를 입력하라고 뜨게 된다.

 

여기서 암호는 아까 보관했던 키페어 파일을 이용해서 바로 위 이미지의 하단에 암호가져오기 를 이용해서

가져올 수 있다.

 

 

이 창에서 키 파일을 업로드 하고 우측 하단의 암호 해독 버튼을 누르면

 

 

이렇게 암호가 생성된다.

이제 인스턴스에 접속해 보자.

 

 

이렇게 새로운 인스턴스가 성공적으로 생성된 걸 확인 할 수 있다.

 

이제 .jar 를 실행시켜주기 위해 자바를 설치해보도록 하자.

 

서버 컴퓨터가 아닌 기존 컴퓨터에 자바installer 를 설치해서 서버 컴퓨터로 옮기는 방식으로 하겠다.

https://www.oracle.com/kr/java/technologies/downloads/#jdk21-windows

 

Download the Latest Java LTS Free

Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.

www.oracle.com

여기서 x64 Installer 을 설치 후 다운로드 한 파일을 ctrl-c 서버컴퓨터 바탕화면에 ctrl-v 를 해주면

 

 

이렇게 옮겨지는 걸 확인 할 수 있다.

 

다 옮겨졌으면 자바를 설치해 주도록 하자.

 

설치가 완료되면 명령 프롬포트 창을 열어서 

 

java -version

 

 

입력해주면 자바가 성공적으로 설치 된걸 확인 할 수 있다.

처음에 만든 .jar 파일을 옮겨주도록 하자.

 

필자의 경우 .jar 파일을 여기다가 옮겨주었는데 

이유는 cmd 를 켜면 처음 경로가 여기로 되어있기 때문이다.

.jar 파일을 실행하기 위해선 해당 jar 파일이 있는 경로에서 실행시켜주어야 한다.

이제 jar 파일을 실행해 보자.

 

java -jar docker_test.jar
java -jar {jar파일 이름.jar}

 

 

이렇게 성공적으로 프로젝트가 실행된걸 확인 할 수 있다.

 

프로젝트를 확인 하기 전에 우리는 보안 그룹에서 8081 포트에 대해 인바운드 규칙을 추가해줘야 8081 포트를 접근할 수 있다.

 

ec2 - 보안그룹 - 내가 선택한 보안그룹 - 인바운드 규칙 편집 - 8081 포트 추가

 

이렇게 해주고 

 

퍼블릭ip 주소 : 8081 포트로 접속할 경우

 

성공적으로 프로젝트가 실행된 걸 확인 할 수 있다.

 

이렇게 스프링 부트 프로젝트를 시험삼아 배포해보았다.

이제 여기에 rds 로 DB 를 연결해도 되고,

도메인을 구입해 도메인을 연결 시켜서 ip 주소가 아닌 도메인을 치고 들어오게 할 수 있다.

더 나아가 SSL 인증서를 받아 ACM 과 로드 밸런서를 이용해 https 접속을 하게 할 수도 있다.

 

허나 그 모든것도 이렇게 서버를 배포하는 과정을 모르고선 시작할 수 없다.

사이트를 배포하고 운영하는걸 목표로 한다면 이런 과정을 한번씩 해보는 것을 추천한다.

다음 시간엔 위에 말한 과정을 설명해 보도록 하겠다.

반응형