EC2 인스턴스를 여태 생성하면서 너무 생각없이 인스턴스들을 무작정 만들고 사용했던 것 같았다. 이제는 EC2를 생성하기 위해 어떠한 리소스들이 왜 필요한지 생각해보면서 리소스들의 옵션들은 어떤 의미가 담겨있고, 어떻게 설정해야 하는지를 확실히 하기 위해 해당 포스팅을 작성한다.
VPC만 / VPC 등
VPC만
: VPC를 단독으로 생성하는 옵션.
VPC 등
: VPC와 함께 서브넷, 인터넷 게이트웨이, NAT 게이트웨이 등 여러 네트워크 리소스를 한 번에 생성할 수 있는 옵션.
이름 태그 자동 생성
test
)이 VPC 및 해당 리소스의 태그로 자동 할당되는 옵션.IPv6 CIDR 블록
IPv6 CIDR 블록 없음
VPC에 IPv6 CIDR 블록을 할당하지 않는 옵션.
Amazon 제공 IPv6 CIDR 블록
Amazon에서 제공하는 IPv6 CIDR 블록을 VPC에 할당하는 옵션.
테넌시
기본값
VPC 내의 인스턴스가 공유된 하드웨어에서 실행되는 기본 설정.
전용
단일 고객에게 물리적 서버를 전용으로 할당하는 옵션이다. 전용: 규제 준수, 라이선스 요구사항, 또는 하드웨어 수준의 격리가 필요한 경우에 사용된다.
가용 영역 (AZ) 수
AZ 수
서브넷을 분산 배치할 가용 영역의 수를 설정. 예시에서는 2개의 가용 영역을 선택.
첫 번째 가용 영역
첫 번째 서브넷이 배치될 가용 영역.
두 번째 가용 영역
두 번째 서브넷이 배치될 가용 영역.
퍼블릭 서브넷 수 및 프라이빗 서브넷 수
퍼블릭 서브넷 수
퍼블릭 서브넷을 몇 개 생성할지를 설정.
프라이빗 서브넷 수
프라이빗 서브넷을 몇 개 생성할지를 설정.
cf. 서브넷 설계 사이트
https://www.solarwinds.com/free-tools/advanced-subnet-calculator
서브넷 CIDR 블록
ap-northeast-2a 퍼블릭 서브넷 CIDR 블록
192.168.0.0/28
(총 16개의 IP 주소)
ap-northeast-2b 퍼블릭 서브넷 CIDR 블록
192.168.0.16/28
(총 16개의 IP 주소)
ap-northeast-2a 프라이빗 서브넷 CIDR 블록
192.168.0.32/27
(총 32개의 IP 주소)
ap-northeast-2b 프라이빗 서브넷 CIDR 블록
192.168.0.64/27
(총 32개의 IP 주소)
NAT 게이트웨이
NAT 게이트웨이 없음
NAT 게이트웨이를 생성하지 않음.
AZ당 1개
가용 영역당 NAT 게이트웨이를 1개씩 생성하는 옵션.
VPC 엔드포인트
없음
VPC 엔드포인트를 생성하지 않음.
S3 게이트웨이
Amazon S3에 대한 게이트웨이 VPC 엔드포인트를 생성하는 옵션.
S3 게이트웨이는 AWS VPC 엔드포인트 중 하나로, VPC 내부에서 Amazon S3에 안전하게 접근할 수 있도록 해주는 서비스다. 이 옵션을 활성화하면, VPC 내의 리소스들이 인터넷을 거치지 않고 S3 버킷에 직접 접근할 수 있다.
DNS 옵션
DNS 호스트 이름 활성화
VPC 내에서 EC2 인스턴스의 DNS 호스트 이름을 활성화.
활성화 시: 인스턴스에 도메인 이름이 할당되어 쉽게 접근 가능.
비활성화 시: 도메인 이름 없이 IP 주소로만 접근 가능, 관리가 불편.
DNS 확인 활성화
VPC 내에서 DNS 확인 기능을 활성화.
활성화 시: AWS 제공 DNS 서버를 통해 VPC 내부 및 외부 도메인 이름 해석 가능.
비활성화 시: VPC 내의 리소스가 도메인 이름 해석 불가하고 외부 DNS 서버 설정 필요, 네트워크 관리 복잡성 증가.
추가 태그
퍼블릭 서브넷의 인스턴스들이 인터넷과 통신할 수 있도록, 퍼블릭 서브넷에 연결된 라우팅 테이블에서 0.0.0.0/0 대상이 인터넷 게이트웨이를 선택되어 있는지 확인한다.
만약 되어 있지 않다면 직접 편집 해준다.
cf. 사진 상 두번째 라우팅 규칙은 VPC 내의 모든 서브넷이 서로 통신할 수 있도록 하는 기본적인 라우팅 규칙으로, 모든 VPC에서 기본적으로 존재한다.
각 프라이빗 서브넷의 트래픽이 NAT 게이트웨이를 통해 나갈 수 있도록 0.0.0.0/0 대상이 NAT 게이트웨이로 선택되어 있는지 확인한다.
만약 되어 있지 않다면 직접 편집해준다.
보안 그룹은 EC2 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어한다. VPC 생성 시 다음과 같이 기본적으로 1개의 최소 보안 그룹이 생성이 된다.
보통은 보안 그룹을 별도로 생성하여 인스턴스에 할당하지만, 여기서는 연습용으로 생성하는 것이기에 기본 생성된 보안 그룹을 활용하여 EC2 인스턴스에 할당해준다.
인터넷에서 들어오는 HTTP 트래픽을 허용하기 위해 80 포트, 소스 0.0.0.0/0으로 설정해준다.
인터넷에서 들어오는 HTTPS 트래픽을 허용하기 위해 443 포트, 소스 0.0.0.0/0으로 설정해준다.
특정 관리자의 IP 주소에서만 SSH로 서버에 접근할 수 있도록 내 PC의 IP를 소스로 하고 22번 포트로 설정해준다.
키 페어 유형
RSA
RSA는 1970년대 후반에 개발되어, 수십 년간 널리 사용되어 온 표준 암호화 알고리즘이다. 그동안 다양한 시스템, 프로토콜, 소프트웨어가 RSA를 기반으로 개발되었기 때문에 대부분의 시스템과 완벽하게 호환된다.
ED25519
ED25519는 2011년에 제안된 최신 공개 키 암호화 알고리즘이다. 보안성과 효율성이 뛰어나지만, RSA에 비해 비교적 최근에 도입되었기 때문에 모든 시스템이나 소프트웨어가 ED25519를 지원하지 않을 수 있다.
결국, 호환성이 중요한 환경에서는 RSA 키를 사용하는 것이 더 안전한 선택일 수 있지만, 최신 시스템이나 보안을 중시하는 환경에서는 ED25519를 선택할 수 있다. ED25519는 점차 더 널리 사용될 가능성이 크지만, 현재는 RSA만큼 보편적이지 않다.
프라이빗 키 파일 형식
.pem과 .ppk 파일 형식은 모두 SSH 키 페어를 저장하는 데 사용되지만, 서로 다른 목적과 클라이언트에서 사용된다.
.pem 파일
파일 형식
.pem
(Privacy Enhanced Mail) 파일은 OpenSSH와 호환되는 프라이빗 키 파일 형식으로, ASCII로 인코딩된 텍스트 파일이다.
사용 목적:
Linux/macOS 환경
.pem
파일은 주로 Linux와 macOS에서 사용되는 OpenSSH 클라이언트와 호환된다.
SSH 접근
AWS EC2 인스턴스에 SSH로 접근할 때 사용된다.
사용 방법:
ssh -i /path/to/your-key.pem ec2-user@your-ec2-instance.amazonaws.com
호환성
.pem
파일은 주로 OpenSSH 기반의 클라이언트에서 사용되며, Windows 환경에서는 기본적으로 지원되지 않는다.
Windows에서 WSL(Windows Subsystem for Linux) 또는 Windows 10/11의 기본 OpenSSH 클라이언트를 사용하는 경우에도 .pem
파일을 사용할 수 있다.
.ppk 파일
파일 형식
.ppk
(PuTTY Private Key) 파일은 PuTTY에서 사용되는 프라이빗 키 파일 형식이다.
사용 목적
Windows 환경: .ppk
파일은 주로 Windows에서 사용되는 PuTTY 클라이언트와 호환된다.
SSH 접근: PuTTY 클라이언트 또는 다른 Windows 기반 SSH 클라이언트에서 사용된다.
사용 방법
PuTTY 설정: PuTTY에서 "SSH" > "Auth" 섹션에서 .ppk
파일을 선택하여 인증에 사용.
PuTTYgen: .pem
파일을 .ppk
파일로 변환하기 위해 사용되는 도구.
호환성
.ppk
파일은 PuTTY를 사용하는 Windows 사용자에게 최적화되어 있으며, 다른 SSH 클라이언트에서는 기본적으로 지원되지 않는다.상황별 선택
Linux/macOS 사용 시
기본적으로 .pem
파일을 사용하는 것이 가장 적합하다.
Windows 사용 시
PuTTY를 사용한다면 .ppk
파일을 사용하는 것이 좋다. .pem
파일을 .ppk
파일로 변환해야 할 수도 있다.
여러 환경에서 사용 시
.pem
파일을 기본으로 사용하고, 필요에 따라 PuTTYgen을 사용하여 .ppk
파일로 변환하는 것이 유용하다.
VPC 및 네트워크 리소스 생성
VPC, 서브넷, NAT 게이트웨이 등을 생성.
가용 영역과 서브넷 수 설정.
퍼블릭/프라이빗 서브넷 CIDR 블록 지정.
DNS 옵션 및 VPC 엔드포인트 설정.
라우팅 테이블 설정
퍼블릭 서브넷: 인터넷 게이트웨이로 라우팅.
프라이빗 서브넷: NAT 게이트웨이로 라우팅.
보안 그룹 설정
기본 보안 그룹 또는 새로 만든 보안 그룹을 사용해 인스턴스에 할당.
SSH, HTTP, HTTPS 트래픽을 허용하도록 규칙 설정.
키 페어 생성
SSH 접속을 위한 키 페어 생성.
Windows에서는 .pem 파일을 .ppk로 변환하여 사용.
이로써 EC2를 생성하기 위한 사전 준비들은 끝났고, 다음 포스팅에서 이어서 EC2를 본격적으로 생성해보고 SSH 접속까지 테스트 해볼 것 이다.