こんにちは。
前回の記事で書きましたが、先月AWSの$40のクレジットを使い切りました。それで、AWSから別のクラウドに乗り換えることを視野にいろいろクラウドサービスを調べてみました。
はじめに
現状の構成としては、AWS のECS + RDS + ALBという構成です。ECSはt2.microのEC2インスタンス1つをECSで管理して、コンテナとしてはRailsコンテナを1個置いているだけです。RDSでは、PostgreSQLを使っていました。ECSを使ってた理由としては、Dockerを使うのが好きで作ってるアプリの開発環境もDockerで管理しておりコンテナを使ってデプロイしたいなと思っていたのと、はてなサマーインターンのAWSハンズオンでECSとかを使ってPerlのWEBアプリをデプロイした経験があって、ハンズオンで理解しきれなかった内容をしっかり理解したいなと思っていたからです。
ECS使ってて思った事
自動化するところまではやれてなかったけど、プログラム書き換えてdocker build と pushして、コンテナを立て直すだけで書き換えたプログラムが反映できたのは結構イケてるなと感じました。でも、EC2をクラスター管理してたわけでもなく、 オートスケールさせたわけでもないので、ECSじゃなくてもよかったのかなとちょっと思いました。
調べたこと
AWS, Azure, GCP、3サービスの無料利用枠について調べました。(僕は、すでに3サービスの無料利用期間は終わっているので、常に無料でできる枠を調べました。)
まずは、AWSから
aws.amazon.com
一部紹介すると、
- AWS Lambda → 100万件/月の無料リクエスト
- Amazon CloudWatch → 10個のカスタムメトリクスおよび 10 件のアラーム
- Amazon Cognito → 50,000 MAU/月
- DynamoDB → 25 GB
などなど、23個の常に無料で利用できるサービスがありました。他2サービスと比べると、自分の作ったものをデプロイできるサービスが無くて若干物足りない感がありました。
続いてMicrosoft Azure
azure.microsoft.com
こちらも一部抜粋すると、
- App Service → 10 Web、モバイル、API アプリ
- Functions → 100万 回(1か月あたりの要求数)
- Container Service 完全無料
などなど、29個のサービスが常に無料で使えました。App ServiceやContainer Serviceが無料で使えるのは一見良さそうに見えましたが、Linux / Windows Virtual Machinesは無料ではないため、実質無料ではなかったです。ですが、Machine Learningが2 sheet無料で使えたり、Face APIなどのCognitive Servicesに無料枠があるのは、色々遊び甲斐があるので良いなと感じました。
最後にGoogle Cloud Platform
cloud.google.com
こちらも無料枠を一部紹介すると、
- Google App Engine → 28インスタンス時間(1日あたり) & 5 GB のクラウド ストレージ
- Google Compute Engine → 1 つのf1-micro インスタンス(1 か月あたり、米国リージョンのみ)& 30 GB の HDD(期間合計 & 5 GB のスナップショット(期間合計)
- Google Cloud Functions → 200万回(1か月あたりの要求数)
などがありました。数としては、15個と少ない印象ですが、他のサービスと違い一番安いインスタンスが無料で使えるのと、GAEが無料で使えるのがかなり魅力でした。
比較してみて
これ以外にもHerokuなど色々サービスはありますが、今回は上記3サービスを比較しました。調べた感想としては、AWSが一番無料枠は寂しいような気がしました。あとは、どのクラウドサービスもデータべース系はNoSQLのサービスしか無料枠がないので、結局多少お金はかかってしまいそうですね。
一番良さそうだと感じたのは、Google App Engineでした。サービスが無料なのと、GAE用のdocker imageがあって、それを使ってimageを作ってデプロイするので、(間違ってたらすいません)、現状のDockerでの開発環境が活かせそうだったからです。
今後はもう少し別のサービスを調べて見てから(Herokuとか)、実際に使って見て記事を書きます。
なんか雑な調査だったし、雑な記事でしたが今日はこの辺で失礼します。