[springboot-webserivce] AWS EC2 서버환경구축
Updated:
[2020.12.28] 부터 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 통해 스프링 공부를 시작했다.
공부한 내용을 글로 정리하려고 한다.
그래야 나중에 다시 찾아보며 공부 할 수 있을테니까 !!
🚀 AWS EC2 서버환경구축
지금까지 게시물을 작성하고, 수정하고, 삭제하는 기능을 구현했다.
글로 정리는 안했지만 구글로 로그인하기, 네이버로 로그인하기 기능도 구현했다.
스프링 시큐리티를 이용해 구현했는데 아직 내가 이해하기엔 너무 어려워 정리는 못 하고 예제코드를 통해 구현만 했다.
이제 필요한 모든 기능을 구현했기 때문에 이 프로젝트를 올릴 서버가 필요하다.
그 서버로 AWS EC2 를 사용하려고 한다.
🛳 EC2 인스턴스 생성
먼저 EC2 대시보드 에 들어가 인스턴스 시작을 클릭한다.
인스턴스는 EC2 서버에 생성 된 가상머신을 말하는데 이 가상머신에 설치할 O/S 를 고르는 화면이 나온다.
이 때, 1년간 무료로 사용이 가능한 프리티어 O/S 인 Amazon Linux 2 를 선택한다.
실습 책에선 Amazon Linux 1 을 선택하라고 하지만 더 이상 생성이 불가능하다.
다음으로 인스턴스 유형을 선택하게 되는데 t1, t2, t3 는 요금제를 뜻하고 뒤는 사양을 의미한다.
프리티어는 t2.micro 를 사용할 수 있는데 1코어에 메모리 1기가의 사양을 가진다.
다음으로 스토리지는 프리티어 사용 시 최대 30기가 까지 사용할 수 있으니 30기가로 바꾸어준다.
마지막으로 가장 중요한 보안 설정이다.
pem 키와 지정된 IP 를 통해서만 ssh 접속을 할 수 있게 해야한다.
그렇지 않으면 실수로 pem 키가 노출되는 경우 본인 서버가 가상화폐 채굴서버가 될 수 있다.
모든 설정을 마친 뒤 검토 및 시작을 누르면 pem 키를 다운받을 수 있는데 절대 잃어버리면 안되기 때문에 꼭 잘 보관한다.
🚧 터미널로 EC2 서버 접속하기
외부 서버로 ssh 접속을 하려면 다음과 같은 긴 명령어를 입력해야한다.
$ ssh -i pem 키 위치 IP주소
접속을 할 때 마다 키 위치와 IP 주소를 입력하는 것은 굉장히 귀찮기 때문에 접속 방법을 단순화 해보려고 한다.
우선 pem 키를 ~/.ssh/ 폴더에 복사를 해준다.
그리고 pem 키의 실행 권한을 $chmod 600 pem 키 를 통해 600으로 바꾸어준다.
권한을 변경하였다면 ~/.ssh/ 폴더에 config 파일을 생성한다.
vi 를 통해 config 파일을 다음과 같이 수정한다.
Host 에는 본인이 원하는 서비스 이름을 작성하고 HostName 에는 인스턴스의 IP 를 작성하면 된다.
마지막으로 config 실행권한을 700 으로 바꾸어 준 뒤 접속을 해보면 성공적으로 접속이 가능하다.
🎢 EC2 서버 환경설정
접속까지 성공적으로 마쳤으면 톰캣과 스프링부트가 작동할 수 있도록 환경설정을 해주어야한다.
-
Java 8 설치
$ sudo yum install -y java-1.8.0-openjdk 를 통해 프로젝트를 진행한 자바8 을 설치하고
$ sudo /usr/sbin/alternatives –config java 를 통해 자바8 을 선택한다.
-
타임존 변경
EC2 의 기본 타임존은 UTC 로 우리나라와 9시간 차이가 난다.
따라서 다음 명령어를 통해 타임존을 한국 시간을 바꾸어 주자.
$ sudo rm /etc/localtime
$ sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
-
호스트네임 변경
실무에서는 수십 대의 서버를 사용하는데 아이피만 가지고 어떤 서버인지 알기 굉장히 어렵다.
때문에 호스트네임을 변경해주어 어떤 서버인지 알 수 있도록 해야한다.
Amazon Linux 인스턴스의 호스트 이름 변경 아마존에서 문서로 방법을 제공하고 있으니 참고하자.
[오류] p.260 hostname 변경 #525 실습 책에선 Amazon Linux 1 의 변경 방법을 알려주고 있다.
⛺️ 정리
AWS EC2 서버에 인스턴스를 만들고 O/S 를 설치했다.
내가 지정한 IP 에서만 ssh 접속을 할 수 있게 보안설정을 하고 호스트 네임을 변경했다.
또 내가 만든 프로젝트가 서버에서 돌아갈 수 있도록 Java8 을 설치해주었다.
다음에는 RDS 를 이용해 Maria DB 를 설치하고 연동하는 과정을 정리해야겠다.
Leave a comment