2단계: 캐시에 데이터 읽기 및 쓰기 - 아마존 ElastiCache

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

2단계: 캐시에 데이터 읽기 및 쓰기

이 섹션에서는 Amazon EC2 인스턴스를 생성했고 이 인스턴스에 연결할 수 있다고 가정합니다. 작업 방법에 대한 지침은 Amazon EC2 시작 안내서를 참조하세요.

기본적으로 기본 VPC에 캐시를 ElastiCache 생성합니다. 기본 VPC에서도 EC2 인스턴스를 생성해야 캐시에 연결할 수 있습니다.

구성

시작하기 전에 액세스에 사용할 수 있는 올바른 포트가 있는지 확인하세요.

기본 포트: 11211

읽기 최적화된 포트: 11212

서버리스 Memcached 캐시는 동일한 호스트 이름을 가진 두 개의 포트를 광고합니다. 기본 포트는 OSS Memcached와 동일한 일관성을 보장하면서 쓰기 및 읽기를 허용합니다. 읽기 최적화 포트를 통해 쓰기가 가능하고, 지연 시간이 짧고 최종적으로 일관성이 유지되는 읽기가 가능합니다.

캐시 엔드포인트 확인

AWS Management Console

콘솔을 사용하여 캐시의 엔드포인트를 찾으려면: ElastiCache

  1. https://console.aws.amazon.com/elasticache/ 에서 AWS Management Console 로그인하고 아마존 ElastiCache 콘솔을 엽니다.

  2. 콘솔 왼쪽의 탐색 창에서 Memcached 캐시를 선택합니다.

  3. 콘솔의 오른쪽에서 앞서 생성한 캐시의 이름을 클릭합니다.

  4. 캐시 세부 정보에서 캐시 엔드포인트를 찾아 복사합니다.

AWS CLI

다음 AWS CLI 예제는 describe-serverless-caches 명령을 사용하여 새 캐시의 엔드포인트를 찾는 방법을 보여줍니다. 명령을 실행한 후 '엔드포인트' 필드를 찾습니다.

Linux

aws elasticache describe-serverless-caches \ --serverless-cache-name CacheName

Windows

aws elasticache describe-serverless-caches ^ --serverless-cache-name CacheName

OpenSSL을 사용하여 연결하는 방법에 대한 내용은 ElastiCache 전송 중 암호화 () TLS 섹션을 참조하세요.

Memcached Java 클라이언트를 사용하여 연결하는 방법에 대한 자세한 내용은 ElastiCache 전송 중 암호화 () TLS 섹션을 참조하세요.

<?php $cluster_endpoint = "mycluster.serverless.use1.cache.amazonaws.com"; $server_port = 11211; /* Initialize a persistent Memcached client in TLS mode */ $tls_client = new Memcached('persistent-id'); $tls_client->addServer($cluster_endpoint, $server_port); if(!$tls_client->setOption(Memcached::OPT_USE_TLS, 1)) { echo $tls_client->getLastErrorMessage(), "\n"; exit(1); } $tls_config = new MemcachedTLSContextConfig(); $tls_config->hostname = '*.serverless.use1.cache.amazonaws.com'; $tls_config->skip_cert_verify = false; $tls_config->skip_hostname_verify = false; $tls_client->createAndSetTLSContext((array)$tls_config); /* store the data for 60 seconds in the cluster */ $tls_client->set('key', 'value', 60); ?>

https://pymemcache.readthedocs.io/en/latest/getting_started.html 참조

import ssl from pymemcache.client.base import Client context = ssl.create_default_context() cluster_endpoint = <To be taken from the AWS CLI / console> target_port = 11211 memcached_client = Client(("{cluster_endpoint}", target_port), tls_context=context) memcached_client.set("key", "value", expire=500, noreply=False) assert self.memcached_client.get("key").decode() == "value"

https://github.com/electrode-io/memcachehttps://www.npmjs.com/package/memcache-client 참조

npm i memcache-client를 통해 설치합니다.

애플리케이션에서 다음과 같이 Memcache TLS 클라이언트를 생성합니다.

var memcache = require("memcache-client"); const client = new memcache.MemcacheClient({server: "{cluster_endpoint}:11211", tls: {}}); client.set("key", "value");

https://crates.io/crates/memcachehttps://github.com/aisk/rust-memcache 참조

// create connection with to memcached server node: let client = memcache::connect("memcache+tls://<cluster_endpoint>:11211?verify_mode=none").unwrap(); // set a string value client.set("foo", "bar", 0).unwrap();

https://github.com/bradfitz/gomemcache 참조

c := New(net.JoinHostPort("{cluster_endpoint}", strconv.Itoa(port))) c.DialContext = func(ctx context.Context, network, addr string) (net.Conn, error) { var td tls.Dialer td.Config = &tls.Config{} return td.DialContext(ctx, network, addr) } foo := &Item{Key: "foo", Value: []byte("fooval"), Flags: 123} err := c.Set(foo)

https://github.com/petergoldstein/dalli 참조

require 'dalli' ssl_context = OpenSSL::SSL::SSLContext.new ssl_context.ssl_version = :SSLv23 ssl_context.verify_hostname = true ssl_context.verify_mode = OpenSSL::SSL::VERIFY_PEER client = Dalli::Client.new("<cluster_endpoint>:11211", :ssl_context => ssl_context); client.get("abc")

https://github.com/cnblogs/ 참조 EnyimMemcachedCore

"MemcachedClient": { "Servers": [ { "Address": "{cluster_endpoint}", "Port": 11211 } ], "UseSslStream": true }

이제 3단계: (선택 사항) 정리 섹션으로 이동합니다.