쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

EKS 자율 모드에 샘플 로드 밸런서 워크로드 배포

포커스 모드
EKS 자율 모드에 샘플 로드 밸런서 워크로드 배포 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

이 가이드에서는 로드 밸런싱 및 인터넷 접근성이 포함된 Amazon EKS에 2048 게임의 컨테이너화된 버전을 배포하는 방법을 안내합니다.

사전 조건

  • EKS Auto Mode 클러스터

  • kubectl이 클러스터와 상호 작용하도록 구성됨

  • ALB 리소스 생성을 위한 적절한 IAM 권한

1단계: 네임스페이스 생성

먼저 2048 게임 애플리케이션을 위한 전용 네임스페이스를 생성합니다.

01-namespace.yaml라는 이름의 파일을 만듭니다.

apiVersion: v1 kind: Namespace metadata: name: game-2048

네임스페이스 구성을 적용합니다.

kubectl apply -f 01-namespace.yaml

2단계: 애플리케이션 배포

애플리케이션은 2048 게임 컨테이너의 여러 복제본을 실행합니다.

02-deployment.yaml라는 이름의 파일을 만듭니다.

apiVersion: apps/v1 kind: Deployment metadata: namespace: game-2048 name: deployment-2048 spec: selector: matchLabels: app.kubernetes.io/name: app-2048 replicas: 5 template: metadata: labels: app.kubernetes.io/name: app-2048 spec: containers: - image: public.ecr.aws/l6m2t8p7/docker-2048:latest imagePullPolicy: Always name: app-2048 ports: - containerPort: 80 resources: requests: cpu: "0.5"

핵심 구성 요소:

  • 애플리케이션의 복제본 5개 배포

  • 퍼블릭 ECR 이미지 사용

  • 포드당 0.5 CPU 코어 요청

  • HTTP 트래픽에 포트 80 노출

배포를 적용합니다.

kubectl apply -f 02-deployment.yaml

3단계: 서비스 생성

서비스는 배포를 클러스터 네트워크에 노출합니다.

03-service.yaml라는 이름의 파일을 만듭니다.

apiVersion: v1 kind: Service metadata: namespace: game-2048 name: service-2048 spec: ports: - port: 80 targetPort: 80 protocol: TCP type: NodePort selector: app.kubernetes.io/name: app-2048

핵심 구성 요소:

  • NodePort 서비스 생성

  • 포트 80을 컨테이너의 포트 80에 매핑

  • 레이블 선택기를 사용하여 포드 찾기

서비스를 적용합니다.

kubectl apply -f 03-service.yaml

4단계: 로드 밸런싱 구성

애플리케이션을 인터넷에 노출하도록 수신을 설정합니다.

먼저 IngressClass를 생성합니다. 04-ingressclass.yaml라는 이름의 파일을 만듭니다.

apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: namespace: game-2048 labels: app.kubernetes.io/name: LoadBalancerController name: alb spec: controller: eks.amazonaws.com/alb

그런 다음 수신 리소스를 생성합니다. 05-ingress.yaml라는 이름의 파일을 만듭니다.

apiVersion: networking.k8s.io/v1 kind: Ingress metadata: namespace: game-2048 name: ingress-2048 annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: ip spec: ingressClassName: alb rules: - http: paths: - path: / pathType: Prefix backend: service: name: service-2048 port: number: 80

핵심 구성 요소:

  • 인터넷 연결 ALB 생성

  • 직접 포드 라우팅에 IP 대상 유형 사용

  • 모든 트래픽(/)을 게임 서비스로 라우팅

수신 구성을 적용합니다.

kubectl apply -f 04-ingressclass.yaml kubectl apply -f 05-ingress.yaml

5단계: 배포 확인

  1. 모든 포드가 실행 중인지 확인합니다.

    kubectl get pods -n game-2048
  2. 서비스가 생성되었는지 확인합니다.

    kubectl get svc -n game-2048
  3. ALB 엔드포인트를 가져옵니다.

    kubectl get ingress -n game-2048

수신 출력의 ADDRESS 필드에 ALB 엔드포인트가 표시됩니다. ALB가 모든 대상을 프로비저닝하고 등록할 때까지 2~3분 기다립니다.

6단계: 게임에 액세스

웹 브라우저를 열고 이전 단계에서 ALB 엔드포인트 URL로 이동합니다. 2048 게임 인터페이스가 표시됩니다.

7단계: 정리

이 자습서에서 만든 리소스를 모두 제거합니다.

kubectl delete namespace game-2048

그러면 배포, 서비스 및 수신 리소스를 포함하여 네임스페이스의 모든 리소스가 삭제됩니다.

비하인드 스토리

  1. 배포를 통해 2048 게임을 실행하는 포드 5개 생성

  2. 해당 서비스는 이러한 포드에 대한 안정적인 네트워크 액세스 제공

  3. EKS Auto Mode:

    • AWS에서 Application Load Balancer 생성

    • 포드의 대상 그룹 구성

    • 트래픽이 서비스로 전달되도록 라우팅 규칙 설정

문제 해결

게임이 로드되지 않는 경우 다음을 수행합니다.

  • 모든 포드가 실행 중인지 확인: kubectl get pods -n game-2048

  • 수신 상태 확인: kubectl describe ingress -n game-2048

  • ALB 상태 확인: AWS 콘솔에서 대상 그룹 상태 확인

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.