2019年5月26日日曜日

【GCP】Cloud Memory を使ってみた

概要

GCP の Redis サービス MemoryStore を使ってみました
インスタンスの作成から redis-cli を使った接続確認まで行いました

環境

  • macOS 10.14.5
  • gcloud 247.0.0

インスタンス作成

まずはインスタンスを作成します
コンソール画面から作成しても OK ですが今回は gcloud を使いました

  • gcloud beta redis instances create myredis --size=1 --region=us-central1 --redis-version=redis_4_0

タイプは「基本」で作成されます
基本はシンプルなシングル構成になります
メモリ容量は最小の 1GB にしています
Redis のバージョンは MemoryStore で使える最新の 4.0 にしています

またインスタンスの作成には beta コマンドを使います

インスタンス確認

create が完了したらインスタンスの状態を確認しましょう

  • gcloud redis instances describe myredis --region=us-central1
authorizedNetwork: projects/pjct-123456/global/networks/default
createTime: '2019-05-22T07:20:21.365383747Z'
currentLocationId: us-central1-b
host: 10.0.0.3
locationId: us-central1-b
memorySizeGb: 1
name: projects/pjct-123456/locations/us-central1/instances/myredis
port: 6379
redisVersion: REDIS_4_0
reservedIpRange: 10.0.0.0/29
state: READY
tier: BASIC

エンドポイントの IP やポートなどが表示されると思います
MemoryStore では FQDN ではなく IP アドレス (10.0.0.3) を使ってアクセスすることになります

MemoryStore は基本的に GCP 内のリソース (Compute Engine VM インスタンス、Google Kubernetes Engine クラスタ、Cloud Functions、App Engine フレキシブル環境、App Engine スタンダード環境) からしかアクセスできません

redis-cli 接続確認

今回は GCE インスタンスを 1 台作成して動作確認しました
また動作確認用の GCE と MemoryStore のインスタンスは同一ネットワーク (default) に所属するようにしてください

  • gcloud redis instances describe myredis --region us-central1 | grep default
authorizedNetwork: projects/pjct-123456/global/networks/default
  • gcloud compute instances describe vm01 | grep ' network:'
network: https://www.googleapis.com/compute/v1/projects/pjct-123456/global/networks/default

GCE に SSH ログインしたら先程確認したエンドポイントに対して動作確認してみます
ちなみに GCE は Ubuntu18.04 LTS のイメージを元に作成しました

  • apt -y install redis-tools
  • redis-cli -h 10.0.0.3
# Server
redis_version:4.0.14
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:c361ea82ce4c0f02
redis_mode:standalone
os:Linux 4.14.94+ x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:6.3.0
process_id:1
run_id:288517b3521abb484270dcf09846499bcc79489f
tcp_port:6379
uptime_in_seconds:985
uptime_in_days:0
hz:10
lru_clock:15006935
executable:/data/redis-server
config_file:/usr/local/etc/redis/redis.conf

こんな感じでホストを指定するだけでアクセスできます

料金

  • Cloud MemoryStore (アイオワ、1GB)・・・$0.049 (参考)
  • GCE (アイオワ、f1.micro)・・・$0.000 (参考)

後始末

Cloud MemoryStore インスタンスの削除

  • gcloud beta redis instances delete myredis --region=us-central1

GCE インスタンスの削除

  • gcloud compute instances delete vm01

最後に

Cloud MemoryStore を試してみました
インスタンスを作成するだけで Redis を使えるようになるので簡単です
注意点としては GCP の特定のリソースのみからしかアクセスできない点です
GCE を使ってグローバルな IP アドレスからポートフォーワードなどすれば外部からでもアクセスできるようになるとは思います

参考サイト

0 件のコメント:

コメントを投稿