인스턴스는 어떻게 생성해야 할까?
리전(Region) 선택
--
리전은
인프라를 지역으로 나누어 배포한 각각의 데이터 센터(위치, 지역)를 의미한다.
즉, 대여할 컴퓨터(서버)의 위치를 의미한다.
AWS를 사용할 때 항상 리전을 확인해야 한다.
리전 선택 기준
사용자들이 해당 서비스(애플리케이션)를 이용할 때 네트워크(인터넷)를 통해서 통신하게 된다.
이때, 사용자의 위치와 사용할 서비스(애플리케이션)를 가동시키고 있는 컴퓨터의 위치가 멀수록 속도는 느려진다.
따라서 주된 사용자들의 위치와 가까운 리전을 선택하는 것이 유리하다.
(ex 주 사용자가 한국 거주자면 서울 리전을 선택)
--
인스턴스 시작 버튼 위치
--
EC2 -> 인스턴스 -> 인스턴스 시작(버튼)
인스턴스(Instance)는
EC2(Amazon Elastic Commpute Cloud)에서 제공하는 서비스 중 하나로,
EC2에서 대여하는 컴퓨터 한 대를 의미하는 단위다.
--
[인스턴스 생성 과정] 이름 및 태그
--
해당 인스턴스의 이름을 작성하는 파트다.
인스턴스의 이름 및 태그는
자신의 인스턴스 중에서만 고유해야 하며
(다른 사람의 인스턴스 이름 및 태그와 동일해도 상관X)
나의 다른 인스턴스와 구분하기 위해 작성된다.
이름 및 태그는
일반적으로 "-"를 이용하는 형식으로 작성한다.
ex) 구글의 백엔드 서버용 인스턴스 => google-server
(일반적으로 위와 같은 형식으로 작성하는 것이므로 꼭 따라 해야 하는 것은 아니다.)
--
[인스턴스 생성 과정] 애플리케이션 및 OS 이미지
--
대여할 인스턴스(EC2)의 OS를 선택하는 파트다.
(대여할 컴퓨터의 OS)
서버를 배포하기 위한 컴퓨터는
필요한 것들만 담아 컴퓨터를 가볍게 구성하는 것이 유리하다. (여유 공간)
macOS 또는 WindowsOS는
컴퓨터에 대해서 잘 모르는 사람들도 쉽게 사용하기 위한 편리한 기능들이 많기 때문에
OS 설치만으로 용량이 많이 차지하게 되고 이로 인해 성능도 떨어지게 된다.
그래서 필요한 기능들만 들어가 있는 OS를 선택하는 것이 유리하다.
대표적으로 우분투(ubuntu)가 있다.
Amazon Machine Image (AMI)는
EC2 인스턴스를 생성할 때 사용하는 미리 구성된 템플릿을 의미한다.
AMI에는 해당 인스턴스에 설치될 "운영체제(OS)", "애플리케이션", "설정" 등이 포함되어 있다.
즉, 해당 인스턴스를 생성할 때 필요한 정보(데이터)들을 자동으로 설치해 주는 것으로
인스턴스를 빠르고 쉽게 생성하기 위한 도구 역할을 한다.
일반적으로 기본으로 설정된 AMI를 그래로 사용하거나 최신 버전을 사용하면 된다.
--
[인스턴스 생성 과정] 인스턴스 유형
--
해당 인스턴스(대여한 컴퓨터)의 사양을 지정하는 파트다.
프리 티어에서 제공하는 t2.micro 사양으로도 방문자가 엄청 많은 서비스가 아니면 무난한 사양이다.
--
[인스턴스 생성 과정] 키 페어(로그인)
--
키 페어는
해당 EC2 인스턴스에 아무나 접근할 수 없도록 키를 지정하여
해당 키를 이용해야지만 접근할 수 있도록 하는 것으로
해당 키 페어를 지정하는 파트다.
만약 해당 인스턴스에 적용할 키 페어를 미리 만들었다면 바로 선택하면 되며,
키 페어가 없다면 우측 "새 키 페어 생성"을 눌러 바로 생성 후 선택할 수 있다.
(키 페어 설명 및 생성 방법)
--
[인스턴스 생성 과정] 네트워크 설정
--
우측 상단에 "편집"을 눌러 더 자세하게 설정한다.
VPC (Virtual Private Cloud)는
AWS에서 가상 네트워크를 정의하고 관리하는 서비스로
인터넷 또는 다른 VPC와의 연결 여부, 보안 규칙 등을 사용자가 직접 설정할 수도 있는 가상 네트워크다.
(보안 규칙 및 네트워크 흐름을 제어한다.)
간단하게 해당 인스턴스가 속할 네트워크의 전반적인 구조를 정의 및 지정하는 파트로
상황에 따라 직접 지정해야 하는 것이 아니라면 일반적으로 AWS에서 제공하는 기본 VPC를 지정하면 된다.
서브넷 (Subnet)은
VPC 내부에서 IP 주소 범위를 나눈 작은 네트워크 세그먼트로
하나의 VPC 내부에서 여러 개의 서브넷을 정의할 수 있다.
간단하게 해당 인스턴스의 네트워크 세크먼트를 정의 및 지정하는 파트로
상황에 따라 직접 지정해야 하는 것이 아니라면 일반적으로 지정하지 않는다.
퍼블릭 IP 자동 할당은
해당 인스턴스를 생성할 때 자동으로 퍼블릭 IP를 할당할지 여부를 정의하는 파트로
할당하게 되면 = 자동으로 인스턴스의 퍼블릭 IP를 할당해 준다.
(이때 퍼블릭 IP는 인스턴스를 중단 후 다시 실행할 때마다 새로운 IP를 할당해 준다.)
할당하지 않으면 = 인스턴스에 퍼블릭 IP가 할당되지 않으므로, IP가 필요하다면 직접 탄력적(Elastic) IP를 생성하여 할당하면 된다.
간단하게 자동으로 인스턴스에 IP를 할당하여 인스턴스가 인터넷에 접근 또는 외부에서 접근할 수 있는지 정의한다.
(비활성화를 한다고 해도 탄력적(Elastic) IP를 직접 할당해 주면 가능하다.)
보안 그룹은
AWS 클라우드에서 네트워크 보안을 의미하는 것으로
EC2 인스턴스에 접근을 시도할 때 먼저 해당 접근을 허용할지 판단(검사)하는 보안을 정의하는 파트다.
만약 사용할 보안 그룹이 이미 존재한다면 "기존 보안 그룹 선택"을 선택하여 원하는 보안 그룹을 지정하면 되고,
없다면 "보안 그룹 생성"을 선택하여 생성과 동시에 바로 적용하면 된다.
(위 그림은 새로 보안 그룹을 생성하는 그림이다.)
보안 그룹 이름은
해당 보안 그룹의 이름을 정의하는 파트로
또 다른 내 보안 그룹과 구분하기 위해 작성한다.
설명은
해당 보안 그룹에 대한 정보를 작성하는 것으로
자신이 해당 보안 그룹이 무슨 역할을 하는 보안 그룹인지 알아볼 수 있도록 메모하는 파트로 원하는 것을 작성하면 된다.
인바인드(Inbound) 보안 그룹 규칙은
해당 인스턴스로 접근(들어오는)하는 네트워크 트래픽을 허용할지 차단할지에 대한 규칙을 정의하는 것으로
특정 포트, 프로토콜, IP 주소로 접근하는 트래픽을 허용할지 규칙을 정의한다.
위 그림을 예시로 설명하면
- 유형 = ssh : SSH로 외부에서 해당 인스턴스로 접근
- 프로토콜 / 포트 범위 : 유형에 대한 세부 정보 (보통 선택한 유형에 알맞은 값으로 정의된다.)
- 소스 유형 = 위치 무관 : 접근하려는 외부 위치
- 원본 : 소스 유형에 대한 세부 정보 (보통 선택한 유형에 알맞은 값으로 정의된다.)
- 설명 : 소스 유형에 대한 설명을 작성하는 것으로 생략 가능하다.
정리하면
외부(아무 곳에서나) SSH(TCP, 22 포트)로 해당 인스턴스로 접근하는 것을 허용한다는 규칙을 정의한 것이다.
(= 어느 곳에서나 포트 22번으로 EC2 인스턴스에 접근 가능)
인바인드 보안 그룹 규칙을 하나 더 추가해서
이번에는 인스턴스에서 배포한 애플리케이션(사이트)에 아무 사용자가 브라우저를 통해 접근할 수 있도록
HTTP 접근도 규칙에 추가해 주었다.
HTTP 유형으로 80번 포트를 접근 허용하도록 한 이유는
인스턴스 내부에서 실행시킬 백엔드 서버를 80번 포트에서 실행시켰으며
인스턴스에서 80번 포트로 접근해야 백엔드 서버인 80번 포트로 접근이 가능하다.
즉, 서버에 접근하기 위해 인스턴스의 80번 포트 접근을 열어둔 것이다.
(만약 백엔드 서버가 81번 포트에서 실행시켰으면 인스턴스의 81번 포트 접근을 열어둬야 한다.)
인바운드(Inbound) 보안 그룹 규칙은
외부에서 해당 인스턴스로 들어오는 네트워크 트래픽을 허용 및 차단하는 규칙이다.
아웃바운드(Outbound) 보안 그룹 규칙은
반대로 해당 인스턴스에서 외부로 나가는 네트워크 트래픽을 허용 및 차단하는 규칙이다.
--
[인스턴스 생성 과정] 스토리지 구성
--
해당 인스턴스(컴퓨터)의 스토리지(저장 공간, 하드 디스크)를 정의하는 파트로
프리티어는 최대 30GB를 가용할 수 있으므로 넉넉하게 30GB로 정의했다.
정리하자면
"1x 30GiB gp3 루트 볼륨"의 뜻은
- 1x : 하나의 루트 볼륨이 존재한다.
- 30GiB : 30기가의 스토리지를 할당한다.
- gp3 : 루트 볼륨은 gp3로 지정한다.
= 30GB 짜리 gp3유형의 스토리지를 할당한다.
루트 볼륨(Root Volume)은
운영체제와 기본 시스템 파일이 설치된 기본 스토리지 디스크를 의미한다.
(gp3는 gp2보다 최신 버전이며, 더 좋은 유형이다.)
--
[인스턴스 생성 과정] 인스턴스 생성하기
--
인스턴스 생성 후 조금 지나면 인스턴스 상태가 "실행 중"으로 변경된다.
이는 해당 인스턴스가 실행 중이라는 것이다.
--
참고 및 출처
'AWS' 카테고리의 다른 글
[EC2] 인스턴스 내부에 Docker 설치하기 (0) | 2024.09.05 |
---|---|
[EC2] 인스턴스 살펴보기 및 내부 접속 (0) | 2024.09.05 |
IP 또는 도메인을 (내도메인.한국)도메인에 연결하기 (0) | 2024.09.05 |
IAM (Identity and Access Management) (0) | 2024.09.05 |
탄력적 IP (Elastic IP) (0) | 2024.09.05 |