AWS EC2でKongを利用してみようとしたら躓いたのでメモ。
aws market placeにあるものを使うとインスタンスの起動までしてくれる。便利。
Kongの記事で「nanoでもすごい性能を発揮したよ!」(参照:Kong、他社API管理製品の14倍の性能を実測)と出てたので、nanoでも動くと思ってインスタンスを作ってみた。
ただ、sshで入っても動いている気配がない。
仕方なく、とりあえず「ベンダーおすすめ!」らしい、「c3.8xlarge」にしてみる。東京リージョンは毎時約2ドル、月で約1,440ドル、日本円で約16万円とかするので動かしっぱなしにはできない。
$ ps aux | grep -i kong
ec2-user 4913 0.0 0.0 432252 14048 ? Ss 12:01 0:00 nginx: master process /usr/local/openresty/nginx/sbin/nginx -p /usr/local/kong -c nginx.conf
どうやらこちらは動いている。nanoのときは出てこなかった行だ。
こちらを参考にコマンドを叩いてみても、ちゃんと動いているっぽい。
ささっと「c3.8xlarge」インスタンスをterminateして、安くて動くものを探す旅に出る。
結論
けっこう長い旅でした。
時間あたりの価格が安いものから試していってみた結果、「t3.medium」インスタンスならばどうやら動く、という結論に達しました。1日(24時間)あたりなら、約138円。開発時に作って使ってサッと消す、であればそこまで高額ではないですね。
表は東京リージョンのもの。ドル円相場は2020年7月26日現在で取得した値、1ドル=106.13円で換算。月の稼働時間は744時間で換算(31日×24時間)。
インスタンスタイプ | ドル/毎時 | RAM(GB) | 月額 | 結果 |
---|---|---|---|---|
t3.nano | $0.007 | 0.5 | 553円 | × |
t3.micro | $0.014 | 1 | 1,105円 | × |
t3.small | $0.027 | 2 | 2,132円 | × |
t3.medium | $0.054 | 4 | 4,264円 | ○ |
c4.8xlarge | $2.016 | 60 | 159,185円 | ○ |
なんで動かないのか
$ cassandra
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000cf600000, 815792128, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 815792128 bytes for committing reserved memory.
Cassandraを実行するのにメモリが足りないので。
PostgreSQLを使うんであれば、もっと下のインスタンスでも行けるかもしれない。
ワンタッチで使えるインスタンスを用意したいのであれば、 t3.medium
以上を選びましょう。
参考
API GatewayのKongをインストールしてみた
Kongの設定コマンドがとても素敵にまとまっています🤩