1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS日記21 (Amazon ElastiCache)

Last updated at Posted at 2020-11-30

はじめに

今回は Amazon ElastiCache を試します。
サポートされているエンジンのMemcached ( Amazon ElastiCache for Memcached ) を試します。
[Lambda関数・SAMテンプレート]
(https://github.com/tanaka-takurou/serverless-elasticache-page-go)

準備

AWS SAM の準備をします

[Amazon ElastiCacheの資料]
Amazon ElastiCache

AWS SAM テンプレート作成

AWS SAM テンプレートで API-Gateway , Lambda, Amazon ElastiCache の設定をします。

[参考資料]
AWS SAM テンプレートを作成する

Amazon ElastiCacheの設定は以下の部分

  ElastiCacheSecurityGroup:
    Type: 'AWS::EC2::SecurityGroup'
    Properties:
      GroupDescription: 'Elasticache Security Group'
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: '11211'
          ToPort: '11211'
          CidrIp: '0.0.0.0/0'
  ElastiCacheCacheCluster:
    Type: AWS::ElastiCache::CacheCluster
    Properties:
      AutoMinorVersionUpgrade: 'true'
      AZMode: single-az
      CacheNodeType: cache.t2.micro
      Engine: memcached
      NumCacheNodes: '1'
      VpcSecurityGroupIds:
        - !GetAtt ElastiCacheSecurityGroup.GroupId

Lambda関数作成

※ Lambda関数は aws-lambda-go を利用しました。Memcacheパッケージは bradfitz/gomemcache を利用しました。

memcache に値を入れるには gomemcacheの Set を使う

func setItem(key string, value string) {
	if memcacheClient == nil {
		memcacheClient = getMemcacheClient()
	}
	memcacheClient.Set(&memcache.Item{Key: itemKey, Value: []byte(value)})
	return
}

memcache から値を取得するには gomemcacheの Get を使う

func getItem(key string)(string, error) {
	if memcacheClient == nil {
		memcacheClient = getMemcacheClient()
	}
	it, err := memcacheClient.Get(key)
	if err != nil {
		return "", err
	}
	return string(it.Value), nil
}

終わりに

Redis( Amazon ElastiCache for Redis ) もサポートされているため、今後試していこうと思います。

参考資料
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?