1. 람다 함수와 RDS/Aurora 연결
- RDS (Relational Database Service) 또는 Aurora는 AWS에서 제공하는 관리형 데이터베이스 서비스입니다.
- 람다 함수는 이벤트 기반으로 실행되며, 이 함수는 데이터베이스와 연결하여 데이터를 삽입하거나 조회할 수 있습니다.
- 람다 함수가 RDS 또는 Aurora와 통신하려면 적절한 VPC 설정과 IAM 역할을 설정해야 합니다.
1.1 VPC 설정
- VPC(Virtual Private Cloud)를 사용하여 람다 함수가 RDS/Aurora 인스턴스에 접근할 수 있도록 합니다.
- 람다 함수가 RDS/Aurora와 통신하려면 VPC 내에서 실행되어야 하며, 해당 데이터베이스 인스턴스와 동일한 VPC 내에 배치되어야 합니다.
- 또한, RDS/Aurora 인스턴스와의 연결을 위해 서브넷, 보안 그룹 설정이 필요합니다.
1.2 IAM 정책 설정
- 람다 함수가 RDS/Aurora 인스턴스에 접근하려면 IAM 역할을 통해 권한을 부여해야 합니다.
- 이 역할에는 RDS/Aurora에 연결할 수 있는 권한(예:
rds-db:connect
등)을 부여해야 하며, 람다 함수에 이 역할을 연결해야 합니다.
- IAM 정책 예시:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds-db:connect"
],
"Resource": [
"arn:aws:rds-db:<region>:<account-id>:dbuser/<db-username>"
]
}
]
}
2. 이벤트브리지(EventBridge)와 람다 연계
AWS EventBridge를 사용하면 다양한 AWS 서비스에서 발생하는 이벤트를 람다 함수에 전달할 수 있습니다. 예를 들어, 특정 데이터가 RDS/Aurora에 삽입되었을 때 이 이벤트를 감지하고 람다 함수를 호출할 수 있습니다.
2.1 EventBridge 설정
- 이벤트 소스 설정:
- 예를 들어, RDS 또는 Aurora의 데이터 변경 이벤트를 트리거로 사용할 수 있습니다.
- EventBridge를 통해 발생한 이벤트를 람다 함수에 연결합니다.
- 이벤트 규칙 작성:
- 특정 이벤트를 감지하면 이를 람다 함수로 전송하는 규칙을 설정합니다.
- 예시:
aws:rds
이벤트 소스를 사용하여 RDS 인스턴스에서 데이터 변경을 감지하고 해당 변경을 람다로 전달합니다.
2.2 이벤트 트리거로 람다 실행
- 이벤트 규칙에 의해 트리거된 이벤트가 람다 함수를 실행시키면, 람다 함수는 RDS 또는 Aurora에 연결하여 해당 데이터를 처리할 수 있습니다.
3. 최종 예시
- RDS/Aurora에 데이터 삽입:
- 예를 들어, 이벤트 소스로 EventBridge를 설정하고, RDS에 특정 데이터를 삽입할 때마다 이벤트를 발생시킵니다.
- 이 이벤트가 EventBridge를 통해 람다 함수로 전달됩니다.
- 람다 함수의 데이터 처리:
- 람다 함수는 RDS/Aurora에 연결하여 데이터를 삽입하거나 처리하는 작업을 합니다.
- IAM 역할 및 정책:
- 람다 함수에 적절한 IAM 역할을 부여하여 RDS/Aurora 인스턴스와의 연결을 허용하고, EventBridge의 이벤트를 처리할 수 있도록 합니다.
결론
이와 같은 시스템은 이벤트 기반 아키텍처에서 자주 사용됩니다. EventBridge, IAM, 람다와 RDS/Aurora의 통합을 통해 서버리스 환경에서 데이터베이스와의 실시간 연결을 효율적으로 관리할 수 있습니다. 이 구성은 특히 트래픽이 많은 시스템에서 유용하며, 확장성과 유연성을 제공할 수 있습니다.