본문 바로가기
토이 프로젝트

[토이 프로젝트 개발일지] 13. AWS EC2로 배포하기, 도메인 구매

by woorix2 2025. 5. 8.

1. AWS EC2 가입 및 인스턴스 설정

배포 방법으로는 AWS의 클라우드 컴퓨팅 서비스인 EC2를 이용하기로 했다.

 

AWS에 우선 회원가입을 했다.

 

  • AMI: Ubuntu Server 22.04 LTS (HVM), SSD Volume Type
  • 인스턴스 유형: t2.micro
  • 키페어 설정 : RSA, .pem
  • 인바운드: 22(SSH), 80(HTTP), 443(HTTPS) 포트 열기
  • 스토리지: 8GB gp2

 

2. git bash로 인스턴스 접속하기

chmod 400 voca-forest-key.pem
ssh -i voca-forest-key.pem ubuntu@[퍼블릭IP주소]

key pem 파일 권한을 바꿔주소,

인스턴스의 퍼블릭 IP주소로 접속한다.

 

IP주소 접속 할 때 처음 접속하는 거라 "정말 이 서버에 연결할 거야? 이 서버 신뢰할 거야?"라고 물어보는데, yes를 입력하자.

 

3. EC2 서버에 프로그램 설치

 

1) 자바 설치

sudo apt update
sudo apt install openjdk-17-jdk -y
java -version

 

2) MariaDB

sudo apt install mariadb-server -y
sudo systemctl start mariadb
sudo systemctl enable mariadb


sudo mysql_secure_installation //보안설정

sudo mysql_secure_installation 명령을 실행하면, MariaDB를 보안적으로 강화하기 위해 몇 가지 질문을 한다.

 

🎯unix_socket 인증: 비밀번호 없이, 리눅스 운영체제 사용자 인증을 통해 DB에 로그인하는 방식.
서버 안에서 리눅스 사용자(root/ubuntu 등)로 로그인한 상태라면, 비밀번호 없이 MariaDB에 들어갈 수 있게 한다.

 

보안 관련 질문 / 답변/ 설명

Remove anonymous users? Y 익명 사용자 삭제 (보안 강화)
Disallow root login remotely? Y root 사용자가 원격 로그인 못하게 (보안 강화)
Remove test database and access to it? Y 테스트 데이터베이스 삭제 (깔끔)
Reload privilege tables now? Y 권한 변경 적용

 

3) Redis

sudo apt install redis-server -y
sudo systemctl start redis
sudo systemctl enable redis-server

 

enable 할 때는 꼭 'redis-server'라고 입력해야 함. 'redis'만 입력하면 별칭으로 인식해 동작하지 않음.

 

4) Jar Export 후 EC2 업로드

scp -i voca-forest-key.pem build/libs/voca-forest-0.0.1-SNAPSHOT.jar ubuntu@[퍼블릭IP주소]:~/

 

5) 실행

인스턴스 접속 상태에서 터미널에,

java -jar voca-forest-0.0.1-SNAPSHOT.jar

로 실행하면, 로그가 올라가다 에러가 난다.

 

DB 설정이 Local 그대로 올라가서 안 맞기 때문!!!

 

6) DB 및 Table 생성 및 초기 데이터 insert

sudo mysql -u root -p

 

MaridaDB 로그인 후,

DB를 생성하고, DDL문으로 필요한 테이블을 생성했다.

그리고 초기 데이터를 insert 했다.

DB 유저 생성하고 권한부여도 했다.

 

application-properties를 공통과 dev(로컬개발용), real(운영용)으로 나누고 새로 jar를 export 했다.

7) 인스턴스 콘솔 인바운드 규칙 추가.

  • 유형: Custom TCP
  • 포트 범위: 8080
  • 소스: 0.0.0.0/0

위 내용으로 EC2 콘솔에서 인스턴스 인바운드 규칙을 추가하니,
"http://[EC2 퍼블릭 IP]:8080/" 으로 접속이 잘된다!!

 

 


 

4. 도메인 구매.

 

가비아에서 'voca-forest.site' 도메인을 1년에 2750원 주고 구매했다.

DNS에서 관리에서 레코드도 아래와 같이 설정.

A @ 15.164.220.159 3600   DNS 설정
CNAME www voca-forest.site. 3600   DNS 설정

 

운영 properties에 'server.port=80' 설정.

 

지피티의 도움을 받아가며 잘 설정했는데,

아무리 도메인을 입력하고 호출을 해도 안 되는 것.

 

DNS 서버 전파가 시간이 걸릴 수도 있다는데,, 1시간을 걸려도 안 됐다.

뭔가 이상하다 해서 가비아에서 도메인을 다시 살펴봤는데...

알고 보니 도메인에 오타를 낸 것이다 ㅠㅠ

 

당연히 한번 등록된 도메인 수정 불가.....

영광의 상처로 안고 계속 쓰기로 했다..

 

개발에서도 그렇고 오타가 많은 에너지를 빼앗는다. 주의하자.