로컬에서 구현이 끝난 서버를 AWS의 EC2, RDS, ElasticCache(Redis)를 사용하여 배포해보자!
EC2, RDS, ElasticCache에 관한 생성 및 설정은 생략하고 시작해보겠다.
우선 서버를 EC2에 올리기전에 로컬에서 RDS와 연결하여 테스트를 해본 후 올리는 방법을 선택하였다.
우선 Host
에는 RDS 생성 후 생성된 엔드포인트를 넣어 준 후 MYSQL
의 포트번호인 3306을 지정해준다. 이후 RDS 생성할때 만든 User와 Password를 넣어준 후 설정한 데이터베이스 이름또한 넣어준다.
다음으로 서버를 EC2로 올리기 위해 기능구현과 테스트코드 작성이 끝난 로컬에서 gradle - task - build
를 통해 해장 자바의 실행파일인 jar확장자를 가진 SNAPSHOT파일을 만들어 준다. 이후에 FileZila
를 이용하여 생성한 EC2에 서버를 업로드 해준다.
다음으로 Window
의 경우에는 GitBash
를 사용하여 서버설정을 진행하는데 GitBash
를 실행하면 위와같은 창이 뜬다. 그럼 이곳에
ssh -i {EC2생성시발급받은 Key위치} ubuntu@{EC2 public 주소}
를 입력하면
Last login: Tue Jan 2 13:03:08 2024 from ########
ubuntu@ip-###-##-###:~$
와같이 ubuntu@
가 명령어 입력콘솔 앞에 붙어있다면 로그인 성공이다.
다음으로 할 작업은 앞서 기능구현 및 테스트시 아래와 같은 여러개 또는 단일로 구성된 properties
파일들이 있고 해당 파일안엔느 각각의 profile
이 정해져있는데 로컬
, 테스트
, 배포
의 환경마다 다른 profile
을 설정하여 다른 파일들을 사용하게된다. 그렇다면 배포환경인 AWS EC2에서 배포 profile
을 사용하게 하는지 지금부터 알아보자.
앞선 콘솔창에서 아래와같이 입력하게되면
$ vi ~/.bashrc
아래와같은 쉘파일이 나오게 되는데 제일 아래줄에 해당 서버에 필요한 환경변수들을 입력해준다.
이때 insert
버튼을 눌러 입력할수있고 esc
+ :wq
를 입력하여 저장을 완료한 후 쉘파일을 빠져나올수있다.
창을 빠져나온 후 아래의 명령어를 실행하여 환경변수의 적용 및 테스트를 시행해본다.
$ source ~/.bashrc
$ echo $profile // profile로 저장된 환경변수 확인
다음으로 작성한 프로파일을 선택하기 위해 EC2를 실행할때 아래 와같은 코드로 실행한다.
java -jar Jamrello-0.0.1-SNAPSHOT.jar --spring.profiles.active=aws
아래와 같이 Spring표시와 함께 에러가없이 초기화가 된다면 성공!