AWSのElastiCacheはノードのタイプをcache.t2.microにしないと無料枠には収まらないので注意

AWSにやられた
AWSを勉強中である。AWSはAmazon Web Serviceのこと。
なんか、クラウド上でなんでもできてスゴイ。そのうち「ネットに住む」っていうアニメやSFみたいな話が現実になるような気さえしてくる。
AWSにユーザー登録すると1年間は無料枠というのをもらえる。なので、EC2のインスタンスをたくさん立ち上げても無料枠内なら請求されることはない。
ふーん。なんとも太っ腹。
どうでも良いかも知れないが、何かと3文字略語が出てくる。EC2はElastic Compute Cloudの略であるそうな。ECCだと英会話教室みたいになるのでCがふたつでEC2なのかどうかは不明。
サービスの中にはRDSというのがあり、MySQL/MariaDBやPostgreSQLそれにOracleやMS SQL Serverもある。SQL ServerはExpressエディションしか無料枠にないが、Oracleは全部無料枠にあるぞ。マジか。
RDSも3文字略語だな。こちらは、Relational Database Service。まんまですな。
AWSの中には「どんだけストレージがあるのよ」という感じではあるが。
試しにEC2のインスタンスをふたつ、RDSをPostgreSQLでひとつ、ロードバランサー(ALB)をひとつ作ってみた。各インスタンスにNode.jsを入れて、npmでexpressやらSocket.ioを入れてチャットのデモを作ってみたりした。
ロードバランサーがELBだとWebSocketがちゃんと通らず機能しないが、ALB(Application Load Balanser)でセッション維持みたいな設定をするとちゃんとできることがわかり、やってみるとちゃんとチャットできた。
しかし、同一のバックエンドに接続していないとメッセージが飛ばない。分散しちゃったが故の弊害である。
調べると、Node.jsのパッケージsocket.io-redisというのを導入すれば、プロセス間通信でセッション情報を共有できるので、分散されてしまっても大丈夫なようである。つまりredisサーバを入れれば良いことがわかった。
AWSには沢山のサービスがある。その中にElastiCacheというのがある。このサービスがredisを提供してくれるものらしい。もう、至れり尽くせりじゃないですかAWS。早速作ってしまうのである(ElastiCacheは省略してないなぁ)。
redisはオンメモリのデータベースみたいである。キャッシュとなっているのもオンメモリならではなのか。
作る方法はWebからやる。AWSのサービスは基本Webブラウザで「ちょいちょい」って操作して作成する。
がしかし、ここに落とし穴が開いているのである。
ちょいちょいって作ると、データベースの大きさがlarge辺りになる。largeがデフォルトなわけね。ElastiCacheにも無料枠があるのだが、無料で使えるのは、microだけ。なので、デフォルトのlargeで作ってしまうと課金されてしまうのである。
ElastiCacheの作成.png
socket.io-redisの動作確認は取れたのではあるが、これで2000円くらい料金が発生してしまった。
EC2のインスタンスを作る画面には「ここが無料枠です」みたいな表示があるのでわかりやすいが、redisサーバを作る画面はにはそのような配慮はない。他にも色々サービスがあるようだが、大きさに気を付けないと余計なコストがかかってしまうので注意しなければ。
しかし、AWS難しいぞ。EC2じゃなくて、ECSの方が自動スケールしてくれるので良さげではあるが、Dockerとか知らないとキツそう。あーまだまだ先が長いなぁ。
全然話が違うがAmazonプライム・ビデオで観れる「シリコンバレー」がとても面白いのでIT業界のみなさんに観て欲しいと思い紹介しておく。

Silicon Valley - Season 1 [Blu-ray]

Silicon Valley - Season 1 [Blu-ray]

  • 出版社/メーカー:
  • メディア: Blu-ray

投稿者プロフィール

asai
asai