Amazon Web Services 한국 블로그

Amazon ElastiCache, Redis 6 버전 지원 (서울 리전 포함)

Amazon ElastiCache에 대한 지난 Redis 5.0 호환성 제공 이후, 5.0.6과 같은 업스트림 지원을 비롯하여 Amazon ElastiCache for Redis에서 많은 사항이 개선되었습니다.

올해 초반에는 한 개 리전의 클러스터를 최대 2개의 다른 리전의 클러스터로 복제할 수 있는 Global Datastore for Redis를 발표했습니다. 최근 18개의 추가 엔진 및 노드 수준 CloudWatch 지표를 활성화하여 Redis 플릿을 모니터링하는 기능을 개선했습니다. 또한 하나 이상의 특정 ElastiCache 리소스에 대한 AWS Identity and Access Management(IAM) 보안 주체 권한을 할당할 수 있도록 리소스 수준 권한 정책에 대한 지원을 추가했습니다.

오늘 Amazon ElastiCache for Redis에 대한 Redis 6 호환성 기능을 발표하게 되어 기쁘게 생각합니다. 여기에 Amazon ElastiCache for Redis에 다음과 같은 몇 가지 새롭고 중요한 기능을 제공합니다.

  • 관리형 역할 기반 액세스 제어 – Amazon ElastiCache for Redis 6은 이제 Redis 명령에 대한 RBAC(역할 기반 액세스 제어)를 설정하는 데 사용할 수 있는 사용자 및 사용자 그룹을 생성하고 관리할 수 있는 기능을 제공합니다. 이제 여러 애플리케이션이 서로의 데이터에 액세스하지 않고도 동일한 Redis 클러스터를 사용하도록 지원하여 보안 경계를 유지하면서 아키텍처를 간소화할 수 있습니다. 또한 세분화된 액세스 제어 및 권한 부여를 활용하여 관리 및 읽기 전용 사용자 그룹을 생성할 수도 있습니다. Amazon ElastiCache는 오픈 소스 Redis 6에 도입된 새로운 ACL(액세스 제어 목록)을 개선하여 관리형 RBAC 환경을 제공하므로 여러 Amazon ElastiCache for Redis 클러스터에 대한 액세스 제어를 쉽게 설정할 수 있습니다.
  • 클라이언트 측 캐싱 – Amazon ElastiCache for Redis 6은 서버 측 개선 사항과 함께 효율적인 클라이언트 측 캐싱을 제공하여 애플리케이션 성능을 더욱 향상시킵니다. Redis 클러스터는 이제 클라이언트 요청을 추적하고 클라이언트에 저장된 데이터에 대한 무효화 메시지를 전송하여 클라이언트 측 캐싱을 지원합니다. 또한 클라이언트가 Redis 클러스터의 알림 세트를 구독하도록 허용하는 브로드캐스트 모드를 활용할 수도 있습니다.
  • 중요한 운영 개선 사항 – 이 릴리스에는 애플리케이션 가용성과 안정성을 향상시키는 몇 가지 개선 사항도 포함되어 있습니다. 특히, Amazon ElastiCache는 지연 시간과 스냅샷 수행에 걸리는 시간을 줄여 메모리 부족 상태, 특히 중대형 키가 있는 워크로드에 대한 복제를 개선했습니다. 오픈 소스 Redis 개선 사항에서는 만료된 키를 더 빠르게 제거하는 만료 알고리즘이 개선되었으며 다양한 버그 수정이 포함됩니다.

오픈 소스 Redis 6은 전송 중 암호화 지원도 발표했습니다. 이 기능은 Amazon ElastiCache for Redis 4.0.10 이상에서 이미 사용 가능한 기능입니다. 이번 Amazon ElastiCache for Redis 6 릴리스는 Amazon ElastiCache for Redis의 전송 중 암호화에 대한 기존 지원에는 영향을 주지 않습니다.

신규 또는 기존 Redis 6 클러스터에 RBAC를 적용하려면 먼저 사용자 및 사용자 그룹을 생성했는지 확인해야 합니다. 아래에서 이 작업을 수행하는 프로세스를 검토하겠습니다.

역할 기반 액세스 제어 사용 – 작동 방식
Redis AUTH 명령으로 사용자를 인증하는 대신, Amazon ElastiCache for Redis 6은 RBAC(역할 기반 액세스 제어)를 제공합니다. RBAC를 통해 사용자를 생성하고 액세스 문자열을 통해 사용자에게 특정 권한을 할당합니다.

사용자 및 사용자 그룹을 생성, 수정 및 삭제하려면 ElastiCache 콘솔에서 [사용자 관리(User Management)] 및 [사용자 그룹 관리(User Group Management)] 섹션을 선택해야 합니다.

ElastiCache는 사용자 ID 및 사용자 이름이 “default”인 기본 사용자를 자동으로 구성한 다음, [사용자 그룹 관리(User Group Management)]에서 기본 사용자 또는 새로 생성한 사용자를 추가할 수 있습니다.

자신의 암호 및 액세스 설정으로 기본 사용자를 변경하려면 사용자 이름이 “default”로 설정된 새 사용자를 만든 다음, 원래 기본 사용자와 전환할 수 있습니다. 기본 사용자에 대해 강력한 암호를 사용하는 것이 좋습니다.

다음 예제에서는 원래 기본 사용자를 AWS CLI에서 액세스 문자열을 수정한 다른 기본 사용자로 전환하는 방법을 보여줍니다.

$ aws elasticache create-user \
 --user-id "new-default-user" \
 --user-name "default" \
 --engine "REDIS" \
 --passwords "a-str0ng-pa))word" \ 
 --access-string "off +get ~keys*"

사용자 그룹을 생성하고 이전에 생성한 사용자를 추가합니다.

$ aws elasticache create-user-group \
  --user-group-id "new-default-group" \
  --engine "REDIS" \
  --user-ids "default"

새 기본 사용자를 원래 기본 사용자로 전환합니다.

$ aws elasticache modify-user-group \
    --user-group-id "new-default-group" \
    --user-ids-to-add "new-default-user" \
    --user-ids-to-remove "default"

또한 modify-user 명령으로 액세스 권한을 변경하거나 사용자 암호를 수정하거나 delete-user 명령으로 특정 사용자를 제거할 수 있습니다. 해당 사용자는 사용자가 속한 모든 사용자 그룹에서 제거됩니다.

마찬가지로, modify-user-group 명령을 사용하여 현재 사용자를 제거하거나 새 사용자를 추가하여 사용자 그룹을 수정하거나, delete-user-group 명령을 사용하여 사용자 그룹을 삭제할 수 있습니다. 이때 그룹에 속한 사용자가 아니라, 사용자 그룹 자체가 삭제됩니다.

사용자 그룹을 생성하고 사용자를 추가한 후에는 사용자 그룹을 복제 그룹에 할당하거나 Redis AUTH와 RBAC 사이에 마이그레이션할 수 있습니다. 자세한 내용은 설명서를 참조하십시오.

ElastiCache에 대한 Redis 6 클러스터 – 시작하기
평소대로 ElastiCache 콘솔, CLI, API 또는 CloudFormation 템플릿을 사용하여 새 Redis 6 클러스터를 시작할 수 있습니다. 여기에서도 콘솔을 사용합니다. 탐색 창에서 Redis를 선택하고 다음 설정으로 [생성(Create)]을 클릭합니다.

[전송 중 암호화(Encryption in-transit)] 확인란을 선택하여 [액세스 제어(Access Control)] 옵션이 나타나는지 확인합니다. [액세스 제어(Access Control)] 옵션 중에서 Redis AUTH 기본 사용자 또는 RBAC 기능별 사용자 그룹 액세스 제어 목록을 선택할 수 있습니다. RBAC를 선택한 경우 사용 가능한 사용자 그룹 중 하나를 선택할 수 있습니다.

클러스터가 몇 분 내에 가동되어 실행됩니다. 기존 클러스터에서 전체 업그레이드 기능을 사용할 수도 있습니다. 클러스터를 선택하여 [작업(Action)] 및 [수정(Modify)]을 클릭합니다. 엔진 버전을 5.0.6 호환 엔진에서 6.x로 변경할 수 있습니다.

정식 출시
이제 모든 AWS 리전에서 Amazon ElastiCache for Redis 6을 사용할 수 있습니다. ElastiCache for Redis 지원 버전 목록은 설명서를 참조하십시오. Amazon ElastiCache에 대한 AWS 포럼이나 AWS Support 또는 계정 팀을 통해 피드백을 보내주십시오.

Channy;