Table of Contents
Google Cloud Platform (GCP) を使って、できるだけ低コストでサーバーやデータベースを運用するための設定方法について解説しています。
App Engine
最安設定
以下の設定を app.yaml
に記載することで、最もコストを抑えた構成が可能です。
env: standard
instance_class: F1
automatic_scaling:
max_instances: 1
- env: Standard環境を使用することで無料枠が利用可能。Flexible環境だと想定外の請求が発生することがあるため注意。
- instance_class: F1は最も低スペックなインスタンスで、1日28インスタンス時間まで無料。
- automatic_scaling:
max_instances
を1に設定することでインスタンスが勝手に増えないように制御。
Cloud SQL
最安設定
Cloud SQLの課金は以下の要素によって決まります。
- インスタンスのマシンタイプ(CPU、メモリ、稼働時間)
- ストレージ
- ネットワーク通信(egressのみ)
リージョンによって価格が変わり、Iowaリージョンが最も安価です。
稼働時間の管理
インスタンスは稼働時間に応じて課金されるため、使わない時は停止することが重要です。
# インスタンスの一覧を取得
$ gcloud sql instances list
# インスタンスを停止
$ gcloud sql instances patch INSTANCE_NAME --activation-policy=NEVER
インスタンスのマシンタイプ
db-f1-micro
とdb-g1-small
が最も安価ですが、本番環境ではSLA対象外なので開発用として推奨。- Dedicated coreの場合はvCPUとメモリに応じて課金されます。
ストレージ
- HDDはSSDよりも2倍安価。
- High Availability (HA)は通常の2倍高い。
- バックアップも課金対象になるため、不要な場合はオフにすることを推奨。
ネットワーク
- Ingress(受信)は無料。
- Egress(送信)はリージョンやサービスによって課金されます。同じリージョン内で通信すれば無料になるケースが多いです。
Cloud Scheduler
無料枠
1つのBillingアカウントにつき、月あたり3つまでのジョブは無料です。それ以上は $0.10/job/month の料金が発生します。
Cloud Functions
Cloud Functionsの課金要素は次の通りです。
- 呼び出し回数
- コンピューティング時間
- ネットワーク通信
すべてに無料枠があります。同じリージョン内で他のGCPサービスと通信すればネットワークコストを抑えられます。
この記事では、GCPをできるだけ低コストで運用するための具体的な設定方法について説明しています。