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
반응형