料金が気になるサービスはありますか?
AWSの料金はどれぐらいかかるのか
料金がざっくりわかるボタン
いろいろ考えるのが面倒な方は、とりあえずボタンを押してみてください。
AWSの料金の特徴
AWSの料金は、使った分だけ請求される従量課金になっています。ロリポップなどのレンタルサーバーのように、月額〇〇〇円のような決まった額ではなく、EC2を720時間使ったから〇〇〇円のように計算されるため、毎月の請求額が変動します。費用が変動するのは不便な面もありますが、フェアな料金体系といえます。
また、リソースの増減が管理画面やコマンドラインから簡単に行えるため、お金さえ払えばすぐにスケールアウトできる所も大きな利点といえるでしょう。
サービスのカテゴリ分け
- コンピューティング(EC2/Fargate/...)
- データベース(RDS/DynamoDB/...)
- ストレージ(S3/EBS/...)
- ネットワークと配信(CloudFront/ELB/...)
AWSでは多くのサービスを提供していますが、よく使うサービスのカテゴリをざっくり分けると上記のようになります。慣れてくると、アイコンの色でピンと来るようになるかもしれません。要件によって上下はありますが、大概のシステムではコンピューティングとデータベースの料金が大部分を占めると思うので、ここから計算すると費用感を掴みやすいです。
EC2とRDSの概算
よく使うであろうEC2とRDSの料金を計算してみましょう。細かい事は気にせずに、インスタンスタイプとストレージの種類/容量を決めれば、ひと月にかかる料金をざっくり計算できます。
# インスタンスの単価 * 時間 + ストレージの単価 * 容量 # EC2 $0.0136(t3.micro) * 30.5日 * 24時間 + $0.12(gp2) * 20GB 0.0136 * 30.5 * 24 + 0.12 * 20 = $12.3 → 1284円 # RDS $0.026(MySQL/db2.t3.micro) * 30.5日 * 24時間 + $0.138(gp2) * 20GB 0.026 * 30.5 * 24 + 0.138 * 20 = $21.7 → 2266円
料金計算を簡単にするために、あえて無視している細かい事については、各ページの対象外のものというセクションに記載しています。具体例をあげると、追加のElastic IPやリージョン間のデータ転送料金などです。
データ転送料金の概算
AWSの料金を計算するうえで忘れてはいけない項目に、データ転送料金があります。
考え方に少しクセがありますが、基本的にはAWSから外へ出るデータに対して料金が発生すると覚えておけばシンプルです。実際に使ってみないとわからない部分なので見積もりが難しいですが、トラフィックが多い場合は無視できないので、事前に余裕をもった見積もりを立てておいた方が安心できます。
具体的な数値がイメージしにくいかもしれませんが、Webサーバーを例にすると以下のようになります。
# ページあたりの容量が2MBで月間10万PV 2 * 100000 / 1024 ≒ 195GB # 最初の1GBは無料 | 10TBまでは$0.114/GB (195 - 1) * 0.114 = $22.116 → 2299円
計算式の確認
各サービスの料金計算に使用している式は、各ページの◯◯◯の料金計算式をざっくりというセクションに記載してますので、どんな計算をしているか気になる方は確認してみてください。計算に不備が見つかった場合は、GitHubのIssueにあげて頂けたら助かります。
AWSの料金を抑えるには
リザーブド/スポットインスタンス 「AWSの料金を安くする」と考えたときに、最初に思いつくのがEC2やRDSで使えるリザーブドインスタンスです。名前のリザーブドが示すとおり、◯年使ってくれるなら安くしますよ、という仕組みになります。これとは別で、EC2の空いているインスタンスを安くつかえるかもしれない、スポットインスタンスというものもあります。どちらもこのサイトでは計算できないですが...
ボリュームディスカウント S3のストレージやデータ転送料金は、使うほど単価が安くなる料金体系になっています。安くなるラインが高めなので、なかなか届かないかもしれませんが、一括請求という仕組みで複数のアカウントを合算すれば恩恵を受けられるかもしれません。
ストレージクラス S3にはストレージクラスというものがあって、アクセスの頻度が低いデータは安く保存できる(代わりに取り出しのコストがかかる)ようになっているので、利用を検討してみてもいいかもしれません。これもこのサイトでは計算できないですが...
サーバーレスのサービス EC2で行っている処理をLambdaで置き換えてみたり、EC2で公開している静的サイトがあったらS3に移行してみたり、部分的にサーバーレスのサービスを導入してみたら、料金が安くなるかもしれません。
使い道を想像するためにサービス名を網羅するだけの作文
はじめてのAWS。
とりあえず入門書を読み進める。
VPCでネットワークを設計してから、
EC2を置くらしい。この単語には聞き覚えがあるぞ。
念のためにロードバランサーのELBも挟んでおこう。
これだけでも悪くないけど、欲を言えばDockerを使いたい。
ECSでFargateを使用すると、サーバーの管理が不要になると。
なんなんだこれは・・・革新的すぎるぞ。
データベースは、RDSとDynamoDBを併用する形で。
せっかくならAuroraとかいうやつを使ってみようか。
一旦これで様子を見て、キャッシュさせる必要が出てきたら、
ElastiCacheでRedisを動かすことも検討しよう。
これでもう十分な感はあるけど、
サーバーレスで設計してみたい気持ちになってきた。
API GatewayにLambdaを繋げて、
S3を組み合わせれば色々できそうだ。
とりあえず⚡Serverlessを触ってみよう。
メールの送信をどう実装しようか。
ひとまずSQSのキューに入れてから、
Lambda+SESで処理するのが良さそうだ。
バウンスはSNSのトピックとして扱えるらしい。
あとはCloudFrontを手前に置いて、
Route53でドメインの設定をすれば、
なんとか公開まで持っていけそうだ。
しかしこれ、料金はいくらかかるんだ?