チラシ裏日記上等!!新館

Webアプリケーションエンジニアの雑記帳。映画とかアニメとかの記事も書きます。

自分で運用しているサービスのインフラに一月でかかるお金について

この記事は、ひとり開発 Advent Calendar 2019の22日目の記事になります。

自分でサービスを開発し運用しているのですが、そのインフラ構成や実際にかかるお金などをまとめていきたいと思います。

サービスとそのインフラ構成について

自分はTwitterでお気に入りに登録した画像を保存するTwipicaというサービスを運用しています。

twipica.com

インフラはAWSのサービスを活用しており使用しているサービスは以下です。

サービス名 説明
EC2 ECSで使用するためのリソースとして使用
ELB コンテナにつなぐために使用
RDS サービスのデータを保存するために使用
ECS コンテナオーケストレーションのために使用
ECR サービスを動かすコンテナをアップロードするために使用
S3 サービスの一部データを保存するために使用
Route53 ドメイン周りのために使用
CloudWath ログ保存のために使用

細かい実装等については大体同人誌に書いてあるとおりです。

tomato360.booth.pm

サービスの特性としてはあまり多くの人に使ってもらえているサービスというわけではなく、自分のためのサービスでトラフィックはほとんどありません(とほほ。。。

それぞれのリソースに一月でかかるお金

ではそれぞれリソースに一月でかかるお金についてみていきます。AWSの各リソースのコストをざっくりとまとめます。

サービス名 使用しているリソース 価格
EC2 c3.large 2台 + EBS等 $50.72
ELB ALB + 通信料 $17.63
RDS db.t2.micro + EBS等 $21.48
ECR 使用容量 $1.47
S3 使用容量 + 通信料 $3.32
Route53 通信料 $3.50
合計 $98.12

大体$100弱です。月の飲み会を何回か我慢したりガチャをするのを諦めたりすれば捻出できそうな額ですね。

節約のポイント

節約のポイントをざっくりと書いていきます。

EC2インスタンスはSpotInstanceを使用すると安く抑えられます。使用しているc3.largeのオンデマンド価格は現在(2019/12/22)$0.128なのですが、$0.0302と1/4ほどの価格で使用することができます。特に強い理由がない限りはSpotInstanceを使用しましょう。自分のサービスだとc3.largeは結構リソースに余裕がある状態を保つことができます。もう少し弱いインスタンスでも良いかもしれません。

Redisなどキーバリューストアを使用するとき、もしSideKiqなどのジョブのキュー程度しか使わず、ジョブがそれほど重要なものでないならば、自分でECSのTaskDefinitionにRedisのコンテナを立ち上げるようにしたほうがElastiCacheを使うよりは安上がりです。

まとめ

自分がサービスを運用する際のAWSのリソースにかかるお金について簡単にまとめました。普通のRailsアプリケーションで使用する人が自分ぐらいのサービスの場合大体月1万円で運用できます。この価格を高いと感じるかは人によって違うと思いますが、自分でAWSの学習をしたいと思ったりコンテナの運用をしてみたいと思うのであれば払う価値はあるんじゃないかなと思ったりします。

あともし万が一サービスがヒットした場合、マネタイズによってはインスタンス代等賄えるかもしれません。そうなればほとんど無料で学習し続けられるので良いですね。自分のサービスはそこまで行く気配はほとんどありませんが、続けていくことで知見を貯め、活かしていければなと思っております。