直近の個人サービス開発の悩み
目次
貧乏エンジニアが模索する「タダ同然」クラウドインフラ
ステップ1:クラウドサービスの選定プロセス
ステップ2:最終的に採用する構成案 (AWSベース)
貧乏エンジニアが模索する「タダ同然」クラウドインフラ
はい、金がないので相当模索しています。
目標はサーバー維持費を極限まで抑えつつ、将来の拡張性も確保できるサービス基盤を構築する。
「サーバー代かかるしなぁ…」「維持費もバカにならないよな…」なんて、頭をよぎるお金の心配...
だけど、これを利用するにはこのサービスを利用しないわけには...ってのがありますよねー
低コストを目指すためにも現在、コストや技術の選考をしているのですがなかなか難しい...
ステップ1:クラウドサービスの選定プロセス
まず、主要なクラウド3社を比較検討し、以下のように結論付けました。
- 1. Oracle Cloud (OCI) の評価
- 魅力的な点: ARMベースの強力な永続無料サーバーは、個人開発や趣味の範囲では最強。
- 採用見送りの理由: 主要なAWSやGCPに比べ、サードパーティサービスとの連携や日本語情報の量に不安が残る。将来のサービス拡張時に、使えるツールが限られ開発の自由度が下がるリスクを懸念。
- 2. Google Cloud (GCP) の評価
- 魅力的な点:
f1-micro
インスタンスなどの永続無料枠と、$300の新規クレジット。 - 採用見送りの理由: 永続無料枠のマシンスペック(性能・リソース)が、運営したいサービスにとっては力不足だと判断。
- 魅力的な点:
- 3. メール配信機能の検討
- 課題: サービス運営にはメール配信が必須。
- 結論: 自前でメールサーバーを構築するのは、セキュリティ対策(迷惑メール、DDoS)、ドメイン認証(SPF, DKIM, DMARC)、メール到達率の維持管理など、手間がかかりすぎる。専門のサードパーティ製メール配信サービスを利用するのが賢明と判断。
ステップ2:最終的に採用する構成案 (AWSベース)
上記の検討を経て、AWSの12ヶ月無料利用枠を最大限に活用し、各機能は専門のマネージドサービスに任せることで、コストと運用負荷を両立させる以下の構成案にたどり着きました。なんだかんだいつもどおりです。
Web/APサーバー
- 利用サービス: Amazon EC2 (
t2.micro
またはt3.micro
) - 選定理由・ポイント: 12ヶ月の無料枠(750時間/月)を活用し、サービスの中心となるサーバーとして利用します。
個人的に「 t3.micro
」を使ってみたい。
データベース
- 利用サービス: Amazon RDS (MySQL または PostgreSQL)
- 選定理由・ポイント: 高価なAuroraは避け、同じく無料枠(750時間/月)がある安価なDBを選択することで、コストを抑えつつ運用負荷を削減します。
PostgreSQLをホントは利用したいけど、とりあえず、ローカル環境がMYSQLで開発してるので今はMYSQLで行こうかな...絶対PostgreSQLにかえてやる
ファイルストレージ
- 利用サービス: Amazon S3
- 選定理由・ポイント: ユーザーのアップロードファイルや静的コンテンツ、注文履歴、過去のアクセスログの置き場として活用します。安価で高い耐久性が魅力です。保存するメディアは画像とメールデータになると予想。画像はWEBP形式で保存。サイズはSP、PCのみ
適当にデータ保存するとコストが膨れ上がるのでストレージクラスの最適化を考えないと...意外とコスト膨らむ
メール配信
- 利用サービス: Amazon SES (Simple Email Service)
- 選定理由・ポイント: 圧倒的な低コストで高い到達率を実現できるメール配信サービスです。自前でサーバーを構築・管理する手間を完全に排除できます。
高速化・セキュリティ
- 利用サービス: Cloudflare または Amazon CloudFront
- 選定理由・ポイント: サイトの表示を高速化し、EC2サーバーの負荷を軽減します。同時に、AWSからのデータ転送料金を削減してコストを直接的に下げ、DDoS対策も担う重要な役割を果たします。
画像生成など
- 利用サービス: AWS Lambda
- 選定理由・ポイント: 無料期間中の利用や、アクセスが少ないバッチ処理に最適です。リクエストがあった時だけコードが実行されるサーバーレス形式のため、待機コストがかからず費用を抑えやすいです。
将来的にSMS認証も導入
- Twilio
- Amazon SNS
コストを考えると送信専用(片方向の通知)しか利用しないのでAmazon SNSがコスト的に良さそう。
とりあえず、メモというか現状、AWSで行こうかなって悩んでます。
さくらクラウドや国内VPSも考えたが、将来のこと考えたり開発途中で要件も変わる可能性があるのでその際に臨機応援に対応しやすいのはAWS一択になってしまう...一周回って自宅のNASに無理くり構築するという荒業もある...
また何かあれば書いていこう