サブネットの作成
- 「VPC」→「仮想プライベートクラウド」→「サブネット」
サブネットグループの作成
- 「Amazon ElastiCache」→「設定」→「サブネットグループ」→「サブネットグループを作成」クリック
- サブネットグループを作成
- サブネットグループの設定
- 名前:適当
- 説明 - オプション:適当
- VPC ID:該当の VPC を選択。作ってなかったら作成
- 選択済みの サブネット
- 「作成」クリック
セキュリティグループの作成
- 「EC2」→「ネットワーク&セキュリティ」→「セキュリティグループ」→「セキュリティグループを作成」クリック
- セキュリティグループ名
- 説明
- VPC
- インバウンドルール、アウトバウンドルール
- タイプ:カスタム TCP
- ポート範囲:11211
- ソース:IPv4 0.0.0.0/0
Memcached キャッシュの作成
- 「Amazon ElastiCache」→「リソース」→「Memcached キャッシュ」→「Memcached キャッシュを作成」をクリック
- Memcached キャッシュを作成
- クラスターの作成方法を選択
- デプロイオプション:独自のキャッシュを設計、標準作成
- ロケーション
- クラスター情報 (cluster)
- クラスター設定
- エンジンバージョン:最新バージョンぽいのを選択
- ポート:11211
- パラメータグループ:自動的に選択されるぽい
- ノードのタイプ:cache.t4g.micro (一旦安価のタイプを選択)
- ノードの数:1
- 接続性
- ネットワークタイプ:IPv4
- サブネットグループ:既存のサブネットグループを選択
- サブネットグループ:作成したサブネットグループを選択
- アベイラビリティーゾーンの配置
- アベイラビリティーゾーン:接続するEC2インスタンスと同じゾーンを選択(コストの関係)
- 「次へ」クリック
- 詳細設定
- セキュリティ
- 転送中の暗号化:チェックを外す
- チェックして試すと使用したライブラリではうまく動かなかった
- 選択済みの セキュリティグループ:
- メンテナンス
- メンテナンス期間:どちらでも
- Amazon SNS 通知のトピック:必要があれば
- 「次へ」クリック
- 問題なければ「作成」クリック
- 稼働まで約10分かかる
接続
EC2 インスタンス
main.go
bradfitz/gomemcache - Github
package main
import (
"fmt"
"github.com/bradfitz/gomemcache/memcache"
)
func main() {
key := "foo"
memcached := memcache.New("コピーしたエンドポイント")
memcached.Set(&memcache.Item{Key: key, Value: []byte("my value")})
item, err := memcached.Get(key)
if err != nil {
fmt.Print(err.Error(), "\n")
return
}
fmt.Printf("%s is %s\n", key, string(item.Value))
}
確認
$ cd /path/to/project
$ go mod init example.com/yourname/yourproject
$ go mod tidy
$ go run main.go
foo is my value