Amazon Web Services 한국 블로그
Amazon Cognito, 신규 다중 리전 복제 기능을 통한 애플리케이션 복원력 개선
웹 및 모바일 애플리케이션 개발자와 협력하는 개발자 옹호자로서 저는 리전별 서비스 중단이 발생할 경우 예상치 못한 상황에서도 일관된 사용자 인증을 유지해야 한다는 이야기를 자주 들었습니다. 에이전틱 AI, 마이크로서비스, 자동화, 서비스 계정의 사용이 증가하면서 시스템 간 인증에도 유사한 필요성이 대두되었습니다. 오늘은 Amazon Cognito에 대한 두 가지 중요한 업데이트를 알려드리게 되어 기쁩니다. 하나는 복원력 향상을 위한 다중 리전 복제이고 다른 하나는 암호화 제어 강화를 위한 고객 관리형 키 지원입니다.
많은 애플리케이션이 Amazon Cognito를 사용하여 사용자-시스템 간 인증을 처리하고 사용자 프로필을 관리합니다. 고가용성을 목표로 구축할 때는 여러 AWS 리전에 걸쳐 일관된 데이터를 보유하는 것이 핵심 접근 방식이었는데, 지금까지는 이러한 일관성을 유지하는 데 상당한 어려움이 있었습니다. 엔지니어링 팀은 리전 간에 구성을 동기화하기 위해 사용자 지정 복제 솔루션을 구축하고 유지 관리하는 데 상당한 시간을 할애했습니다. 리전 간에 사용자 데이터를 수동으로 내보내고 가져오면 잠재적 데이터 노출로 인한 보안 위험이 발생하고 데이터 불일치가 발생할 수 있습니다. 최종 사용자는 리전 전환 과정에서 강제 암호 재설정 및 재인증과 같은 혼란을 겪었습니다. 시스템 간 통신의 경우, 팀은 세컨더리 리전에서 새 앱 클라이언트를 생성해야 했습니다. 즉, 새 리전 발급자가 발급한 액세스 토큰을 수락하도록 애플리케이션을 재구성하고 OAuth로 보호되는 리소스를 업데이트해야 했습니다. 이러한 문제로 인해 여러 전체에서 중단 없는 운영을 유지하기가 어려웠습니다.
다중 리전 복제를 통해 Amazon Cognito는 사용자가 선택한 세컨더리 AWS 리전에 사용자 데이터 및 시스템 비밀의 동기화된 사본을 자동으로 유지 관리합니다. 복제는 프라이머리 리전에서 세컨더리 리전으로 단방향으로 진행됩니다. 여기에는 사용자 프로필, 자격 증명, 풀 구성이 포함됩니다. 세컨더리 리전은 인증 기능 유지에 중점을 두고 읽기 전용 모드로 작동합니다. 기존 세션은 중단되지 않고 계속됩니다.
트래픽을 세컨더리 리전으로 보내야 하는 경우 기존 사용자는 중단 없이 기존 자격 증명으로 계속 로그인할 수 있으며, 두 리전 모두 어느 한 리전에서 발급한 액세스 토큰을 인식하므로 현재 로그인한 사용자는 인증 상태로 유지됩니다. 다중 리전 복제는 소셜 공급자(Amazon, Google, Apple, Facebook)를 통한 페더레이션 로그인, SAML(Security Assertion Markup Language), OIDC(OpenID Connect) 통합을 비롯한 모든 인증 방법 및 API 권한 부여 흐름을 지원합니다. 이 접근 방식은 백엔드 서비스의 고객 대면 애플리케이션과 시스템 간 통신 모두의 가용성을 유지합니다. 인증은 중단 없이 계속되지만 장애 조치 중에는 새 사용자 등록, 프로필 업데이트와 같은 작업을 수행할 수 없습니다.
다중 리전 복제를 구성하기 전에 AWS Key Management Service(AWS KMS)에 저장된 다중 리전 고객 관리형 키를 구성하여 사용자 저장 데이터를 암호화해야 합니다. 이러한 키는 여러 리전에서 일관된 암호화를 제공하는 동시에 암호화 전략을 제어할 수 있게 합니다.
실제 작동 방식
이 데모는 us-west-2(오리건) 리전의 기존 Cognito 사용자 풀에서 시작합니다. us-east-1(버지니아 북부)에 대한 복제를 구성하고 싶습니다. 고객 관리형 키도 이 두 리전에 복제되어 있습니다.
다중 리전 복제 구성은 3단계만 거치면 됩니다. AWS Management Console은 암호화를 위한 사용자 지정 키 설정, 다중 리전 OIDC 엔드포인트 구성, 복제 자체 구성 등의 단계를 안내해 줍니다.
먼저 사용자 지정 AWS KMS 키를 설정하여 저장 데이터를 암호화했습니다.
앞서 생성한 사용자 지정 키를 선택합니다. 또한 Amazon Cognito가 키에 액세스하고 사용할 수 있도록 키 정책을 업데이트합니다. 내 키 정책에 추가할 올바른 IAM 정책 설명이 콘솔에 표시됩니다.
사용자 지정 키가 선택되고 올바르게 구성되면 콘솔이 확인합니다.
둘째, 콘솔 지침에 따라 OIDC 발급자 유형을 구성합니다. 2단계 – 선택 사항에서 Configure를 선택합니다.
이러한 새 엔드포인트로 클라이언트 애플리케이션을 업데이트해야 합니다. 이는 필수 변경 사항이므로 서버 측 애플리케이션을 재배포하고 App Store 및 Google Play의 모바일 앱에 대한 업데이트를 제출해야 합니다. 엔드포인트를 업데이트하지 않으면 더 이상 이전 엔드포인트에 대한 요청이 제대로 라우팅되지 않기 때문에 사용자가 혼란을 겪게 됩니다.
다음 화면에서 Updated를 선택합니다. 새 URL을 기록해 둡니다. 변경 내용을 확인하고 Change issuer type을 선택합니다.
마지막으로 복제의 대상 리전을 선택합니다. 사용자 지정 암호화 키가 복제되는 리전만 선택할 수 있습니다. 대상 리전을 선택한 후 Create를 선택합니다.
.
서비스가 복제를 준비합니다. 소요 시간은 사용자 풀의 데이터 양에 따라 달라집니다.
복제된 사용자 풀이 준비되면 수동으로 활성화합니다.
복제 상태가 Active로 바뀝니다. 트래픽을 복제본으로 보낼 준비가 되었습니다.
추가 구성
콘솔을 사용하면 계획해야 하는 추가 구성을 추적할 수 있습니다. 사용자 지정 인증 흐름이나 SMS 또는 이메일 알림에 Lambda 함수를 사용하는 경우 새 리전에도 이러한 리소스를 배포하고 구성해야 합니다.
마찬가지로, 인증 트래픽을 대상 리전으로 전달하기 전에 대상 리전에서 로그 스트리밍 또는 AWS WAF 구성을 수동으로 구성해야 합니다.
상태 확인 및 장애 조치
프라이머리 및 세컨더리 리전 엔드포인트가 모두 활성 상태를 유지하며 항상 트래픽을 처리할 준비가 되어 있습니다. 시스템 상태를 모니터링하고 장애 조치를 관리하려면 애플리케이션의 특정 요구 사항 및 보안 태세에 맞는 전략을 설계해야 합니다. 상태 확인을 구현하여 프라이머리 리전의 인증 서비스 상태를 모니터링하고 장애 조치 시작 시기에 대한 기준을 정의할 수 있습니다. 이러한 확인에서는 오류율, 지연 시간 패턴 또는 특정 서비스 알림을 찾을 수 있습니다.
모니터링 시스템에서 장애 조치 기준을 충족하는 문제를 감지하면 DNS 업데이트를 통해 트래픽을 세컨더리 리전으로 리디렉션할 수 있습니다. 이 접근 방식을 사용하면 보안을 유지하면서 장애 조치 프로세스를 제어할 수 있습니다. 사용량이 적은 시간대에 트래픽 일부를 리디렉션하면서 세컨더리 리전에서 예상대로 인증이 계속 작동하는지 확인하여 장애 조치 전략을 테스트해 보세요.
사용자 지정 도메인과 함께 관리형 로그인 및 페더레이션을 사용하는 경우 Amazon Route 53 상태 확인 ID를 제공하여 내장된 트래픽 라우팅 기능을 사용할 수도 있습니다.
요금 및 가용성
다중 리전 복제는 현재 Essentials 및 Plus 티어를 사용하는 Amazon Cognito 고객에게 추가 기능으로 제공됩니다. 사용자 인증의 경우 추가 비용은 Essentials 티어 고객의 경우 복제 리전별 월 활성 사용자당 0.0045 USD, Plus 티어 고객의 경우 복제 리전별 월 활성 사용자당 0.006 USD입니다. 시스템 간(M2M) 인증의 경우, 성공적인 토큰 발급에 대한 표준 볼륨 기반 요금 외에 30%가 추가 요금으로 부과됩니다. 자세한 요금 정보는 Amazon Cognito 요금을 참조하세요.
다중 리전 복제는 미국 동부(오하이오, 버지니아 북부), 미국 서부(캘리포니아 북부, 오리건), 아시아 태평양(뭄바이, 서울, 싱가포르, 시드니, 도쿄), 캐나다(중부), 유럽(프랑크푸르트, 아일랜드, 런던, 파리, 스톡홀름), 남아메리카(상파울루) 리전에서 사용할 수 있습니다.
이러한 리전을 모두 복제의 소스 또는 대상으로 사용할 수 있습니다.
Essentials 및 Plus 티어에서는 고객 관리형 키가 지원됩니다. 이 지원은 미국 동부(오하이오, 버지니아 북부), 미국 서부(캘리포니아 북부, 오리건), 아프리카(케이프타운), 아시아 태평양(홍콩, 하이데라바드, 자카르타, 말레이시아, 멜버른, 뭄바이, 뉴질랜드, 오사카, 서울, 싱가포르, 시드니, 태국, 도쿄), 캐나다(중부), 캐나다 서부(캘거리), 유럽(프랑크푸르트, 아일랜드, 런던, 밀라노, 파리, 스페인, 스톡홀름, 취리히), 이스라엘(텔아비브), 멕시코(중부), 남아메리카(상파울루), AWS GovCloud(미국 동부, 미국 서부) 리전에서 사용할 수 있습니다.
고객과의 대화를 통해 보안 요구 사항을 충족하면서 리전별 인시던트 발생 시 비즈니스 연속성을 유지하는 것이 최우선 과제라는 것을 알게 되었습니다. 다중 리전 복제는 복잡한 복제 로직을 직접 관리하지 않고도 복원력이 더 뛰어난 애플리케이션을 구축할 수 있는 기능을 제공합니다. 사용자 데이터 및 구성의 자동 동기화는 보안을 유지하면서 운영 오버헤드를 줄여줍니다.
규제 대상 업계의 고객을 위해 고객 관리형 키에 대한 새로운 지원을 통해 데이터 암호화에 대한 추가 제어 기능을 제공합니다. 이제 자체 암호화 키를 사용하여 사용자 저장 데이터를 보호할 수 있으므로 의료 및 금융 서비스와 같은 업계의 규제 요구 사항을 충족하는 데 도움이 됩니다.
다중 리전 복제 및 고객 관리형 키 암호화를 시작하려면 Amazon Cognito 콘솔을 방문하세요. 또는 설명서에서 자세한 설정 지침을 참조하세요. 여러분이 어떻게 이 기능을 활용하여 애플리케이션 아키텍처를 강화했는지 듣고 싶습니다.






