본문 바로가기

DR (Disaster Recovery) 재해복구

DR 구현하기 (EKS pod)

728x90
반응형

# AWS에서 DR 구현하기

조건: 단일 리전에 배포된 기관과 통신하는 TCP/IP 서비스가 EKS의 pod로 배포되고 있다.
일단 상세 제약조건은 생략하고
AWS EventBridge를 사용하여 리전 A에서 장애가 발생했을 때 리전 C에서 파드를 실행하는 방법을 설명하겠다.  
EventBridge 규칙 생성:  AWS Management Console에서 EventBridge로 이동한다.
새로운 규칙을 생성.
이벤트 소스로 CloudWatch Alarms를 선택.
리전 A에서 장애가 발생했을 때 트리거되는 CloudWatch 경보를 선택.
Lambda 함수 생성:  AWS Lambda로 이동하여 새로운 Lambda 함수를 생성.
이 Lambda 함수는 리전 C에서 파드를 실행하는 역할을 한다.
Lambda 함수 코드 예제:

import boto3

def lambda_handler(event, context):
    client = boto3.client('eks', region_name='us-west-2')  # 리전 C의 EKS 클러스터
    response = client.run_task(
        cluster='your-cluster-name',
        taskDefinition='your-task-definition',
        count=1,
        launchType='FARGATE',
        overrides={
            'containerOverrides': [
                {
                    'name': 'your-container-name',
                    'command': ['your-command']
                }
            ]
        }
    )
    return response

EventBridge 규칙과 Lambda 함수 연결:  생성한 EventBridge 규칙의 대상(Target)으로 Lambda 함수를 추가.
규칙이 트리거될 때 Lambda 함수가 실행되도록 설정.
테스트 및 검증:  리전 A에서 장애가 발생했을 때 CloudWatch 경보가 트리거되고, EventBridge 규칙이 Lambda 함수를 실행하는지 테스트한다.
Lambda 함수가 리전 C에서 파드를 정상적으로 실행하는지 확인.
이 과정을 통해 리전 A에서 장애가 발생했을 때 리전 C에서 자동으로 파드를 실행할 수 있다.
 
- 끝 -

728x90
반응형