다른 사용자들이 인터넷을 통애 사용 할 수 있도록 하는 것을 의미
웹 페이지나, 서버를 다른 사람들이 사용하려면, 인터넷상에 배포가 되어 있어야 함
컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스
서버를 배포하기 위해서는 컴퓨터 필요, 컴퓨터에서 서버를 배포해 다른 사용자들이 인터넷을 통해 접근,
내 컴퓨터로 서버를 배포하면 24H 동안 돌려야 함, 인터넷을 통해 내 컴퓨터에 접근할 수 있게 만들다 보니 보안적 위험
AWS EC2라는 컴퓨터를 빌려서 사용하는 것이다. 이 외에도 AWS EC2는 여러 부가기능들(로깅, 오토스케일링, 로드밸런싱 등)을 많이 가지고 있음.
*) REGION의 선택 기준
애플리케이션을 실행시키는 컴퓨터와 위치가 멀수록 속도 느려짐. 애플리케이션의 주된 사용자들의 위치와 지리적으로 가까운 리전을 선택하는 것이 유리
이름 Tag 설정
이 컴퓨터가 어떤 역할을 하는지 알아볼 수 있게 작성
Application and OS Images (Amazon Machine Image)
OS를 선택하는 단계. 왜 Ubuntu를 선택 하는가? 라면? Windows나 Mac OS의 경우 생각보다 용량도 많이 차지, 성능도 많이 먹음. 따라서 서버를 배포할 컴퓨터의 OS는 훨씬 가벼운 Ubuntu 사용
인스턴스 유형
우선 Free Tier에서 사용할 수 있는 t2.micro 사용
*) 인스턴스란?
AWS EC2에서 빌리는 컴퓨터 한대를 의미, 인스턴스 유형은 컴퓨터의 사양.
그렇다면 Free Tier라고 안좋다??는 아니다.
성능적으로 문제가 생간다면 너무 걱정 안해도 될 정도 이다.
키 페어(로그인)
EC2 컴퓨터에 접근할 때 필요한 비밀번호, 말 그대로 열쇠
RSA와 .pem을 선택한 후에 키 페어를 생성하면 된다.
ED25519가 뭔지, .ppk가 뭔지는 몰라도 된다. 중요하지 않다. (아직 까지는??)
네트워크 설정
VPC라는 개념은 AWS를 입문하는 입장에서는 크게 중요하지 않으니 넘어가고, 나중에 AWS에 어느 정도 익숙해졌을 때 VPC를 학습하도록 하자. VPC를 몰라도 서버를 배포하는 데 아무 문제가 없다고 한다.
*) 참고
인터넷에서 일부 사용자가 EC2 인스턴스에 접근 한다고 가정, 보안 규칙에 인바운드 트래픽과 아웃 바운드 트래픽이 있다.
1. 인바운드 트래픽 (외부에서 EC2 인스턴스를 보내는 트래픽)
외부에서 EC2로 접근할 포트는 22번 포트와 80번 포트라고 생각해서 이 2가지에 대해 인바운드 보안 그룹 규칙을 추가. 22번 포트는 우리가 EC2에 원격 접속할 때 사용하는 포트이고, 80번 포트에는 백엔드 서버를 띄울 예정. 참고로 0.0.0.0/0의 경우 모든 IP 주소에서 인스턴스에 액세스 허용
가성비가 좋은 gp3를 선택. 용량을 30GiB를 설정한 이유는 프리 티어에서 30GiB까지 무료로 제공
사용하고자 하는 git 주소 clone
$ git clone https://github.com/JSCODE-EDU/ec2-spring-boot-sample.git
$ cd ec2-spring-boot-sample
yml의 경우 민감정보가 들어가기 때문에 git version에서 관리하지 않음.
따라서 application.yml 파일은 별도로 EC2 인스턴스에 올려줘야 함
서버 실행
$ ./gradlew clean build # 기존 빌드된 파일을 삭제하고 새롭게 JAR로 빌드
$ cd ~/ec2-spring-boot-sample/build/libs
$ sudo java -jar ec2-spring-boot-sample-0.0.1-SNAPSHOT.jar