AWS - EC2 사용 방법

배포란? 다른 사용자들이 인터넷을 통해서 사용할 수 있게 만드는 것
EC2 설정
Ec2란?
-
컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스, 하나의 컴퓨터라고 생각하면 쉽다.
-
주로 백엔드 서버를 배포하기 위해 사용, 프론트는 S3를 주로 사용한다.

이름 및 태그 설정 - 원하는 이름으로 설정
OS images - ubuntu, window, Mac 등등 여러가지가 있지만 ubuntu가 서버 배포시 필요한 기능들만 들어있어서 가장 가볍고 성능이 좋다.

인스턴스 - EC2에서 빌리는 컴퓨터 한대를 의미하는 하나의 단위
인스턴스 유형 - 컴퓨터 성능이라고 생각하면 된다.

키 페어 - EC2에 접속할 때 사용하는 비밀번호
키 페어 생성 - 키페어 이름 설정(직관적으로 알아볼 수 있게 설정하는게 좋다)

방화벽(보안그룸)? aws 클라우드에서의 네트워크
EC2 인스턴스를 집이라고 생각한다면 보안 그룹은 집 바깥쪽에 쳐져있는 울타리와 대문이다.
집에 접근할 때 접근해도 되는 요청인지 검사를 하는 것과 비슷하다.
보안 그룹에는 인바운드 트래픽(외부에서 ec2로 보내는 트래픽)과 아웃바운드 트래픽(ex2인스턴스에서 외부로 나가는 트래픽)이 있다.
보안 그룹을 설정할 때 허용할 ip범위와 port를 설정할 수 있다.
인바운드 보안 그룹 규칙 ssh
-
원격 접속을 위한 경로(어디서든 접근할 수 있게 설정)
-
Http - 백엔드 서버를 8080번 포트로 띄운다고 했을때 새로운 규칙을 만들어 설정할 수 있다.
탄력적 ip
Ec2 인스턴스를 생성하면 ip를 할당한다. 하지만 이것은 임시적인 ip이기 때문에 인스턴스를 중지시켰다가 다시 실행해보면 바껴있다.
그래서 이를 해결하는 고정 ip를 할당해야한다. 그리고 이게 탄력적 ip이다.
메뉴 - 탄력적ip - 작업에서 설정할 수 있다.
스프링부트 연결하기
가장 먼저, 생성한 EC2 인스턴스에 연결한다.
과정
sudo apt update : 패키지 업데이트
sudo apt install openjdk-17-jdk -y : jdk설치
git clone ~ : 배포하고 싶은 파일을 깃에서 가져옴
cd 최상단파일 : 최상단 파일로 이동
./gradlew clean build : 프로젝트 빌드
이후 /build/lib 경로로 이동
nohup java -jar ~SNAPSHOT.jar & : Java 애플리케이션을 백그라운드에서 실행하기 위해 사용