AWS EC2 인프라 구성

SummerToday·2024년 9월 17일
0

AWS 아키텍처 관련

목록 보기
6/7
post-thumbnail
post-custom-banner

EC2 인스턴스를 여태 생성하면서 너무 생각없이 인스턴스들을 무작정 만들고 사용했던 것 같았다. 이제는 EC2를 생성하기 위해 어떠한 리소스들이 왜 필요한지 생각해보면서 리소스들의 옵션들은 어떤 의미가 담겨있고, 어떻게 설정해야 하는지를 확실히 하기 위해 해당 포스팅을 작성한다.

1. VPC, 서브넷, NAT 게이트웨이 리소스 생성

  • 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개의 가용 영역을 선택.

    • 첫 번째 가용 영역
      첫 번째 서브넷이 배치될 가용 영역.

    • 두 번째 가용 영역
      두 번째 서브넷이 배치될 가용 영역.



  • 서브넷 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 서버 설정 필요, 네트워크 관리 복잡성 증가.


  • 추가 태그

    • 추가 태그
      VPC 및 해당 리소스에 추가적인 태그를 할당할 수 있는 옵션. 이는 리소스 관리를 용이하게 함.

2. 라우팅 테이블(Route Table) 설정

퍼블릭 서브넷 라우팅 테이블 설정

퍼블릭 서브넷의 인스턴스들이 인터넷과 통신할 수 있도록, 퍼블릭 서브넷에 연결된 라우팅 테이블에서 0.0.0.0/0 대상이 인터넷 게이트웨이를 선택되어 있는지 확인한다.
만약 되어 있지 않다면 직접 편집 해준다.

cf. 사진 상 두번째 라우팅 규칙은 VPC 내의 모든 서브넷이 서로 통신할 수 있도록 하는 기본적인 라우팅 규칙으로, 모든 VPC에서 기본적으로 존재한다.


프라이빗 서브넷 라우팅 테이블 설정

각 프라이빗 서브넷의 트래픽이 NAT 게이트웨이를 통해 나갈 수 있도록 0.0.0.0/0 대상이 NAT 게이트웨이로 선택되어 있는지 확인한다.
만약 되어 있지 않다면 직접 편집해준다.


3. 보안 그룹(Security Group) 생성 및 설정

보안 그룹은 EC2 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어한다. VPC 생성 시 다음과 같이 기본적으로 1개의 최소 보안 그룹이 생성이 된다.

보통은 보안 그룹을 별도로 생성하여 인스턴스에 할당하지만, 여기서는 연습용으로 생성하는 것이기에 기본 생성된 보안 그룹을 활용하여 EC2 인스턴스에 할당해준다.

  • 인터넷에서 들어오는 HTTP 트래픽을 허용하기 위해 80 포트, 소스 0.0.0.0/0으로 설정해준다.

  • 인터넷에서 들어오는 HTTPS 트래픽을 허용하기 위해 443 포트, 소스 0.0.0.0/0으로 설정해준다.

  • 특정 관리자의 IP 주소에서만 SSH로 서버에 접근할 수 있도록 내 PC의 IP를 소스로 하고 22번 포트로 설정해준다.


4. 키 페어(Key Pair) 생성

  • 키 페어 유형

    • 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 명령어
          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 파일로 변환하는 것이 유용하다.


요약

  1. VPC 및 네트워크 리소스 생성

    • VPC, 서브넷, NAT 게이트웨이 등을 생성.

    • 가용 영역과 서브넷 수 설정.

    • 퍼블릭/프라이빗 서브넷 CIDR 블록 지정.

    • DNS 옵션 및 VPC 엔드포인트 설정.


  1. 라우팅 테이블 설정

    • 퍼블릭 서브넷: 인터넷 게이트웨이로 라우팅.

    • 프라이빗 서브넷: NAT 게이트웨이로 라우팅.


  1. 보안 그룹 설정

    • 기본 보안 그룹 또는 새로 만든 보안 그룹을 사용해 인스턴스에 할당.

    • SSH, HTTP, HTTPS 트래픽을 허용하도록 규칙 설정.


  1. 키 페어 생성

    • SSH 접속을 위한 키 페어 생성.

    • Windows에서는 .pem 파일을 .ppk로 변환하여 사용.


이로써 EC2를 생성하기 위한 사전 준비들은 끝났고, 다음 포스팅에서 이어서 EC2를 본격적으로 생성해보고 SSH 접속까지 테스트 해볼 것 이다.

profile
IT, 개발 관련 정보들을 기록하는 장소입니다.
post-custom-banner

0개의 댓글