Mastodonサーバーの費用感

Mastodon サーバーを建てると一体いくらかかるのか。
pawoo.net を参考にします。

pawoo.net

規模

PixivのPawoo担当者が語る、マストドン早期参入の理由と可能性
11日経過で9万ユーザー

サーバー構成

Mastodonを3倍早くしたい話
APサーバー 10台
Sidekiq 60プロセス 1400ワーカー
DB 40コア メモリ160GB
→ DB 16コア メモリ64GB

料金

DB サーバー

Amazon RDS for PostgreSQL として 料金表 を参考に
DB (16コア メモリ64GB) だと db.m4.4xlarge で $4.244/h = $3055.68/m
DB (40コア メモリ160GB) だと db.m4.10xlarge で $10.614/h = $7642.08/m
マスタースレーブ構成にしてるなら2倍。

ちなみに MySQL だと
DB (16コア メモリ64GB) だと db.m4.4xlarge で $2.034/h = $1464.48/m
DB (40コア メモリ160GB) だと db.m4.10xlarge で $5.087/h = $3662.64/m
PostgreSQL の方が高いんですね。倍のお値段。

AP サーバー

Amazon EC2 として 料金表 を参考に
2コア メモリ8GB なら m4.large で $0.139/h = $100.08/m
4コア メモリ16GB なら m4.xlarge で $0.278/h = $200.16/m
× 10台

Redis

Amazon ElastiCache として 料金表 を参考に
どの程度のスペックが必要か不明だが cache.m3.medium なら $0.120/h = $86.4/m

Sidekiq

不明。
60プロセス動かすならそれなりに台数必要?

Node.js

不明。

メール

SnedGrid は無料枠があるらしい。

合計

ある程度正確な情報があったのがDBサーバーだけなので何とも言えませんが
予想できるものだけでも最小構成40~50万円/月といったところでしょうか。
実際はロードバランサーがあったり踏み台があったりすると思うのでもっとかかっていると思います。
スレーブサーバーやその他諸々を含めると80~100万円/月くらいなのかな。


カテゴリー: Mastodon | コメントする

[MySQL] テーブル名からデータベース名を逆引きする

テーブル名からデータベース名を逆引きする SQL

SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME LIKE 'user_%';

テーブルが格納されているデータベースが分からないときや、似たようなテーブルがないか探すときに。


カテゴリー: MySQL | コメントする

C#でゲームを作るには

C# で開発ができるゲームエンジン。


カテゴリー: C# | コメントする

Docker を使って Windows 上に MySQL を立てる

予め Docker をインストールしておきます。詳細については割愛。

PowerShell で以下を実行すると MySQL が立ち上がって接続できます。

docker pull mysql
docker run --name mysql-sandbox -e MYSQL_ROOT_PASSWORD=mypass -d -p 3306:3306 mysql
docker exec -it mysql-sandbox mysql -p

停止/起動

docker stop mysql-sandbox
docker start mysql-sandbox

削除(docker stop しておく)

docker rm mysql-sandbox
docker rmi mysql

続きを読む


カテゴリー: Docker | タグ: | コメントする

[PHP] file_get_contents で 403 Forbidden

file_get_contents で 403 Forbidden が出る場合に User Agent を指定すると解決することがあるようです。

【エラー】

php -r "file_get_contents('https://connpass.com/api/v1/event/?keyword=devcussion&order=2');"
PHP Warning:  file_get_contents(https://connpass.com/api/v1/event/?keyword=devcussion&order=2): failed to open stream: HTTP request failed! HTTP/1.1 403 FORBIDDEN
 in Command line code on line 1

【解決】

$options = [
    'http' => [
        'method' => 'GET',
        'header' => 'User-Agent: iOS',
    ],
];
$context = stream_context_create($options);
$url = 'https://connpass.com/api/v1/event/?keyword=devcussion&order=2';
$json = file_get_contents($url, false, $context);

【参考】
PHP で file_get_contents で 403エラー


カテゴリー: PHP | コメントする