우리가 스프링부트를 이용한 개인 프로젝트를 진행할때면 보통 서버를 띄웠다 내렸다를 반복하며 localhost 주소를 이용한다.
사실 혼자 진행하는 프로젝트라면 이렇게 해도 문제가 되지는 않지만 소수로 진행하는 팀프로젝트만 되더라도 상당한 불편함이 있다.
특히, 데이터베이스에 데이터들을 넣어보며 테스트해보아야하는 경우 import.sql
파일을 이용해 공동으로 데이터를 관리한다하더라도 한계가 있다.
따라서 AWS 의 EC2를 이용해 서버를 띄우고, 스프링부트와 연동하는 방법을 알아보고자 한다.
** 참고로 EC2란 Elastic Compute Cloud의 약자로, 쉽게는 가상컴퓨터라고 생각하면 된다.
사전 환경
AWS 회원가입 후, EC2 인스턴스 생성이 되어있는 환경이 필요하다.
EC2 인스턴스를 생성하는 방법은 어렵지 않고, 검색해보면 여러 군데에 자세히 나와있으니 생략합니다ㅎㅎ
(참고 가능한 블로그 : https://codemonkyu.tistory.com/entry/AWSEC2-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0-12)
해당 환경이 모두 구축되었다면 다음과 같이 인스턴스
메뉴에서 생성한 인스턴스들의 정보를 확인할 수 있다.
이제 원하는 인스턴스에 스프링부트 서버를 띄워보자.
1. 탄력적 IP 할당 받기
가장 먼저, 어디서든 고정된 IP를 통해 접속할 수 있도록 탄력적 IP
를 할당받아야 한다.
현재 해당 인스턴스의 퍼블릭 IP 주소는 다음과 같다.
(인스턴스 정보 > 해당 인스턴스의 ID를 클릭하면 확인할 수 있다.)그렇다면, 인스턴스를 중지시킨 후 재시작해보자. 이렇게 IP주소가 변해버리는 것을 볼 수 있다.
따라서, 탄력적 IP의 할당이 필요하다. 그렇지 않으면 서버에 접속할때마다 해당 IP주소로 재설정이 필요하기 때문이다.
탄력적 IP 메뉴로 들어가, 오른쪽 위의 탄력적 IP 주소 할당
버튼을 클릭한다!
이 과정에서는 특별한 설정 없이 그냥 할당 버튼을 눌러주면 된다.
이렇게 할당된 IP주소를 이제 원하는 인스턴스에 연결시켜주어야 한다.
작업 > 탄력적 IP 주소 연결 클릭!
인스턴스에 원하는 인스턴스를 선택해주고, 해당하는 프라이빗 IP 주소를 입력한다. (직접 입력할 필요 없이 선택하면 아래에 옵션으로 나타남!)
마지막으로 연결 버튼을 눌러주자.
다시 해당 인스턴스 정보로 들어가보자.
위와 같이 탄력적 IP 주소가 할당되었고, 퍼블릭 IP주소도 같은 주소로 변경되어있는 것을 확인할 수 있다.
이제 서버가 꺼졌다 켜지더라도 변경없이 해당 주소로 접속할 수 있다는 의미이다.
다음 단계로 가기 전에 터미널을 통해 해당 서버에 간단히 접속하는 법을 참고로 알아보자.
cf) mac 터미널에서 간단한 명령어로 접속하기
이제 우리는 앞서 할당받은 ip 주소(3.37.170.121
) 에 위와 같은 명령어로 접속할 수 있다.
이렇게 ssh -i [키페어 파일명] [퍼블릭 DNS]
로 이루어진 긴 명령어는 매번 입력하기 귀찮은 면도 있지만 관리하는 서버가 많아질수록 분별이 어려워질 수 있다.
따라서 좀 더 쉽게 접속할 수 있도록 설정을 해보자.
1) ./ssh
에 pem 파일 복사 후 권한 변경 먼저 키 페어가 있는 위치에서 해당 파일을 ~./ssh
로 복사 해주고,
명령어를 이용해 권한을 변경해준다.
2) config 파일 작성다음으로, 복사한 파일이 있는 ./ssh
로 가서 vi명령어를 이용해 config
파일을 생성한 후 위와 같이 4가지 항목을 적어준다.
이때 우리가 기존의 접속하던 명령어인
ssh -i "ec2.pem" ubuntu@ec2-3-37-170-121.ap-northeast-2.compute.amazonaws.com
를 참고할 수 있다.
Host :
접속 시 원하는 호스트 이름
User :
@ 앞에 쓰인 유저명
HostName :
@ 뒤에 쓰인 ip 주소
(탄력적 ip를 할당받지 않은 경우에도 해당위치에 쓰인 퍼블릭 ip주소를 대신 적어주면 됨!)
IdentityFile :
키 페어(.pem) 파일 위치
이제, 기존의 긴 명령어 대신 ssh {Host}
을 입력하면!
짠
짧은 명령어로 쉽게 접속이 가능해졌다.
이제 다음 단계로 넘어가보자
https://velog.io/@minji/AWS-EC2%EC%97%90-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EB%9D%84%EC%9A%B0%EB%8A%94-%EB%B0%A9%EB%B2%95-2