기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
아마존 컨테이너에서 아마존 Neptune 데이터베이스에 액세스 EKS
작성자: 라마크리슈난 팔라니나단 () AWS
환경: 프로덕션 | 기술: 컨테이너 및 마이크로서비스, 데이터베이스 | 워크로드: 기타 모든 워크로드 |
AWS서비스: 아마존EKS, 아마존 넵튠 |
요약
이 패턴은 완전관리형 그래프 데이터베이스인 Amazon Neptune과 컨테이너 오케스트레이션 서비스인 Amazon Elastic Kubernetes Service EKS (Amazon) 간에 연결을 설정하여 Neptune 데이터베이스에 액세스합니다. Neptune DB 클러스터는 켜진 가상 사설 클라우드 () 내에 제한됩니다. VPC AWS이러한 이유로 Neptune에 액세스하려면 연결이 가능하도록 신중하게 구성해야 VPC 합니다.
SQLPostgre용 Amazon 관계형 데이터베이스 서비스 (RDSAmazon) 와 달리 Neptune은 일반적인 데이터베이스 액세스 자격 증명을 사용하지 않습니다. 대신 인증에 AWS Identity and Access Management () IAM 역할을 사용합니다. 따라서 EKS Amazon에서 Neptune에 연결하려면 Neptune에 액세스하는 데 필요한 권한을 가진 역할을 IAM 설정해야 합니다.
또한 Neptune 엔드포인트는 클러스터가 있는 곳 내에서만 액세스할 수 있습니다VPC. 즉, EKS Amazon과 Neptune 간의 원활한 통신을 위해 네트워크 설정을 구성해야 합니다. 특정 요구 사항 및 네트워킹 기본 설정에 따라 Neptune과 Amazon 간의 원활한 연결이 VPC가능하도록 구성하는 다양한 접근 방식이 있습니다. EKS 각 방법은 뚜렷한 장점과 고려 사항을 제공하므로 애플리케이션 요구 사항에 맞게 데이터베이스 아키텍처를 유연하게 설계할 수 있습니다.
사전 조건 및 제한 사항
사전 조건
kubectl의 최신 버전을 설치합니다 (지침
참조). 버전을 확인하려면 다음을 실행하세요. kubectl version --short
eksctl의 최신 버전을 설치합니다 (지침
참조). 버전을 확인하려면 다음을 실행하세요. eksctl info
AWS Command Line Interface (AWS CLI) 버전 2의 최신 버전을 설치합니다 (지침 참조). 버전을 확인하려면 다음을 실행하세요.
aws --version
Neptune DB 클러스터를 생성합니다 (지침 참조). VPC피어링 또는 다른 방법을 EKS 통해 VPC 클러스터와 Amazon 간에 통신을 설정해야 합니다. AWS Transit Gateway 또한 클러스터 상태가 “사용 가능”이고 포트 8182에 보안 그룹을 위한 인바운드 규칙이 있는지 확인하십시오.
기존 아마존 EKS 클러스터에서 IAM OpenID Connect (OIDC) 공급자를 구성합니다 (지침 참조).
제품 버전
아키텍처
다음 다이어그램은 Neptune 데이터베이스에 대한 액세스를 제공하기 위한 Amazon 클러스터의 Kubernetes EKS 파드와 Neptune 간의 연결을 보여줍니다.
자동화 및 규모 조정
Amazon EKS Horizontal 포드 오토스케일러를 사용하여 이 솔루션을 확장할 수 있습니다.
도구
서비스
Amazon Elastic Kubernetes Service (EKSAmazon) 를 사용하면 자체 AWS 쿠버네티스 컨트롤 플레인 또는 노드를 설치하거나 유지 관리할 필요 없이 쿠버네티스를 실행할 수 있습니다.
AWS Identity and Access Management (IAM) 를 사용하면 누가 인증 및 사용 권한을 받았는지 제어하여 AWS 리소스에 대한 액세스를 안전하게 관리할 수 있습니다.
Amazon Neptune은 연결성이 높은 데이터 세트로 작동하는 애플리케이션을 구축하고 실행할 수 있도록 지원하는 그래프 데이터베이스 서비스입니다.
모범 사례
모범 사례는 Amazon EKS 모범 사례 안내서의 Identity 및 Access Management를
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
클러스터 컨텍스트를 확인하십시오. | Helm 또는 기타 명령줄 도구를 사용하여 Amazon EKS 클러스터와 상호 작용하기 전에 클러스터의 세부 정보를 캡슐화하는 환경 변수를 정의해야 합니다. 이러한 변수는 올바른 클러스터와 리소스를 대상으로 하는지 확인하기 위해 후속 명령에서 사용됩니다. 먼저, 올바른 클러스터 컨텍스트 내에서 작업하고 있는지 확인하십시오. 이렇게 하면 모든 후속 명령이 의도한 Kubernetes 클러스터로 전송됩니다. 현재 컨텍스트를 확인하려면 다음 명령을 실행합니다.
| AWS관리자, 클라우드 관리자 |
| Amazon EKS 클러스터의
| AWS관리자, 클라우드 관리자 |
출력을 검증합니다. | 변수가 제대로 설정되었는지 확인하려면 다음 명령을 실행합니다.
이 명령의 출력이 이전 단계에서 지정한 입력과 일치하는지 확인합니다. | AWS관리자, 클라우드 관리자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
서비스 계정을 생성합니다. | 서비스 계정의 IAM 역할을 사용하여 Kubernetes 서비스 계정을 IAM 역할에 매핑하여 Amazon에서 실행되는 애플리케이션에 대한 권한을 세밀하게 관리할 수 있습니다. EKS eksctl을 중요: 이 명령을 실행하려면 먼저 클러스터와 연결된 OIDC엔드포인트가 있어야 합니다. 라는 AWS 관리형 정책에 연결할 서비스 계정을 만드십시오
생성하려는 서비스 계정의 완료 시 이 명령은 다음과 같은 응답을 표시합니다.
| AWS관리자, 클라우드 관리자 |
계정이 제대로 설정되었는지 확인하세요. | 클러스터의 기본 네임스페이스에
출력은 다음과 같아야 합니다.
| AWS관리자, 클라우드 관리자 |
연결 상태를 확인하세요. | 라는 샘플 포드를
| AWS관리자, 클라우드 관리자 |
작업 | 설명 | 필요한 기술 |
---|---|---|
IAM데이터베이스 인증을 활성화합니다. | 기본적으로 Neptune DB 클러스터를 생성하면 IAM 데이터베이스 인증이 비활성화됩니다. 를 사용하여 IAM 데이터베이스 인증을 활성화하거나 비활성화할 수 있습니다. AWS Management Console AWS 설명서의 단계에 따라 Neptune에서 IAM 데이터베이스 인증을 활성화하십시오. | AWS관리자, 클라우드 관리자 |
연결 확인. | 이 단계에서는 이미 실행 상태인
| AWS관리자, 클라우드 관리자 |
문제 해결
문제 | Solution |
---|---|
Neptune 데이터베이스에 액세스할 수 없습니다. | 서비스 IAM 계정에 연결된 정책을 검토하세요. 실행하려는 작업에 필요한 조치 (예: |
관련 리소스
쿠버네티스 서비스 계정 AWS 사용에 대한 쿠버네티스 워크로드 액세스 권한 부여 (Amazon 설명서) EKS
IAM서비스 계정의 역할 (Amazon EKS 설명서)