첫번째로 스프링부트를 돌려줄 서버를 만들어야한다.
프리티어는 1달에 750시간동안 EC2를 무료로 이용할 수 있어서 인스턴스 1개만 돌린다면 과금이 없을것 ..
(이지만 청구서를 자주 자주 확인하여 AWS에 봐달라고 메일보내는 일이 없도록 하자,,)
우선 EC2용 IAM역할을 생성해줘야 한다.
EC2
를 선택해준 후
CodeDeploy 와 S3 FullAcess
정책 두개를 추가해 생성하면 끝!
서울 지역에서 인스턴스를 생성해줬다.
대강 이름설정하고 운영체제는 우분투 20.04
를 선택해줬다.
(처음에 22.04버전을 선택했는데 CodeDeploy Agent가 작동하지 않아서 20.04버전으로 다시 생성했더니 작동했다,,)
인스턴스 유형은 그대로 두고 키 페어를 생성해줘야한다.
OpenSSH로 접속할거라서 .pem 그대로 두고 키페어 생성해서 넣어준다.
프리티어는 30GB까지 무료라서 늘려줬다.
대강 이렇게 인스턴스 생성을 하고
생성된 인스턴스 > 작업 > 보안 > IAM 역할 수정
에서 아까 만든 IAM 역할을 넣어준다.
생성된 인스턴스 > 보안 > 보안그룹 > 인바운드 규칙 편집 > 규칙추가
에서 일단은 톰캣 포트 8080만 열어주었다.
인스턴스를 중지하고 다시 실행하는 경우가 생길 수 있는데 이런 경우에는 할당받았던 IP주소가 바뀌는 불상사가 발생한다. 고로 Elastic IP
를 할당받아 고정IP 주소를 사용한다.
프리티어에서는 탄력적 IP를 할당받고 인스턴스에 연결해주지 않으면 요금이 발생하니 주의하도록 하자. (인스턴스 지워놓고 깜빡해서 쿨하게 500원 결제)
탄력적 ip 주소 할당 > 할당 하면 끝이다.
할당받은 탄력적 ip > 탄력적 ip주소 연결에서 위에서 만든 EC2인스턴스를 선택해주면 끝!
이후 서버의 ip주소는 이 탄력적 ip주소로 사용하면된다.
OpenSSh로 인스턴스 접속은 친절히 구글링으로 알아보자..!
생성한 EC2에 접속해서 CodeDeploy Agent를 설치해줘야한다.
위 링크에 나와있는대로 진행한다. 아마존은 정말 친절하게 알려준다
프로젝트 버전에 맞게 설치해준다.
이번 프로젝트는 java 11버전이라 11버전에 맞게 설치해줬다.
$ sudo apt-get install openjdk-11-jdk
$ java -version
설치후 버전 확인을하고,,
mariadb를 사용할 예정이기 때문에 미리 설치해줬다.
대강의 설치 과정은 [Ubuntu] EC2 mariadb 설치 + 스프링부트 연동하기 에 작성해 두었다
연동이 문제 없으면 CodeDeploy의 EC2배포후에 SpringBoot가 잘 돌아갈 것이고.. 문제가 있다면 db관련 에러를 뱉을 것,,
로그인 jwt토큰을 redis에 저장할 것이기 때문에 설치해줬다.
$ sudo apt-get install redis-server
$ redis-server --version
추후를 생각해서 미리 시간 설정을 해줬다
EC2 한국 시간 설정하기
이정도면 EC2 관해서는 할만큼 했다고 볼 수 있다. (아마도..)
다음은 S3버킷을 생성해야한다!
>>다음 이야기,,