쿠키 기본 설정 선택

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

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

4단계: 애플리케이션을 Amazon EKS에 배포하고 테이블에 데이터 쓰기

포커스 모드
4단계: 애플리케이션을 Amazon EKS에 배포하고 테이블에 데이터 쓰기 - Amazon Keyspaces(Apache Cassandra용)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

자습서의 이 단계에서는 애플리케이션에 대한 Amazon EKS 배포를 구성하고 애플리케이션이 실행 중이며 Amazon Keyspaces에 연결할 수 있는지 확인합니다.

Amazon EKS에 애플리케이션을 배포하려면 deployment.yaml이라는 파일에서 모든 관련 설정을 구성해야 합니다. 그런 다음 이 파일은 Amazon EKS에서 애플리케이션을 배포하는 데 사용됩니다. 파일의 메타데이터에는 다음 정보가 포함되어야 합니다.

  • 애플리케이션 이름 – 애플리케이션의 이름입니다. 본 자습서에서는 my-keyspaces-app을 사용합니다.

  • Kubernetes 네임스페이스 - Amazon EKS 클러스터의 네임스페이스입니다. 본 자습서에서는 my-eks-namespace를 사용합니다.

  • Amazon EKS 서비스 계정 이름 - Amazon EKS 서비스 계정의 이름입니다. 본 자습서에서는 my-eks-serviceaccount을 사용합니다.

  • 이미지 이름 - 애플리케이션 이미지의 이름입니다. 본 자습서에서는 my-keyspaces-app을 사용합니다.

  • Amazon ECR - Amazon EKS의 Docker 이미지 URI입니다.

  • AWS 계정 ID - AWS 계정 ID입니다.

  • IAM 역할 ARN - 서비스 계정이 수임할 수 있도록 생성된 IAM 역할의 ARN입니다. 본 자습서에서는 my-iam-role을 사용합니다.

  • Amazon EKS 클러스터의 AWS 리전 - Amazon EKS 클러스터를 생성한 AWS 리전입니다.

이 단계에서는 Amazon Keyspaces에 연결하고 테이블에 데이터를 쓰는 애플리케이션을 배포하고 실행합니다.

  1. deployment.yaml 파일을 구성합니다. 다음 값을 교체해야 합니다.

    • name

    • namespace

    • serviceAccountName

    • image

    • AWS_ROLE_ARN value

    • CASSANDRA_HOST의 AWS 리전

    • AWS_REGION

    다음 파일을 예제로 사용할 수 있습니다.

    apiVersion: apps/v1 kind: Deployment metadata: name: my-keyspaces-app namespace: my-eks-namespace spec: replicas: 1 selector: matchLabels: app: my-keyspaces-app template: metadata: labels: app: my-keyspaces-app spec: serviceAccountName: my-eks-serviceaccount containers: - name: my-keyspaces-app image: 111122223333.dkr.ecr.aws-region.amazonaws.com/my-ecr-repository:latest ports: - containerPort: 8080 env: - name: CASSANDRA_HOST value: "cassandra.aws-region.amazonaws.com:9142" - name: CASSANDRA_DC value: "aws-region" - name: AWS_WEB_IDENTITY_TOKEN_FILE value: /var/run/secrets/eks.amazonaws.com/serviceaccount/token - name: AWS_ROLE_ARN value: "arn:aws:iam::111122223333:role/my-iam-role" - name: AWS_REGION value: "aws-region"
  2. deployment.yaml를 배포합니다.

    kubectl apply -f deployment.yaml

    결과는 다음과 같아야 합니다.

    deployment.apps/my-keyspaces-app created
  3. Amazon EKS 클러스터의 네임스페이스에서 포드의 상태를 확인합니다.

    kubectl get pods -n my-eks-namespace

    결과가 다음 예제와 비슷해야 합니다.

    NAME READY STATUS RESTARTS AGE my-keyspaces-app-123abcde4f-g5hij 1/1 Running 0 75s

    자세한 내용은 다음 명령을 사용하여 확인할 수 있습니다.

    kubectl describe pod my-keyspaces-app-123abcde4f-g5hij -n my-eks-namespace
    Name: my-keyspaces-app-123abcde4f-g5hij Namespace: my-eks-namespace Priority: 2000001000 Priority Class Name: system-node-critical Service Account: my-eks-serviceaccount Node: fargate-ip-192-168-102-209.ec2.internal/192.168.102.209 Start Time: Thu, 23 Nov 2023 12:15:43 +0000 Labels: app=my-keyspaces-app eks.amazonaws.com/fargate-profile=my-fargate-profile pod-template-hash=6c56fccc56 Annotations: CapacityProvisioned: 0.25vCPU 0.5GB Logging: LoggingDisabled: LOGGING_CONFIGMAP_NOT_FOUND Status: Running IP: 192.168.102.209 IPs: IP: 192.168.102.209 Controlled By: ReplicaSet/my-keyspaces-app-6c56fccc56 Containers: my-keyspaces-app: Container ID: containerd://41ff7811d33ae4bc398755800abcdc132335d51d74f218ba81da0700a6f8c67b Image: 111122223333.dkr.ecr.aws-region.amazonaws.com/my_eks_repository:latest Image ID: 111122223333.dkr.ecr.aws-region.amazonaws.com/my_eks_repository@sha256:fd3c6430fc5251661efce99741c72c1b4b03061474940200d0524b84a951439c Port: 8080/TCP Host Port: 0/TCP State: Running Started: Thu, 23 Nov 2023 12:15:19 +0000 Finished: Thu, 23 Nov 2023 12:16:17 +0000 Ready: True Restart Count: 1 Environment: CASSANDRA_HOST: cassandra.aws-region.amazonaws.com:9142 CASSANDRA_DC: aws-region AWS_WEB_IDENTITY_TOKEN_FILE: /var/run/secrets/eks.amazonaws.com/serviceaccount/token AWS_ROLE_ARN: arn:aws:iam::111122223333:role/my-iam-role AWS_REGION: aws-region AWS_STS_REGIONAL_ENDPOINTS: regional Mounts: /var/run/secrets/eks.amazonaws.com/serviceaccount from aws-iam-token (ro) /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-fssbf (ro) Conditions: Type Status Initialized True Ready True ContainersReady True PodScheduled True Volumes: aws-iam-token: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 86400 kube-api-access-fssbf: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: <nil> DownwardAPI: true QoS Class: BestEffort Node-Selectors: <none> Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning LoggingDisabled 2m13s fargate-scheduler Disabled logging because aws-logging configmap was not found. configmap "aws-logging" not found Normal Scheduled 89s fargate-scheduler Successfully assigned my-eks-namespace/my-keyspaces-app-6c56fccc56-mgs2m to fargate-ip-192-168-102-209.ec2.internal Normal Pulled 75s kubelet Successfully pulled image "111122223333.dkr.ecr.aws-region.amazonaws.com/my_eks_repository:latest" in 13.027s (13.027s including waiting) Normal Pulling 54s (x2 over 88s) kubelet Pulling image "111122223333.dkr.ecr.aws-region.amazonaws.com/my_eks_repository:latest" Normal Created 54s (x2 over 75s) kubelet Created container my-keyspaces-app Normal Pulled 54s kubelet Successfully pulled image "111122223333.dkr.ecr.aws-region.amazonaws.com/my_eks_repository:latest" in 222ms (222ms including waiting) Normal Started 53s (x2 over 75s) kubelet Started container my-keyspaces-app
  4. 포드의 로그를 확인하여 애플리케이션이 실행 중이고 Amazon Keyspaces 테이블에 연결할 수 있는지 확인합니다. 이러한 권한 부여는 다음 명령을 사용하여 가능합니다. 배포 이름으로 바꿉니다.

    kubectl logs -f my-keyspaces-app-123abcde4f-g5hij -n my-eks-namespace

    아래 예제와 같이 Amazon Keyspaces에 대한 연결을 확인하는 애플리케이션 로그 항목을 볼 수 있어야 합니다.

    2:47:20.553 [s0-admin-0] DEBUG c.d.o.d.i.c.metadata.MetadataManager - [s0] Adding initial contact points [Node(endPoint=cassandra.aws-region.amazonaws.com/1.222.333.44:9142, hostId=null, hashCode=e750d92)] 22:47:20.562 [s0-admin-1] DEBUG c.d.o.d.i.c.c.ControlConnection - [s0] Initializing with event types [SCHEMA_CHANGE, STATUS_CHANGE, TOPOLOGY_CHANGE] 22:47:20.564 [s0-admin-1] DEBUG c.d.o.d.i.core.context.EventBus - [s0] Registering com.datastax.oss.driver.internal.core.metadata.LoadBalancingPolicyWrapper$$Lambda$812/0x0000000801105e88@769afb95 for class com.datastax.oss.driver.internal.core.metadata.NodeStateEvent 22:47:20.566 [s0-admin-1] DEBUG c.d.o.d.i.c.c.ControlConnection - [s0] Trying to establish a connection to Node(endPoint=cassandra.us-east-1.amazonaws.com/1.222.333.44:9142, hostId=null, hashCode=e750d92)
  5. Amazon Keyspaces 테이블에서 다음 CQL 쿼리를 실행하여 한 줄의 데이터가 테이블에 기록되었는지 확인합니다.

    SELECT * from aws.user;

    다음 결과가 표시됩니다.

    fname | lname | username | last_update_date ----------+-------+----------+----------------------------- random | k | test | 2023-12-07 13:58:31.57+0000
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.