aws

Amazon Cognito 다중 리전 복제로 애플리케이션 복원력 향상 | Amazon Web Services (새 탭에서 열림)

Amazon Cognito의 다중 리전 복제는 사용자 인증과 M2M 인증을 보조 리전에서도 지속할 수 있도록 해 애플리케이션의 복원력을 높인다. 기본 리전의 사용자 프로필, 자격 증명, 머신 시크릿, 풀 설정을 보조 리전에 자동 복제하며, 장애 전환 시 기존 사용자의 재로그인이나 강제 비밀번호 재설정을 줄일 수 있다. 다만 사용자 등록·프로필 수정은 장애 전환 중 제한되며, KMS 키와 애플리케이션·주변 AWS 리소스에 대한 별도 구성이 필요하다.

기존 멀티 리전 인증의 문제

  • 리전 간 Cognito 설정과 사용자 데이터를 일관되게 유지하려면 팀이 직접 복제 시스템을 구축·운영해야 했다.
  • 사용자 데이터를 수동으로 내보내고 가져오는 과정에서 다음 문제가 발생했다.
    • 민감한 인증 데이터 노출 위험
    • 리전 간 데이터 불일치
    • 장애 전환 시 강제 비밀번호 재설정 및 재인증
  • M2M 인증에서는 보조 리전에 새 앱 클라이언트를 만들고, 애플리케이션과 OAuth 리소스가 새 리전의 토큰 발급자를 신뢰하도록 재구성해야 했다.

Cognito 다중 리전 복제 방식

  • 기본 리전에서 선택한 보조 AWS 리전으로 데이터를 단방향 복제한다.
  • 다음 항목이 복제된다.
    • 사용자 프로필
    • 사용자 자격 증명
    • 머신 인증용 시크릿
    • 사용자 풀 구성
  • 보조 리전은 읽기 전용으로 동작하며 인증 지속성을 제공한다.
  • 양쪽 리전이 서로 발급한 액세스 토큰을 인식하므로, 기존 로그인 세션을 유지할 수 있다.
  • 다음 인증 방식을 지원한다.
    • Amazon, Google, Apple, Facebook 등 소셜 로그인
    • SAML 및 OIDC 연동
    • API 및 M2M 인증 흐름
  • 장애 전환 중에는 인증은 가능하지만 신규 사용자 등록이나 사용자 프로필 변경은 사용할 수 없다.

고객 관리형 KMS 키

  • 복제를 구성하려면 AWS KMS에 저장된 멀티 리전 고객 관리형 키가 필요하다.
  • 동일한 암호화 키를 리전 간 복제해 사용자 데이터 저장 시 일관된 암호화 정책을 적용한다.
  • Cognito가 키를 사용할 수 있도록 KMS 키 정책에 권한을 추가해야 한다.
  • 고객 관리형 키를 사용하면 AWS 기본 키에만 의존하지 않고 조직의 암호화 및 키 관리 전략을 적용할 수 있다.

복제 설정 절차

예시로 us-west-2의 사용자 풀을 us-east-1로 복제한다.

  1. 고객 관리형 KMS 키 설정
    • 두 리전에 키를 생성·복제한다.
    • KMS 키 정책에 Amazon Cognito의 키 사용 권한을 추가한다.
  2. 멀티 리전 OIDC 엔드포인트 설정
    • 콘솔에서 새로운 OIDC issuer 유형을 활성화한다.
    • 변경된 엔드포인트를 서버 애플리케이션과 모바일 앱에 반영한다.
    • 서버는 재배포가 필요하고, 모바일 앱은 App Store와 Google Play에 업데이트를 제출해야 할 수 있다.
    • 엔드포인트를 변경하지 않으면 기존 인증 요청이 올바르게 라우팅되지 않아 사용자 장애가 발생할 수 있다.
  3. 복제 대상 리전 선택
    • 고객 관리형 키가 복제된 리전만 대상 리전으로 선택할 수 있다.
    • 데이터 규모에 따라 복제 준비 시간이 달라진다.
    • 복제 사용자 풀이 준비되면 관리자가 수동으로 활성화해야 한다.

장애 전환과 트래픽 라우팅

  • 기본 리전과 보조 리전의 엔드포인트는 항상 활성 상태로 유지된다.
  • 애플리케이션 요구사항에 맞춰 다음 항목을 기준으로 헬스 체크를 설계할 수 있다.
    • 인증 오류율
    • 지연 시간 증가
    • 특정 AWS 서비스 장애 알림
  • 장애 조건이 충족되면 DNS를 변경해 보조 리전으로 트래픽을 전환한다.
  • 실제 장애 전에 비업무 시간에 일부 트래픽만 보조 리전으로 보내 인증 흐름을 검증하는 것이 권장된다.
  • 관리형 로그인과 사용자 지정 도메인 기반 연동에서는 Route 53 헬스 체크 ID를 이용한 내장 트래픽 라우팅도 사용할 수 있다.

추가로 준비해야 할 리소스

다중 리전 복제 자체만으로 모든 인증 관련 리소스가 자동 복제되는 것은 아니다.

  • 사용자 지정 인증 흐름에 사용하는 Lambda 함수를 대상 리전에 배포해야 한다.
  • SMS 및 이메일 알림 설정도 대상 리전에서 별도로 구성해야 한다.
  • 로그 스트리밍 설정과 AWS WAF 규칙을 수동으로 복제해야 한다.
  • 장애 전환 절차, DNS 변경, 보안 정책을 사전에 문서화하고 테스트해야 한다.

가격과 제공 리전

  • Essentials 및 Plus 요금제의 추가 기능으로 제공된다.
  • 사용자 인증 비용:
    • Essentials: 복제 리전별 월간 활성 사용자당 $0.0045
    • Plus: 복제 리전별 월간 활성 사용자당 $0.006
  • M2M 인증은 성공적으로 발급된 토큰의 표준 볼륨 요금에 30%가 추가된다.
  • 미국, 캐나다, 유럽, 아시아 태평양, 남미 등 여러 리전에서 제공되며, 지원 리전은 기본 리전과 복제 대상 리전 모두로 사용할 수 있다.

실용적인 권장 사항

다중 리전 복제는 인증 중단을 최소화해야 하는 고객-facing 서비스와 M2M 백엔드에 적합하다. 도입 전 KMS 키, OIDC 엔드포인트, Lambda·WAF·로그 설정을 함께 준비하고, 인증 지속성과 장애 전환 후의 읽기 전용 제약을 포함한 실제 장애 대응 테스트를 수행하는 것이 좋다.