요약
이 백서에서는 Amazon Elastic Kubernetes Service(EKS)를 사용한 BPA(Business Process Automation) 애플리케이션 배포 및 관리에 대한 포괄적인 가이드를 제공합니다. 사전 요구 사항에 대해 간략하게 설명하고 EKS 활용의 이점을 강조하며 EKS 클러스터, Amazon RDS 데이터베이스 및 MongoDB Atlas 설정에 대한 단계별 지침을 제공합니다. 또한 이 백서는 구축 아키텍처를 자세히 살펴보고 환경 요구 사항을 명시하여 컨테이너화된 BPA 애플리케이션에 EKS를 활용하려는 조직을 위한 완벽한 리소스를 제공합니다.
키워드:Amazon EKS, Kubernetes, AWS, RDS, MongoDB Atlas, DevOps, 클라우드 컴퓨팅, 비즈니스 프로세스 자동화.
소개
비즈니스 프로세스 자동화(BPA)

Cisco BPA(Business Process Automation) 서비스는 프로세스 및 워크플로 자동화 및 오케스트레이션을 위해 설계된 엔드 투 엔드 컨설팅 및 지원 서비스 포트폴리오를 제공합니다. BPA 플랫폼은 확장 가능하고 마이크로서비스 기반이며 내장된 워크플로 엔진, 디지털 사용자 인터페이스 및 공통 통합 미들웨어를 갖추고 있습니다. 이 플랫폼은 복잡한 네트워크 컨피그레이션 변경 및 관련 프로세스를 자동화하여 서비스 공급자 고객과 글로벌 대기업에 모두 적합합니다.
Cisco BPA Services의 주요 이점은 다음과 같습니다.
- 복잡한 방법 및 운영 절차 자동화
- 자동화 이니셔티브를 가속화하기 위한 팀 전문 지식 강화
- 향상된 사용자 인터페이스/포털을 통해 새로운 서비스의 출시 가속화
- 레거시 네트워크와 새로운 자동화 기능 통합
BPA 플랫폼은 OS 업그레이드, 서비스 프로비저닝, 오케스트레이션 엔진과의 통합 등 다양한 비즈니스 및 IT/운영 활용 사례를 지원합니다. 고객은 자문, 구현, 비즈니스 크리티컬 서비스, 솔루션 지원을 포함한 서비스 및 BPA 기능의 라이프사이클에 액세스할 수 있습니다. Cisco BPA Services는 운영 효율성을 높이고, 비용이 많이 드는 오류를 줄이고, 비즈니스 민첩성을 개선하고, 자동화 투자 수익을 더 빨리 실현하는 것을 목표로 합니다.
AMAZON ELASTIC KUBERNETES 서비스(EKS)
Amazon Elastic Kubernetes Service(EKS)는 Amazon Web Services(AWS)에서 제공하는 완전히 관리되는 Kubernetes 서비스입니다. 2018년에 출시된 EKS는 오픈 소스 컨테이너 오케스트레이션 플랫폼인 Kubernetes를 사용하여 컨테이너화된 애플리케이션의 구축, 관리 및 확장 프로세스를 간소화합니다. EKS는 Kubernetes 클러스터 관리의 복잡성을 추상화하므로 개발자는 기본 인프라를 처리할 필요 없이 애플리케이션을 구축하고 실행하는 데 집중할 수 있습니다.
애플리케이션 구축에 Amazon EKS를 사용할 때의 이점
Amazon EKS는 애플리케이션 구축에 여러 가지 이점을 제공하므로 컨테이너화된 애플리케이션 및 마이크로서비스를 활용하는 조직에서 많이 사용하는 선택입니다.
주요 이점은 다음과 같습니다.
-
Kubernetes 관리 컨트롤 플레인: EKS는 Kubernetes 컨트롤 플레인의 구축, 확장 및 유지 보수를 처리하므로 운영 부담이 줄어듭니다.
-
간소화된 클러스터 관리: EKS는 Kubernetes 클러스터를 설정하고 관리하는 복잡성을 추상화합니다.
-
확장성: EKS를 사용하면 증가하는 워크로드를 수용하기 위해 클러스터를 손쉽게 확장할 수 있습니다.
-
고가용성: EKS는 다중 가용 영역 구축을 지원하여 가용성과 내결함성을 향상시킵니다.
-
AWS 서비스와의 통합: EKS는 다양한 AWS 서비스와 원활하게 통합됩니다.
- DevOps 자동화 EKS는 컨테이너화된 애플리케이션을 위해 지속적인 통합 및 지속적 구축(CI/CD)을 지원합니다.
BPA 구축 아키텍처

이 이미지는 여러 가지 주요 구성 요소를 사용하여 AWS에 배포된 클라우드 기반 인프라의 상위 레벨 아키텍처를 나타냅니다. 여기 다이어그램의 분류가 있다:
- Amazon EKS(Elastic Kubernetes Service): 다이어그램의 핵심은 Amazon EKS가 3개의 가용 영역(AZ1, AZ2, AZ3)에 구축되며, 각 영역 내에는 Kubernetes 작업자 노드가 있습니다. 이는 워크로드가 여러 가용 영역에 분산되어 있기 때문에 가용성과 내결함성이 뛰어난 설정을 나타냅니다.
- ALB(애플리케이션 로드 밸런서): 이는 맨 앞에 위치하여 사용자로부터 트래픽을 수신하고 이를 EKS 클러스터 전체에 분산시켜 애플리케이션 워크로드를 처리합니다. 로드 밸런서는 요청이 균등하게 분배되도록 하며 트래픽 수요에 따라 확장을 처리할 수 있습니다.
- Amazon RDS(관계형 데이터베이스 서비스) - PostgreSQL: 다이어그램 오른쪽에는 PostgreSQL을 실행하는 Amazon RDS 인스턴스가 있습니다. 이 데이터베이스는 EKS 클러스터 내에서 실행 중인 응용 프로그램에서 액세스할 수 있습니다.
- ECR(탄력적 컨테이너 레지스트리): 여기서 Docker 컨테이너 이미지가 저장 및 관리되고, 그런 다음 워크로드 실행을 위해 Amazon EKS에 구축됩니다.
- MongoDB Atlas: 왼쪽의 MongoDB Atlas는 프라이빗 엔드포인트를 통해 아키텍처에 통합됩니다. MongoDB Atlas는 클라우드 호스팅 NoSQL 데이터베이스 서비스로, 여기에서 문서 기반 데이터베이스 요구 사항을 처리하는 데 사용됩니다. 프라이빗 엔드포인트는 MongoDB Atlas 인스턴스와 다른 AWS 구성 요소 간의 안전한 프라이빗 통신을 보장합니다.
- 요새 호스트: VPC(Virtual Private Cloud) 내에 위치한 Basation Host는 관리자가 인터넷에 직접 노출하지 않고도 VPC 내의 리소스에 액세스할 수 있는 보안 진입점을 제공합니다.
- 전반적으로 이 아키텍처는 관계형(PostgreSQL) 및 NoSQL(MongoDB) 데이터베이스를 모두 지원하는 동시에 Amazon EKS를 사용하여 컨테이너화된 애플리케이션을 배포하고 관리할 수 있는 가용성과 확장성이 뛰어나며 안전한 솔루션을 제공합니다.
EKS 클러스터 설정
RDS 데이터베이스 설치
Amazon RDS에 관계형 데이터베이스를 배포하려면 다음 단계를 수행해야 합니다.
- AWS Management Console에 액세스하여 Amazon RDS 서비스로 이동합니다.
- 원하는 사양으로 새 데이터베이스 인스턴스를 생성합니다.
- Amazon EKS 클러스터에서 들어오는 연결을 허용하도록 보안 그룹을 구성합니다.
- 드롭다운 메뉴를 사용하여 최신 버전의 PostgreSQL을 선택합니다. 여기서는 "PostgreSQL 16.3-R1"입니다.


- 이를 위해 데이터베이스 인스턴스에 이름을 지정하고 사용자 이름 및 비밀번호를 생성합니다.

- "DB 인스턴스 크기" 및 "스토리지"에 대한 기본 설정이 선택되어 있는지 확인합니다. 클러스터 크기 및 데이터 요구 사항에 따라 적절한 DB 인스턴스 크기 및 스토리지 유형을 선택합니다.
- 사용 사례에 따라 다음 컨피그레이션을 선택했습니다.
- DB 인스턴스 크기: db.m5d.2xlarge
- vCPU 8개
- 32Gb RAM
- 네트워크: 4,750Mbps
- 300GB 인스턴스 저장소
- 사용 사례에 따라 적절한 값을 선택합니다. 기본값을 선택했습니다.

- "Database authentication(데이터베이스 인증)"에서 Password authentication(비밀번호 인증)을 선택했는지 확인합니다. 데이터베이스 비밀번호를 사용하여 인증합니다.

- 검증이 완료되면 데이터베이스를 생성할 준비가 됩니다. Amazon RDS 대시보드로 돌아갑니다. 인스턴스를 사용할 수 있는지 확인합니다.

보안 그룹 규칙
- Pod CIDR 및 노드 CIDR 블록으로 인바운드 보안 그룹을 업데이트합니다.
- RDS -> 데이터베이스 -> DB-NAME에서 구성을 클릭하고 매개 변수 그룹 섹션을 참조한 다음 표시할 매개 변수 그룹을 클릭합니다.

- "password_encryption"을 검색하고 값을 blank/other 값에서 md5로 변경합니다. 이는 camunda 컨피그레이션이 작동하기 위해 필요합니다.

- RDS에 연결하여 이러한 데이터베이스를 사용자와 함께 만듭니다.
PG_ROOT_DATABASE=관리자
PG_INITDB_ROOT_USERNAME=admin
PG_INITDB_ROOT_PASSWORD=xxxxxxx
AUTH_DB_NAME=KONG
AUTH_DB_USER=KONG
AUTH_DB_PASSWORD=xxxxxxxxx
WFE_DB_USER=카문다
WFE_DB_PASSWORD=xxxxxxxx
WFE_DB_NAME=프로세스 엔진
- 데이터베이스 비밀번호를 업데이트하려면 bpa-helm-chart/bpa/env/environment.txt 파일의
값을
수정합니다. 이 파일은 데이터베이스 연결을 인증하는 데 사용됩니다.
ATLAS MONGODB 설정
Atlas MongoDB 설정은 다음과 같습니다.
- Atlas MongoDB에 로그인합니다.
- 조직 및 프로젝트 선택
- 적절한 사양과 버전으로 전용 클러스터를 만드는 중입니다. 이 경우 "MongoDB Atlas v5.0.29"입니다.

- Dedicated tier(전용 계층), Cloud Provider & Region(클라우드 제공자 및 지역)을 선택합니다.

- 적절한 계층(M30을 계층으로 사용함)을 선택하고 적절한 클러스터 이름을 제공한 다음 Create Cluster(클러스터 생성)를 클릭합니다. Atlas monogodb 클러스터를 초기화합니다.
- Atlas 및 K8S 클러스터에 대한 VPC 프라이빗 엔드포인트 설정
- Network Access(네트워크 액세스) Select Private Endpoint(개인 엔드포인트 선택) > Add Private Endpoint(개인 엔드포인트 추가)를 클릭합니다.

- Cloud Provider as AWS를 선택하고 각 리전을 선택한 후 Next(다음)를 클릭합니다.
- 각 PVC ID 및 서브넷 ID를 제공합니다. 세부사항을 입력하면 vpc 엔드포인트 생성 명령을 복사하여 aws 콘솔에서 실행합니다. VPC 엔드포인트 ID를 출력으로 가져옵니다.
- Next(다음)를 클릭하여 VPC 엔드포인트 ID를 붙여넣고 Create(생성)를 클릭합니다.
- 성공적으로 생성되면 다음 그림과 같이 cndpoint 상태를 Available(사용 가능)로 설정합니다. 포드 cidr에 대해 VPC 엔드포인트를 생성해야 합니다. 여기서는 "100.64.0.0/16"을 사용했습니다.
- 새로 생성된 vpc-endpoint에 인바운드 규칙을 추가합니다. vpc-endpoint는 상위 어카운트에 있으며 보안 그룹은 새로 생성된 vpc-endpoint에 할당되어야 합니다.
이미지 레지스트리로서의 ECR
-
Amazon ECR 리포지토리를 생성하고 Docker 이미지를 해당 리포지토리에 푸시하려면 몇 가지 단계가 필요합니다. ECR 리포지토리를 생성하고 Docker 이미지에 태그를 지정한 다음 AWS CLI를 사용하여 리포지토리에 푸시하는 단계입니다.
aws ecr create-repository —repository-name your-image-name —region your-region
-
바꾸기:
- 이미지에 태그를 지정하고 이미지를 푸시하는 단계.
- 예:
docker 태그 containers.cisco.com/bpa/sase-service:4.0.3-522 <계정 번호>.dkr.ecr.us-west-2.amazonaws.com/<repository_path>/sase-service:4.0.3-522
docker push <계정 번호>.dkr.ecr.us-west-2.amazonaws.com/<repository_path>/sase-service:4.0.3-522
-
EKS 노드에 대한 IAM 역할 구성
-
EKS 작업자 노드(EC2 인스턴스)에 ECR에서 이미지를 가져올 수 있는 권한이 연결된 필요한 IAM 역할이 있는지 확인합니다. 필요한 IAM 정책은 다음과 같습니다.
{
"버전": "2012-10-17 ",
"명령문": [
{
"효과": "허용",
"작업": [
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"ecr:BatchCheckLayerAvailability"
],
"리소스": "*"
}
]
}
-
EKS 작업자 노드와 연결된 IAM 역할에 이 정책을 연결합니다.
BPA 구축
BPA 구축에는 EKS 작업자 노드 레이블 지정, 노드에서 디렉토리 준비, BPA 패키지 복사, Helm을 사용하여 BPA 구축 등 여러 단계가 포함됩니다.
-
Cisco는 고객 배포를 위해 다음 버전의 소프트웨어 및 클라우드 서비스를 활용했습니다.
- BPA: 4.0.3-6
- RDS(관계형 데이터베이스 서비스): PostgreSQL 16.3-R1
- MongoDB Atlas: v5.0.29
- EKS(Elastic Kubernetes Service): v1.27
- 이러한 구성 요소는 Cisco의 구축이 견고하고 확장 가능하며 필요한 워크로드를 효율적으로 처리할 수 있도록 보장합니다.
- EKS 작업자 노드 레이블 지정
kubectl label node <worker_node_1> name=node-1
kubectl label node <worker_node_2> name=node-2
kubectl label node <worker_node_3> name=node-3
kubectl label node <worker_node_4> name=node-4
노드에서 디렉터리 준비
- 노드 1:
rm -rf /opt/bpa/data/
mkdir -p /opt/bpa/data/zookeeper1
mkdir -p /opt/bpa/data/zookeeper4
mkdir -p /opt/bpa/data/zookeeper5
chmod 777 /opt/bpa/data/zookeeper1
chmod 777 /opt/bpa/data/zookeeper4
chmod 777 /opt/bpa/data/zookeeper5
mkdir -p /opt/bpa/data/kafka1
chmod 777 /opt/bpa/data/kafka1
sysctl -w vm.max_map_count=262144
- 노드 2:
rm -rf /opt/bpa/data/
mkdir -p /opt/bpa/data/zookeeper1
mkdir -p /opt/bpa/data/zookeeper4
mkdir -p /opt/bpa/data/zookeeper5
chmod 777 /opt/bpa/data/zookeeper1
chmod 777 /opt/bpa/data/zookeeper4
chmod 777 /opt/bpa/data/zookeeper5
mkdir -p /opt/bpa/data/kafka1
chmod 777 /opt/bpa/data/kafka1
sysctl -w vm.max_map_count=262144
- 노드 3:
rm -rf /opt/bpa/data
sysctl -w vm.max_map_count=262144
mkdir -p /opt/bpa/data/kafka3
mkdir -p /opt/bpa/data/zookeeper3
mkdir -p /opt/bpa/data/zookeeper4
mkdir -p /opt/bpa/data/zookeeper5
chmod 777 /opt/bpa/data/kafka3
chmod 777 /opt/bpa/data/zookeeper3
chmod 777 /opt/bpa/data/zookeeper4
chmod 777 /opt/bpa/data/zookeeper5
- 노드 4:
mkdir -p /opt/bpa/data/elk
mkdir -p /opt/bpa/data/metrices/prometheus
mkdir -p /opt/bpa/data/metrices/grafana
chmod 777 /opt/bpa/data/metrices
chmod 777 /opt/bpa/data/metrices/prometheus
chmod 777 /opt/bpa/data/metrices/grafana
sysctl -w vm.max_map_count=262144
BPA 패키지 복사
scp -r 패키지를 node1:/opt/bpa/으로
scp -r 패키지를 node2:/opt/bpa/으로
scp -r 패키지를 node3:/opt/bpa/으로
scp -r 패키지를 node4:/opt/bpa/로
Helm을 사용하여 BPA 구축
helm install bpa-rel —create-namespace —namespace bpa-ns /opt/EKS/bpa-helm 차트
인그레스 설정
인그레스 활성화
- 값 업데이트
.
Ymlto 인그레스 사용:
인그레스 컨트롤러: {만들기: 참}
BPA 인증서를 사용하여 암호 생성
- 인증서 디렉토리로 이동하여 암호를 생성합니다.
cd /opt/bpa/<BPA Helm 차트 위치>/bpa/conf/common/certs/
kubectl create secret tls bpa-certificate-ingress —cert=bap-cert.pem —key=bap-key.pem -n bpa-ns
인그레스 컨트롤러 업데이트
- ingress
-
controller.yaml
에 새로 만든 암호를 추가합니다.
파일:
cd /opt/bpa/<BPA 지도 위치>/templates/
vi 인그레스 컨트롤러.yaml
"- —default-ssl-certificate=$(POD_NAMESPACE)/bpa-certificate-ingress"
인그레스 인증서 업데이트
- 키 삭제 및 설치를 수행하여 인그레스 인증서를 업데이트합니다.
환경 사양
환경 사양에는 EC2 인스턴스, 로드 밸런서, VPC 엔드포인트 및 RDS 인스턴스에 대한 요구 사항이 포함됩니다. 주요 사양은 다음과 같습니다.
-
EC2 요구 사항:
-
스토리지 요구 사항:노드당 2TB 공간 EBS 볼륨을 /opt에 마운트하고 모든 노드에 대해 /etc/fstab에 항목을 추가합니다.
-
보안 그룹 인바운드: 30101, 443, 0 - 65535 TCP, 22(ssh)
-
보안 그룹 아웃바운드: 모든 트래픽을 활성화해야 합니다.
-
DNS 확인자: EC2는 /etc/resolve.conf에 온프레미스 리졸버가 있어야 합니다.
로드 밸런서 요구 사항:
- 리스너 포트는 443, 30101이어야 합니다.
- VPC 엔드포인트 요구 사항(Atlas MongoDB).
- 아틀라스 연결을 위해 생성된 VPC 엔드포인트는 상위 계정에서 사용할 수 있습니다. VPC 엔드포인트에는 모든 인바운드 액세스를 허용하는 보안 그룹이 있어야 합니다(0 - 65535).
주요 개념 및 구성 요소
Amazon EKS를 사용하여 애플리케이션을 효과적으로 구축하고 관리하려면 Kubernetes의 기본 사항을 이해하는 것이 중요합니다.
결론
이 백서에서는 Amazon EKS를 사용하여 BPA(Business Process Automation) 애플리케이션을 배포하고 관리하는 데 필요한 자세한 가이드를 제공합니다. 요약된 단계에 따라 주요 개념을 이해하면 컨테이너화된 BPA 애플리케이션에서 EKS의 이점을 활용할 수 있습니다.
참조
Amazon Web Services, "Amazon EKS 설명서" [온라인]. 사용 가능:https://docs.aws.amazon.com/eks/
Kubernetes, "Kubernetes 문서" [온라인]. 사용 가능:https://kubernetes.io/docs/home/
Cisco BPA 살펴보기 https://www.cisco.com/c/en/us/solutions/collateral/service-provider/at-a-glance-c45-742579.html
BPA 운영 가이드 https://www.cisco.com/c/dam/en/us/support/docs/bpa/v403/cisco-bpa-operations-guide-v403.pdf
BPA 개발자 가이드 https://www.cisco.com/c/dam/en/us/support/docs/bpa/v403/cisco-bpa-developer-guide-v403.pdf