AWS EKS 환경 구축 (1) - Bastion 서버 생성

김남우 ·2025년 3월 2일
0

AWS

목록 보기
8/13
post-thumbnail

AWS EKS 환경 구축 (1) - Bastion 서버 생성

AWS에서 EKS(Amazon Elastic Kubernetes Service)를 공부하기 위해서는 먼저 실습 환경을 직접 구축해보는 것이 매우 중요합니다. 이 글에서는 Bastion 서버(관리 서버)를 생성하여 향후 EKS를 설치·관리할 수 있도록 준비해 보겠습니다.

개요

  • EKS

    • AWS에서 제공하는 매니지드 쿠버네티스 서비스
    • 온프레미스 환경에서의 쿠버네티스 클러스터(마스터 노드 + 워커 노드)와 유사하나, 컨트롤 플레인은 AWS가 관리해 주고, 사용자는 워커 노드만 직접 구성
  • Bastion 서버(관리 서버)

    • AWS CLI, eksctl, kubectl 등을 설치하여, AWS 인프라와 EKS를 편리하게 제어할 수 있는 서버
    • 개인 PC에서 직접 클러스터를 관리해도 되지만, 실습 환경을 통일하기 위해 Bastion 서버를 사용하는 방법을 소개

EKS 환경 구성 개념도

  1. Bastion 서버에서 eksctl, kubectl 등을 설치해 EKS 클러스터 생성 및 관리 명령어 실행
  2. EKS Control Plane(매니지드)에서 API를 받아서 클러스터 동작을 제어
  3. Worker 노드(EC2 혹은 Fargate 등)들이 실제 애플리케이션이 배포될 곳

사전 준비 및 과금 주의

  • 과금 발생
    • EKS는 프리 티어가 아니므로 사용 시간에 따라 비용이 청구될 수 있음
    • EC2, Elastic Load Balancer, EBS, NAT 게이트웨이 등에 대한 비용도 유의
  • 리전(Region)
    • 본 실습 예제에서는 서울 리전(ap-northeast-2) 사용
    • Bastion 서버 역시 디폴트 VPC 환경에서 진행

실습 단계

1. 키 페어(Key Pair) 생성

  1. EC2 콘솔 이동

    • AWS 콘솔에 로그인 후, 서비스 검색창에서 EC2 입력 → 클릭
  2. 키 페어 생성

    • 왼쪽 메뉴에서 키 페어 클릭
    • 키 페어 생성 버튼 클릭
    • 키 페어 이름: demo-key (예시)
    • 키 타입: 기본 RSA 선택
    • 프라이빗 키 파일 형식:
      • pem ( .pem ): 오픈SSH, MobaXterm, Xshell 등에서 사용 가능
      • ppk ( .ppk ): PuTTY에서 사용 가능
    • 이번 예제는 Xshell을 사용할 예정이므로 .pem 형식으로 생성
    • 키 페어 생성 버튼 클릭 → 로컬 PC로 .pem 파일 다운로드

참고

  • 퍼블릭 키는 AWS에서 관리(EC2에 저장)하고, 다운로드된 파일은 프라이빗 키이므로 안전하게 보관해야 합니다.

2. 보안 그룹(Security Group) 생성

  1. EC2 콘솔 > 보안 그룹 이동

    • 왼쪽 메뉴에 네트워크 및 보안보안 그룹 클릭
  2. 보안 그룹 생성

    • 보안 그룹 생성 버튼 클릭
    • 보안 그룹 이름: demo-bastion-sg
    • 설명: demo-bastion-sg
    • VPC: 디폴트(default VPC)가 선택되어 있는지 확인
    • 인바운드 규칙:
      • SSH(22/TCP) → 소스: 내 IP (현재 PC 공인 IP 자동 입력)
    • 아웃바운드 규칙: 기본값(모든 트래픽 허용) 그대로 사용
    • 보안 그룹 생성 버튼 클릭

보안 그룹은 AWS 내부의 방화벽 역할을 하며, 기본적으로 모든 인바운드 트래픽은 거부, 모든 아웃바운드 트래픽은 허용 상태입니다. 필요한 인바운드 포트만 열어주는 것이 핵심입니다.


3. Bastion 서버(EC2 인스턴스) 생성

  1. EC2 콘솔 > 인스턴스 이동

    • 인스턴스 시작 버튼 클릭
  2. 인스턴스 구성

    • 이름: demo-bastion
    • AMI:
      • Ubuntu Server 24.04 LTS (64-bit x86) (예시)
    • 인스턴스 유형: t2.medium (CPU 2개, RAM 4GB)
      • (프리 티어를 위해 t2.micro도 가능하지만 리소스가 적을 수 있음)
    • 키 페어: 앞서 생성한 demo-key 선택
    • 네트워크 설정:
      • VPC: default VPC
      • 서브넷: 적절한 AZ 선택(예: ap-northeast-2a)
      • 퍼블릭 IP 자동 할당: 사용
    • 보안 그룹: 기존 보안 그룹 중 demo-bastion-sg 선택
    • 스토리지: 기본 8GB (gp3) 유지
  3. 인스턴스 시작

    • 설정 확인 후 인스턴스 시작 클릭
    • EC2 목록(모든 인스턴스 보기)에서 상태 확인 (정상 실행까지 1~2분 소요)

4. Bastion 서버 접속(Xshell 기준)

  1. 퍼블릭 IP 확인

    • EC2 대시보드에서 demo-bastion 인스턴스 선택
    • 세부정보 탭에서 퍼블릭 IPv4 주소 확인
  2. Xshell 접속

    • Xshell 실행 → 새 세션 생성
    • 호스트: 위에서 확인한 퍼블릭 IP 입력
    • 사용자 이름: ubuntu
    • 인증 방법: Public Key
      • 키 파일로 생성 시 다운받은 demo-key.pem 지정
    • 접속 후 호스트 키 경고 창이 뜨면 수락 및 저장 선택
  3. 로그인 확인

    • 접속 완료 후 프롬프트가 ubuntu@ip-xxx-xxx-xxx-xxx와 같은 형태로 뜨면 정상
    • uname -a 등 명령어로 확인

5. 차후 작업

이제 Bastion 서버에 다음 패키지들을 설치하여, 본격적으로 EKS를 생성하고 제어할 수 있습니다.

  1. AWS CLI

    • AWS 리소스를 커맨드 라인에서 쉽게 관리하기 위한 도구
  2. eksctl

    • EKS 클러스터를 자동 구성/삭제/관리할 수 있는 명령줄 툴
  3. kubectl

    • 쿠버네티스 클러스터를 제어(디플로이/스케일링/업데이트 등)하기 위한 명령줄 툴

위 도구들을 설치한 뒤에는 eksctl create cluster 명령으로 EKS 클러스터를 만들고, kubectl 명령으로 애플리케이션을 배포하는 과정을 거치게 됩니다.


정리

  • Bastion 서버를 구성하여 AWS CLI, eksctl, kubectl 등을 한곳에 설치해 관리하면 EKS 환경 구성 및 운영이 편리해집니다.
  • Bastion 서버는 공인 IP를 통해 SSH로 접근 가능하도록 설정하며, 원격 로그인 시에는 키 페어보안 그룹 구성을 신중하게 해야 합니다.
  • EKS 실습은 이 Bastion 서버를 기반으로 차차 진행할 예정이며, 향후 Worker 노드, EKS Control Plane 연동, 그리고 애플리케이션 배포 과정을 단계적으로 다룰 것입니다.

주의사항

  • Bastion 서버, EKS 클러스터, 각종 AWS 리소스 사용에는 과금이 발생할 수 있으니 실습 후 사용하지 않는 리소스는 반드시 삭제해 주세요.

참고 자료

profile
✨A.I로 0에서 1을 만드는 법✨ - woo;D

0개의 댓글