AWS 기술 블로그

Amazon ElastiCache Valkey 시작하기

이 글은 AWS Database Delivery Blog에 게시된 Get started with Amazon ElastiCache for Valkey by Madelyn Olson, Goumi Viswanathan, and Siva Karuturi 을 한국어 번역 및 편집하였습니다.

Amazon ElastiCache는 서버리스 가격이 33% 저렴하고 자체 설계(노드 기반) 클러스터 가격이 다른 지원 엔진보다 20% 저렴한 Valkey 버전 7.2에 대한 지원을 발표했습니다. Valkey용 ElastiCache 서버리스를 사용하면 고객은 1분 안에 캐시를 생성하고 월 $6의 저렴한 비용으로 시작할 수 있습니다. Valkey는 40개 이상의 회사가 지원하는 Linux Foundation이 관리하는 오픈 소스, 고성능, 키-값 데이터 저장소입니다. Valkey는 오랜 Redis OSS 기여자 및 유지 관리 담당자가 개발한 Redis OSS를 대체하는 버전으로, 2024년 3월 프로젝트가 시작된 이래 빠르게 채택되었습니다. AWS는 Valkey 프로젝트에 적극적으로 기여하고 있습니다. 이번 출시를 통해 고객은 ElastiCache가 제공하는 13년 이상의 운영 우수성, 보안 및 안정성을 활용하는 동시에 오픈 소스 기술을 기반으로 구축된 완전 관리형 환경의 이점을 누릴 수 있습니다.

이 게시물에서는 Valkey용 ElastiCache의 개요와 이점, Redis OSS용 ElastiCache를 Valkey용 ElastiCache로 업그레이드하는 방법을 소개합니다.

Valkey용 ElastiCache 개요

Amazon ElastiCache는 최신 애플리케이션에 비용 최적화된 실시간 성능을 제공하는 완전 관리형 Valkey, Memcached 및 Redis OSS 호환 캐싱 서비스입니다. ElastiCache는 마이크로초 응답 시간으로 초당 수백만 개의 작업으로 확장되며 엔터프라이즈급 보안과 안정성을 제공합니다. Valkey용 ElastiCache를 사용하면 자체 설계(노드 기반) 클러스터와 서버리스 캐싱 배포 옵션 중에서 선택할 수 있습니다. 자동 확장, 다중 AZ 배포를 통한 고가용성, 지역 간 복제 등의 기능을 활용하여 비즈니스 연속성과 재해 복구를 보장할 수 있습니다. AWS는 ElastiCache를 통해 Valkey를 관리형 서비스로 제공함으로써 고객이 Valkey를 직접 관리하는 운영 오버헤드 없이 광범위한 기능의 이점을 누릴 수 있도록 지원합니다.

Valkey용 ElastiCache의 이점

  • 저렴한 가격: 33% 할인된 가격과 월 6달러부터 시작하는 100MB의 최소 데이터 스토리지로 90% 더 낮은 Valkey용 ElastiCache Serverless의 비용을 더욱 최적화할 수 있습니다. Valkey 자체 설계(노드 기반) 클러스터용 ElastiCache에서는 다른 엔진에 비해 최대 20% 저렴한 비용의 이점을 누릴 수 있습니다. 또한 ElastiCache는 인스턴스 패밀리 및 AWS 리전 내 예약 노드에 대한 크기 유연성을 지원합니다. ElastiCache 예약 노드를 사용하는 경우 Redis OSS용 ElastiCache에서 Valkey용 ElastiCache로 전환하면 동일한 제품군 내의 모든 노드 크기에 걸쳐 기존에 할인된 예약 노드 요금이 유지되고 예약 노드 할인을 통해 더 많은 가치를 얻을 수도 있습니다.
  • 운영 우수성: Valkey용 ElastiCache는 AWS의 보안, 운영 우수성, 99.99% 가용성 및 안정성을 활용하면서 오픈 소스 기술을 기반으로 구축된 완전 관리형 환경을 제공합니다.
  • 성능: 고객은 성능에 가장 민감한 실시간 애플리케이션을 구동하기 위해 ElastiCache를 선택합니다. 이는 마이크로초 단위의 읽기 및 쓰기 대기 시간을 제공할 수 있으며 단일 자체 설계(노드 기반) 클러스터에서 초당 5억개의 요청(RPS)까지 확장할 수 있습니다.
  • API 호환성: Valkey용 ElastiCache는 Redis OSS API 및 데이터 형식과 호환되며 고객은 코드를 다시 작성하거나 아키텍처를 변경할 필요 없이 애플리케이션을 마이그레이션할 수 있습니다.
  • 무중단 마이그레이션: Redis OSS용 ElastiCache의 기존 사용자는 가동 중지 시간 없이 Valkey용 ElastiCache로 빠르게 업그레이드할 수 있습니다.
  • 지속적인 혁신: Valkey를 지원하겠다는 AWS의 약속은 고객이 안정적인 솔루션을 채택할 뿐만 아니라 미래의 성장과 혁신을 위한 솔루션을 채택하도록 보장합니다. Valkey 커뮤니티가 계속해서 프로젝트를 개발하고 향상함에 따라 AWS 고객은 애플리케이션 경쟁력을 유지하는 지속적인 개선과 새로운 기능의 혜택을 누릴 수 있습니다. AWS는 Valkey에도 적극적으로 기여하고 있으며 Amazon ElastiCache 및 Amazon MemoryDB에서 Valkey에 대한 지원을 발표하여 자세한 내용을 확인할 수 있습니다.

솔루션 개요

다음 몇 단계만으로 Valkey용 Amazon ElastiCache를 시작할 수 있습니다.

  1. Valkey 캐시용 ElastiCache 서버리스를 생성합니다.
  2. Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 생성합니다.
  3. valkey-cli 유틸리티를 다운로드하고 설정합니다.
  4. 애플리케이션에서 캐시에 연결합니다.

다음 섹션에서는 이러한 단계를 안내합니다. 그런 다음 데이터베이스에서 기본 작업을 수행하는 방법을 보여줍니다. 또한 Redis OSS용 ElastiCache에서 Valkey용 ElastiCache로 업그레이드하는 방법도 논의합니다.

Valkey 캐시용 ElastiCache 서버리스 생성

AWS Management Console, AWS 명령줄 인터페이스(AWS CLI) 또는 ElastiCache API를 사용하여 Valkey 캐시용 ElastiCache 서버리스를 생성할 수 있습니다. 다음 코드는 AWS CLI를 사용하여 Valkey 캐시용 ElastiCache 서버리스를 생성하는 예입니다. ElastiCache에서 Valkey 리소스를 사용하려면 CLI 버전이 최신인지 확인하세요.

aws elasticache create-serverless-cache \
--serverless-cache-name ec-valkey-serverless \
--engine valkey \
--region us-east-1

그러면 기본 VPC에 Valkey용 ElastiCache 서버리스 캐시가 생성되고 기본 보안 그룹이 사용됩니다.

describe-serverless-caches 명령을 사용하여 ElastiCache 서버리스 캐시 생성 상태를 확인할 수 있습니다.

aws elasticache describe-serverless-caches \
--serverless-cache-name ec-valkey-serverless \
--region us-east-1 
{
    "ServerlessCaches": [
        {
            "ServerlessCacheName": "ec-valkey-serverless",
            "Description": " ",
            "CreateTime": "2024-08-14T21:28:11.116000+00:00",
            "Status": "available",
            "Engine": "valkey",
            "MajorEngineVersion": "7",
            "FullEngineVersion": "7.2",
            "SecurityGroupIds": [
                "sg-bba254aa"
            ],
            "Endpoint": {
                "Address": "ec-valkey-serverless-xxx.cache.amazonaws.com",
                "Port": 6379
            },
            "ReaderEndpoint": {
                "Address": "ec-valkey-serverless-xxx.cache.amazonaws.com",
                "Port": 6380
            },
            "ARN": "arn:aws:elasticache:xxx:ec-valkey-serverless",
            "SubnetIds": [
                "subnet-x",
                "subnet-y",
                "subnet-z"
            ],
            "SnapshotRetentionLimit": 0,
            "DailySnapshotTime": "03:00"
        }
    ]
}

Valkey 캐시용 ElastiCache 서버리스에 연결하기 위해 EC2 설정

ElastiCache는 동일한 Amazon Virtual Private Cloud(Amazon VPC)에 있는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 통해 또는 VPC 피어링을 사용하여 다른 Amazon VPC에 있는 EC2 인스턴스를 통해 액세스할 수 있습니다.

EC2 시작하기를 사용하여 EC2 인스턴스를 생성합니다. Valkey 캐시용 ElastiCache 서버리스는 포트 6379와 포트 6380을 모두 사용합니다. EC2 인스턴스에서 Valkey 명령을 성공적으로 연결하고 실행하려면 보안 그룹에서 필요에 따라 이러한 포트에 대한 액세스를 허용해야 합니다.

valkey-cli 다운로드 및 설정

다음 명령을 실행하여 EC2 인스턴스에 연결하고 valkey-cli 유틸리티를 다운로드합니다.

sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel -y 
wget https://github.com/valkey-io/valkey/archive/refs/tags/7.2.7.tar.gz 
tar xvzf 7.2.7.tar.gz 
cd valkey-7.2.7/ 
make BUILD_TLS=yes install

Valkey-cli를 사용하여 Valkey 엔진에 대해 명령을 연결하고 실행하는 방법에 대한 자세한 지침은 valkey-cli 설명서를 참조하세요. valkey-cli를 설치할 때 TLS에 대한 지원을 구축하는 것이 중요합니다. Valkey 캐시용 ElastiCache 서버리스는 TLS가 활성화된 경우에만 액세스할 수 있습니다.

읽기 및 쓰기를 위해 Valkey 캐시에 연결

Valkey 캐시용 ElastiCache 서버리스에 연결하려면 explain-serverless-caches AWS CLI 명령을 사용하여 새 서버리스 캐시에 대한 엔드포인트를 얻으십시오. 두 개의 끝점을 찾을 수 있습니다.

aws elasticache describe-serverless-caches \
--serverless-cache-name ec-valkey-serverless \
--region us-east-1 
            "Endpoint": {
                "Address": "ec-valkey-serverless-xxx.cache.amazonaws.com",
                "Port": 6379
            },
            "ReaderEndpoint": {
                "Address": "ec-valkey-serverless-xxx.cache.amazonaws.com",
                "Port": 6380
            }

valkey-cli 유틸리티를 사용하여 Valkey 캐시용 ElastiCache 서버리스에 연결합니다.

valkey-cli -h ec-valkey-serverless-xxx.cache.amazonaws.com -p 6379 -c --tls
  • -h = 호스트 이름
  • -p = 포트
  • -c = 클러스터 모드
  • –tls = TLS 활성화 클러스터

이제 Valkey 캐시용 ElastiCache Serverless에 대해 기본 GET 및 SET 작업을 실행할 준비가 되었습니다. 다음은 Valkey에서 HASH 객체를 생성하는 HSET 작업의 예입니다. Valkey 해시는 필드-값 쌍 모음을 저장하는 데 사용되는 데이터 구조입니다. 해시는 여러 속성(예: 이름, 나이, 이메일)이 있는 사용자 프로필과 같이 개체를 나타내거나 관련 데이터를 단일 엔터티에 저장해야 할 때 유용합니다.

ec-valkey-serverless-xxx.cache.amazonaws.com:6379> hset car:1 make ferrari model sf90spider year 2024 engine "4.0 L V8" horsepower 769hp transmission "8-speed auto" price 580000
(integer) 7
ec-valkey-serverless-xxx.cache.amazonaws.com:6379>

이는 제조업체, 모델, 연도, 엔진, 마력, 변속기 및 가격과 같은 속성을 가진 Hash 개체 car:1을 생성합니다.

이제 HMGET 또는 HGETALL 작업을 사용하여 개별 또는 모든 필드 값 쌍을 검색할 수 있습니다.

ec-valkey-serverless-xxx.cache.amazonaws.com:6379> HMGET car:1 make model price
1) "ferrari"
2) "sf90spider"
3) "580000"
ec-valkey-serverless-xxx.cache.amazonaws.com:6379>

Redis OSS용 ElastiCache에서 Valkey용 ElastiCache로 업그레이드

Redis OSS용 ElastiCache의 기존 사용자라면 가동 중지 시간 없이 Valkey용 ElastiCache로 빠르게 업그레이드할 수 있습니다. 다음 예에서는 Valkey 캐시용 ElastiCache로 업그레이드할 준비가 된 기존 Redis OSS용 ElastiCache를 보여줍니다.

1. 탐색 창에서 Redis OSS caches를 선택한 후 Modify(수정)을 선택하여 ElastiCache 콘솔에서 업그레이드 프로세스를 시작합니다.

2. ElastiCache 수정 창의 클러스터 설정 아래에 Redis OSS 및 Valkey를 포함한 여러 엔진 옵션이 표시됩니다. 엔진 옵션으로 Valkey를 선택하고 Preview Changes를 선택하세요.

3. 다음 화면에는 수정 사항 요약이 표시됩니다. Apply Immediately(즉시 적용)에서 Yes(예)를 선택하여 Redis OSS에서 Valkey로의 엔진 변경을 확인한 다음 Modify(수정)을 선택합니다. Modify(수정)을 선택하면 클러스터 수정 작업이 성공적으로 시작되었다는 알림이 표시됩니다.

4. 기존 Redis OSS용 ElastiCache 캐시의 상태는 ‘수정 중‘입니다.

5. 업그레이드에 성공하면 elasticache-redisoss-cache-cluster가 더 이상 Redis OSS 캐시 아래에 표시되지 않습니다. 대신 Valkey caches 아래에 나타납니다.

6. 이제 애플리케이션 중단을 최소화하면서 엔진을 Redis OSS에서 Valkey로 업그레이드했습니다.

정리하기

최소 권한의 원칙을 유지하고 향후 요금이 발생하지 않도록 하려면 이 게시물의 일부로 생성한 리소스를 삭제하세요. ElastiCache 클러스터(자세한 내용은 클러스터 삭제 참조) 및 EC2 인스턴스(delete-instance)를 삭제합니다.

결론

이 게시물에서는 Valkey 캐시용 ElastiCache를 생성하는 방법, Valkey 캐시용 ElastiCache Serverless에 연결하기 위해 EC2(Elastic Compute Cloud) 인스턴스를 설정하는 방법, 읽고 쓰기 위해 Valkey 캐시용 ElastiCache Serverless에 연결하는 방법을 설명했습니다. . 또한 Redis OSS 캐시용 ElastiCache에서 Valkey 캐시용 ElastiCache로 업그레이드하는 예도 살펴보았습니다.

Amazon ElastiCache에 Valkey 지원이 추가된 것은 데이터베이스 애플리케이션을 위한 강력한 오픈 소스 솔루션을 제공하려는 AWS의 노력에서 중요한 진전을 의미합니다. 아직 가입하지 않은 경우 ElastiCache 페이지에서 시작하기를 선택하고 가입 프로세스를 완료할 수 있습니다. 가입한 후 Valkey용 Amazon ElastiCache 시작하기 안내서가 포함된 ElastiCache 설명서를 참조하십시오. Valkey용 ElastiCache에 익숙해지면 ElastiCache 콘솔, AWS CLI 또는 ElastiCache API를 사용하여 몇 분 안에 서버리스 클러스터를 생성할 수 있습니다.

Yujin Cho

Yujin Cho

조유진 테크니컬 어카운트 매니저는 다양한 데이터베이스의 운영과 데이터 분석 경험을 바탕으로 고객이 데이터 기반의 비즈니스 목표를 달성할 수 있도록 고객과 함께 효율적인 아키텍처와 안정적인 운영 환경을 구성하기 위해 노력하고 있습니다.