프로젝트를 시작할 때마다, EC2 인스턴스를 생성하곤 했었다.
그때마다 매번 구글링해서 EC2 인스턴스를 생성했었는데, 매번 구글링해서 보는 것이 불편했었다.
그래서 여러 블로그를 참고하여 따로 내 블로그에 기록을 해둬서
EC2 생성이 필요할 때 보는 용도로 작성할 것이다!
용어나 개념 등은 다른 블로그에 잘 나와 있으므로, 절차 중심으로 기록하려고 한다!
🎯 EC2 인스턴스 생성하기
✅ 1. 인스턴스 시작 버튼 클릭
✅ 2. 인스턴스 설정
📕 2-1. 인스턴스 이름 설정
EC2 인스턴스 이름을 설정해준다.
📕 2-2. 애플리케이션 및 OS 이미지(Amazon Machine Image, AMI) 선택
Linux, Ubuntu 같은 OS를 선택하고, 해당 OS에 맞는 AMI를 선택한다.
📕 2-3. 인스턴스 유형 선택
프리티어를 사용하기 때문에, 프리티어에서 사용 가능한 유형 중 가장 좋은 유형을 선택한다.
📕 2-4. 키 페어 생성
새로운 키 페어를 생성하여 사용한다.
키 페어 유형은 RSA를 기본으로 사용하고,
프라이빗 키 파일 형식은 OpenSSH를 대부분 사용하기 때문에 .pem을 사용한다.
키 페어 생성을 누르게 되면, 생성된 키 페어 .pem 파일이 나오는데
생성된 키 페어 파일은 다시 받을 수 없기 때문에 기억하기 쉬운 곳에 잘 보관해두자.
📕 2-5. 네트워크 설정 - 보안 그룹 설정
보안 그룹은 이후 과정에서 보안 그룹만 설정하는 부분이 있기 때문에,
EC2를 생성할 때는 기본 설정으로 생성하고 이후에 설정하자.
📕 2-6. 스토리지 구성
본문에도 나와 있듯이, 프리티어의 최대 스토리지는 30GiB이므로 최대인 30GiB로 설정한다.
📕 2-7. 인스턴스 생성 버튼 클릭
오른쪽 요약 탭의 '인스턴스 시작' 버튼을 클릭하면 인스턴스가 생성된다!
✅ 3. 보안 그룹 설정 - 인바운드 규칙 설정
생성된 EC2로 들어가서 해당 EC2의 보안 탭을 보면,
해당 EC2의 보안 그룹이 있는데, 클릭하고 수정해보자.
보안 그룹에 들어가면 인바운드 규칙과 아웃바운드 규칙이 있다.
인바운드 규칙은 외부에서 EC2로 들어오는 보안 규칙이고,
아웃바운드 규칙은 EC2에서 외부로 나가는 보안 규칙이다.
외부에서 EC2로 접속하는 것이 대부분이므로, 인바운드 규칙을 편집한다.
기본적으로 SSH 22번 포트만 설정되어 있다.
규칙 추가를 누르고 유형에 사용자 지정 TCP를 선택한 후,
Spring을 사용하므로
Spring의 기본 Port인 8080을 포트에 입력하고 소스에 Anywhere-IPv4를 선택하여
모든 IP에서 접근이 가능하도록 설정한다.
✅ 4. 탄력적 IP 할당하기
탄력적 IP란, 바뀌지 않는 고정적인 IP를 말한다.
기본적으로 EC2를 생성하면 탄력적 IP가 할당되어 있지 않다.
따라서 EC2를 재시작하게 되면 IP 주소가 바뀌게 된다.
EC2를 재시작해도 IP 주소가 변하지 않게 하기 위해 탄력적 IP를 할당해준다.
이때 주의할 점은, 탄력적 IP를 할당하고 연결할 때는 과금이 안 되지만
탄력적 IP를 연결했다가 EC2와 연결을 끊고 연결이 끊겨진 상태로 남아있으면 과금이 발생한다.
따라서 EC2를 삭제하는 등의 작업으로 탄력적 IP의 연결이 끊겼다면
할당한 탄력적 IP를 삭제해야한다.
할당하는 방법은, 먼저 왼쪽 EC2 탭에서 네트워크 및 보안 - 탄력적 IP를 클릭한 후,
탄력적 IP 할당을 클릭한다.
탄력적 IP 주소 할당은, 할당 버튼을 누르기만 하면 된다.
할당을 누르면, 탄력적 IP가 할당되는데
할당된 IPv4 주소를 타고 들어가서 탄력적 IP 주소 연결 버튼을 클릭한다.
리소스 유형으로 인스턴스를 선택하고,
인스턴스 칸에서 만들었던 EC2 인스턴스를 선택한 후에
연결 버튼을 클릭하면 탄력적 IP 주소가 연결된다.
이제 EC2를 재시작해도, IP 주소가 변하지 않고 탄력적 IP 주소로 고정되었다.
✅ 5. SSH 접속하기
EC2 인스턴스 탭에 들어가서, 만든 EC2를 선택하고 연결 버튼을 누르자.
SSH 클라이언트 탭에 들어가면 SSH 접속 방법을 알 수 있다.
5-1. 터미널 열고, pem 파일이 있는 곳으로 이동 (cd 명령어 이용)
5-2. 위의 3번 설명처럼 chmod 400으로 pem 파일을 공개적으로 볼 수 없게 한다.
5-3. 맨 아래 예시에 나온 코드를 복사해서 실행하면 SSH로 접속할 수 있다.
하지만, 위 명령어들을 사용하려면 pem 파일이 있는 곳에 가서 사용해야하는 번거로움이 있다.
따라서 어디에서든 사용이 가능하도록 SSH 설정 파일을 생성하자.
📕 5-4. SSH 설정 파일 생성
(1) ssh 설정 파일 생성
vi ~/.ssh/config
(2) ssh 설정 파일 정보 입력
Host 식별 가능한 이름
HostName 위 사진 4번에서 나온 서버 주소(~.amazonaws.com)
User ec2-user (리눅스 : ec2-user / 우분투 : ubuntu)
IdentityFile pem파일이 있는 절대 경로
(3) ssh 'Host에 설정한 식별 가능한 이름' 으로 손쉽게 SSH 접속 가능
이상으로, EC2 인스턴스 생성 및 SSH 접속이 끝났다!