AWS(Amazon Web Service)

[AWS] 솔루션 설계자 관점의 Serverless - RDS 람다 호출 및 이벤트 알림

yunseohhe 2024. 12. 13. 18:38

RDS, Aurora와 Lambda는 긴밀하게 통합될까?

  • 사실 우리는 데이터베이스 인스턴스안에서 람다 함수를 호출할 수도 있다. 그러면 우리는 데이터베이스 안에서 일어나는 데이터 이벤트를 처리할 수 있게 된다.
      - RDS for PostgreSQL과 Aurora MySQL에 지원된다.
  • 예를들어 사용자가 이벤트 데이터를 우리의 등록 테이블에 삽입하고, RDS는 우리의 람다 함수를 직접 호출하도록 설정이 될 것이다.
  • 우리의 람다 함수는 사용자에게 환영 이메일을 보낼 수 있고, 사용자는 그걸 받게 된다.
  • AWS 콘솔에서 설정하는게 아니라 우리가 데이터베이스에 접속하고 그 안에서 설정해야 한다. 그리고 우리가 그렇게하면 RDS 인스턴스는 우리의 람다 함수를 호출하는 것이다.
  • RDS 데이터베이스 인스턴스로부터 람다 함수로 오는 인바운드 트래픽을 반드시 허용해야 한다.
      - 모든 방식으로 오는 트래픽을 허용해야 한다.
      - 우리의 람다가 퍼블릭 인터넷에 있는 경우에도 허용해야 한다.
  • 우린 호출 또는 NAT 게이트웨이 또는 VPC 엔드포인트 등을 사용할 수 있다.
  • 네트워크 연결성이 중요하다. 그 뿐만 아니라 물론 우리의 데이터베이스 인스턴스가 람다 함수를 호출할 것이기 때문에 우리는 람다 함수를 호출할 필수적인 권한을 갖고 있어야 한다.
      - 그래서 우리는 데이터페이스 인스턴스가 적절한 IAM 정책을 갖고 있는지 확인해야 한다..

 

 

RDS Event Notifications

  • RDS 이벤트 알림을 사용하는 경우와 다르다. 이 알람들은 AWS 안에서 이루어지고, 데이터베이스 인스턴스 자체에 대한 정보를 알려주는 알림들이 있다.
  • 예를 들면 생성된 시각이나 정지된 시각, 시작된 시각 등을 알려준다.
      - 데이터베이스 안의 데이터에 대한 정보는 전혀 없다.
  • 데이터베이스 인스턴스, 데이터베이스 스냅샷, 파라미터 그룹, 보안 그룹, 프록시 또는 커스텀 엔진 버전에 관한 이벤트를 구독할 수 있다.
      - 데이터베이스 안의 데이터에 관한 정보는 받지 않을 것이다.
  • 전달 시간이 최대 5분인 근 실시간 이벤트를 받고, 그걸 SNS에 전송하거나 그것들을 EventBridge에서 가로챌 수 있다. 그럼 SNS에서 예를 들어 SQS 대기열이나 람다 함수로 그것들을 전송할 수 있다.
  • EventBridge에는 예를 들어 람다 함수 같은 아주 많은 다양한 전송 대상이 있다.
      - 하지만 데이터 이벤트 자체에 관한 정보는 받지 못한다는 점을 꼭 기억하자.