無課金にやさしいクラウド探し AWS vs Azure vs GCP

# Goal

無課金にやさしいクラウドベンダーを選定する。
無課金にやさしいとは、具体的には以下の点を満たしていること。
- 意図しない課金が行われないこと。
- 無課金の期間が長いほど好ましい。


# 免責事項(;^_^A

情報の誤りや時間経過によって条件が異なる可能性があります。
あくまで参考とし、必ず自分の目で確認した上での自己責任でお願いしますm(_ _)m


# 事前知識

クラウドの利用料金の支払いはクレジットカードにて行われる。
請求額は携帯料金のようにクラウドベンダーが請求額を算出する。
昔はパケ死といって、ギガが完全従量制だったので、携帯会社から高額請求されたケースが時折話題となった。
クラウドでも同様のことが発生する可能性はあり、クラウド初心者にはクレジットカード登録の心理的壁が大きい。
各クラウドには指定金額以上を超えたら通知する機能があるはずだが、無課金は請求すら来てほしくないのが本音(;^_^A

そこで各クラウドが用意しているものが以下のもの。
1. 指定期間中に使用できる一定金額分をプレゼント
2. 指定製品を指定範囲分は12か月無料
3. 指定製品を指定範囲分はずっと無料

2と3は指定製品を一定期間無料で使えるので一見安心できる。
しかし、１つの製品を利用開始したら複数の製品が利用されることも少なくなく、意外と無料対象外の製品を使ってしまうことがある。
この場合、無課金としては言葉に表せない絶望を感じる(;^_^A
そこで救いの手を差し伸べるのが1。
これは料金が発生した際に、Suicaでいうなら事前に金額をチャージしてプレゼントされた状態のため、意図しない課金が発生していても事前チャージ分から支払いされる。
更にクラウドベンターによっては1の無料分をすべて消費しても、ユーザーが課金開始の手続きを行わない限り、実際には請求されることがないような処置がとられている。


# クラウドベンダーをチェック
## AWS

無料枠
https://aws.amazon.com/jp/free/

無料枠についてのよくある質問
https://aws.amazon.com/jp/free/faqs/

無料の項目
1. 指定製品を指定範囲分は12か月無料
2. 指定製品を指定範囲分はずっと無料

AWSは一定期間有効の無料クレジットがありません(´・ω・｀)
つまり、アカウントを作成したら課金の窓は開かれます！
よって、意図しない課金が発生していないか、気を配っておく必要があります。
>無料利用枠を使用していますが、請求がきました。なぜですか?  
無料範囲を超えていなくても、無料範囲対象外の関連サービスの料金が請求される場合があります。例えば、t2.micro インスタンスではなく、Amazon EC2 t2.small インスタンスを実行している場合や、Amazon ElastiCache など製品に含まれていないサービスを使用している場合です

ただし、AWSは不定期で無料クーポンプレゼントのキャンペーンを実施している模様。
基本は25ドルで額面が他と比較すると大きく劣るが、課金リスク防止の盾としては頼もしい限り。
AWSを狙っているのであればTwitterやFacebookをフォローして、キャンペーンを逃さないように。


## Azure

無料枠
https://azure.microsoft.com/ja-jp/free/

無料枠についてのよくある質問
https://azure.microsoft.com/ja-jp/free/free-account-faq/

無料の項目
1. 1 か月間 ¥22,500 分の無料トライアル
2. 指定製品を指定範囲分は12か月無料
3. 指定製品を指定範囲分はずっと無料

Azureは1か月間有効の無料クレジットがついてきます。
よって、1か月間は課金を気にせず試すことができます。
しかし、裏を返せば1か月しか気兼ねなく試せません。
クラウドには非常に多くの製品があるため、有効期間の長いクレジットが好ましいのですが、この点がAzureの残念なところです。
Azureを開始する場合には、触る製品を見定めた上で1か月間集中することが無課金を最大限有効活用するためには必要になります。

1か月は残念ですが、無料トライアル中は課金が発生しないガード付きです！
>¥22,500 の無料クレジットを使い切った場合、または 30 日が経過した後はどうなりますか?
>
>お客様に通知いたしますので、従量課金制サブスクリプションにアップグレードするかどうかをご判断ください。アップグレードすると、すべての無料製品にアクセスできます。


## GCP

無料枠
https://cloud.google.com/free/?hl=ja

無料枠についてのよくある質問
https://cloud.google.com/free/docs/frequently-asked-questions?hl=ja

無料の項目
1. 12 か月間 $300 分の無料トライアル
2. 指定製品を指定範囲分はずっと無料

GCPは12か月間有効の無料クレジットが非常に強力。
クラウドには非常に多くの製品があるため、有効期間の長いクレジットが好ましいというかもはや必須。
暇ができたときに触ってみるという使い方で検証していくことができる。

また、無料トライアル中は課金が発生しないガード付きで完璧です！
>無料トライアルで料金が発生することはありますか？
いいえ、トライアルで料金が発生することはありません。トライアルが終了したアカウントは一時停止となり、有料アカウントへアップグレードすることで同じアカウントを従量課金で使うことができます


# まとめ

条件的にはベストクラウドFor無課金はGCPで間違いないだろう。
しかし、それは課金しないという観点のみで見た場合の結果であり、実社会ではほかの視点も必要になってくる。
例えば翻訳機能を利用するシーンを想定した場合、検証してみたら翻訳精度はGCPがベストでない可能性がある。
またGCPはアメリカリージョンにしか機能がなく、他のベンダーは日本リージョンに機能があるなら、レスポンス重視なら後者を選択することになる。
以上のことから、用途に応じて料金だけではなく、製品の質も考慮した上で選定すべきである。

もう一つ考慮したい項目として、クラウドベンダーのシェアを見るとAWSが単独トップの状況であり、AWSのスキルは活用の場が広い。
AWSは無課金の観点では塩対応だが、裏を返せば王者の貫禄ともとれる。
GCPとしてはクラウド初心者を取り込んで、仕事場にもそのままGCPを使用してほしいという狙いがあるんだろう。
シェアと無課金へのやさしさが見事に反比例しているのは面白い。

個人的な意見としては、状況に応じてクラウドベンダーを使い分け、ベンダーロックインは可能な範囲で避けるのが理想。
実際にはクラウド内でのデータ読み書きは無料等の事情があり、細かい単位でベンダーを使い分けることは難しい。
また、1つのクラウドに閉じたほうが管理はしやすい。
しかし、その誘惑に負けて1つのクラウドに固執してしまうと、食わず嫌いが進行して技術者としての選択肢を自ら狭めてしまう。
よって、無課金の俺が歩むべきロードは、GCPでクラウドに慣れてからのAzureで仮試験してからのAWSで本番と結論付けておく。


# おまけ

## Azureで無料期間が終了した際のサブスクリプション
Azureで無料期間の１か月が終了すると、画像の上から二つ目の項目”サブスクリプション”のように、従量課金にアップグレードしないとロックされてしまう。（画像はリソース新規作成時のもの）
裏を返せばアップグレードしない限りは課金されることがないので安心。
![サブスクリプション無効.PNG](https://qiita-image-store.s3.amazonaws.com/0/310578/7520ed1a-d953-a477-a49a-41994743a60d.png)