Spring Boot 프로젝트 + AWS EC2에 Route53 도메인 연결하기

u-nij·2022년 5월 23일
0
post-thumbnail

사전 준비

  • Spring Boot 프로젝트 기준으로, build가 성공적으로 완료된 jar파일이 필요합니다.
  • 홈페이지 우측 상단에서 지역을 '서울'로 맞춰주세요. (설정하지 않으면 연결 후에 503 Gateway Time-out 에러가 뜰 수 있습니다.)

AWS EC2

Amazon EC2(Elastic Compute Cloud)는 AWS cloud에서 컴퓨팅 용량을 제공합니다. EC2 인스턴스를 시작하면, EC2는 자동으로 Linux, Ubuntu와 같은 운영 체제와 AMI(Amazon Machine Image)에 포함된 추가 소프트웨어를 설치해 빠르게 애플리케이션을 개발하고 배포할 수 있습니다.

인스턴스 생성

1) 상단에 EC2를 검색해, EC2 서비스로 들어갑니다.

2) 인스턴스 시작을 눌러 인스턴스를 생성하고, 시작하기 버튼을 누릅니다.

  • 1단계 : 'Ubuntu 18.04
  • 2단계 : 프리티어 사용 가능한 유형으로 선택
  • 보안그룹 : '유형-HTTP, 소스-위치 무관' 추가

3) 새 키 페어를 생성하고 '인스턴스 시작' 버튼을 누릅니다.

  • 유형 : RSA
  • 키 페어 이름 : demo-web
  • 제공받은 .pem 파일로 PuTTYgen을 이용해 .ppk 파일을 만들어줍니다.

탄력적 IP(EIP)

1) 탄력적 IP 주소를 할당받습니다.

2) 작업 - 탄력적 IP 주소 연결 - 인스턴스 선택 - 방금 만든 인스턴스 선택

AWS Route 53

1) Route 53 서비스로 들어갑니다.

2) 호스팅 영역 - 호스팅 영역 생성 - 도메인 이름 입력 후, 호스팅 영역 생성 버튼을 누릅니다.

3) 만들어진 호스팅 영역 인스턴스를 클릭해 상세 페이지로 이동합니다.

4) 레코드 생성 버튼을 누른 후, 아래의 내용을 입력하고 레코드 생성 버튼을 누릅니다.

  • 레코드 이름 : 연결할 서브 도메인 명 작성
  • 레코드 유형 : A
  • 값 : 할당받은 탄력적 IP 주소

(저는 루트 도메인과 www 서브 도메인으로 2개를 만들어주었습니다.)

확인해야 할 사항

  • 유형 'NS'의 '값/트래픽 라우팅 대상' : 구매한 도메인의 들과 같아야 합니다.
    (도메인을 구매할 때, 4개의 값이 함께 주어집니다.)
  • 유형 'A'의 '값/트래픽 라우팅 대상' : 할당받은 탄력적 IP 주소

연결하기

1) PuTTY를 실행해, Connection - SSH - Auth에서 Private key file of authentication에 미리 변환시킨 .ppk 파일을 넣어줍니다.

2) Session에서 아래 내용으로 변경한 후, Open 버튼을 누릅니다.

  • Host Name : 탄력적 IP 주소
  • 포트 : 22
  • Connection type: SSH

3) login as : ubuntu

빌드 완료된 .jar 파일 넣기

4) FileZilla와 같은 FTP 프로그램을 이용해 .jar 파일을 넣어주겠습니다.

  • 파일 - 사이트 관리자 - New site 클릭 - PuTTY와 같은 방법으로 연결한 후, 빌드가 완료된 jar 파일을 넣어줍니다.
  • 프로토콜 : SFTP - SSH File Transfer Protocol

5) PuTTY 콘솔 창에서 ls -al을 입력하면 .jar 파일이 보입니다.

실행하기

AWS EC2 보안그룹에서 포트 8080번을 추가로 열어두고, 자바 환경변수 설정 & 실행시켜보겠습니다.

sudo apt-get update
java -version
sudo apt -y install openjdk-11-jre-headless	# 빌드된 프로젝트의 java 환경에 맞춰 설치
java -jar {jar 파일명}

실행 후, 도메인을 통해 접속하면 프로젝트 화면이 보입니다!

Reference

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html
https://aws.amazon.com/ko/getting-started/hands-on/get-a-domain/

profile
삶은 달걀이다

0개의 댓글