まず、クラウドコンピューティングに関するいくつかの概念を紹介します。
-
インフラストラクチャー・アズ・ア・サービス(IaaS):
例えば、Alibaba Cloud や AWS などです。企業にサーバー、DNS、ネットワーク、ストレージ、データセンタースペースなど、さまざまな計算リソースを提供します。
もちろん、最も一般的に使用されるのは VPS です。 -
プラットフォーム・アズ・ア・サービス(PaaS):
アプリケーションの開発とデプロイに必要なインフラストラクチャ(オペレーティングシステム、データベース、サーバーなど)とアプリケーションフレームワークを提供し、ユーザーがクラウドコンピューティングプラットフォームを利用してアプリケーションを迅速に構築・デプロイできるようにします。ユーザーは基礎インフラストラクチャのメンテナンスや管理を行う必要はありません。
例えば、コードをアップロードすると、必要な環境と実行を担当し、K8S の主要な戦場でもあります。 -
ソフトウェア・アズ・ア・サービス(SaaS):
クラウドコンピューティングプラットフォーム上で提供されるソフトウェアアプリケーションサービスの一種で、顧客はネットワークやブラウザを介してクラウドベースのソフトウェアアプリケーションを使用するだけで、ハードウェアサーバーやソフトウェアシステムの購入、デプロイ、メンテナンスをする必要はありません。
クラウドベースのアプリケーションは、Office 365 のオンライン機能や Slack など、私たちが最も広く触れるものです。
この記事では、現在人気のあるいくつかの PaaS をまとめました。サポートされている言語は非常に豊富で、おそらく Node や Dockerfile などが最もよく使われていると思います。
現在の主流の使用方法は、GitHub などのコードリポジトリと関連付けて、自動的にデプロイすることです。リポジトリが更新されると、サービスが自動的に再デプロイされるという仕組みです。これは CI/CD の一種と言えるでしょう。
GitHub Pages#
これは最も一般的に触れることができるものでしょうが、できることは非常に限られています。静的ウェブサイトのホスティングプラットフォームであり、サーバーレス(Serverless)アーキテクチャの一種です。
シンプルなページのデモに適しており、私は Hexo をいじっていた時代を思い出します。
Vercel#
私の観察によると、フロントエンドのプロジェクトでは、この方法を使用してデモやドキュメントをデプロイすることが非常に一般的です。本当に便利です。
これも静的ウェブサイトのホスティングサービスであり、広義では PaaS に分類されますが、サーバーレス(Serverless)なのでできることは限られています。もちろん、GitHub Pages よりも多くのことができますし、もちろん安価です。
無料プランでは、100 GB-hours の無料利用時間が提供されており、一般的な小さなサイトには十分です。
Netlify よりも無料のクオータが多く、ビルド速度も速く、価格も安いため、主流になる理由があります...
カスタムドメインをバインドする場合、ドメインを
http://cname-china.vercel-dns.com
に CNAME に設定すると、GFW を回避できると言われています。
Netlify#
同様に、フロントエンドプロジェクトで非常に人気のあるデプロイプラットフォームです。
無料プランでは、125,000 回の無料呼び出しを提供しています。Vercel との主要な機能の違いはほとんどありませんが、「コストパフォーマンス」は Vercel に劣ります。私の観察では、多くの人が Vercel に移行しています。
上記の 2 つについて、サーバーレス関数という主な特徴を紹介します。
サーバーレス関数(Serverless Function)は、新しいタイプのクラウドコンピューティングサービスであり、関数としてのサービス(Function as a Service、FaaS)とも呼ばれています。
クラウドサービスプロバイダーのサーバーレスアーキテクチャ上に構築されており、ユーザーはサーバーの設定、管理、スケーリングなどの問題を心配する必要はありません。コードを書いてアップロードするだけで、クラウドサービスプロバイダーが提供する自動化されたリソースの割り当て、負荷分散、自動スケーリングなどのサービスを利用することができます。オンデマンドでの課金と効率的な開発・デプロイが実現されます。
これは一種の計算モデルであり、通常は Serverless アーキテクチャと呼ばれています。WeChat Mini Program のクラウド開発も本質的には Serverless 呼び出しです。
Railway#
プログラム(サービス)を迅速にデプロイするための PaaS プラットフォームです。
無料プランは非常に魅力的で、クレジットカードの確認は必要ありませんが、1 か月につき 500 時間の制限があります。つまり、1 か月で 24 日しか実行できません。
再デプロイ後に DB がリセットされるという欠点がありますので、デモやテスト用途に適しています。
有料プランを使用する場合、価格は高くないです。
fly.io#
fly.io はコンテナ化されたデプロイプラットフォームで、Dockerfile ファイルだけで fly.io のサーバーにコードをデプロイすることができます。一定の無料利用枠も提供されており、彼らの目標は小規模なアプリケーションを無料で実行し、拡張が必要な場合にのみ料金を支払うことです。その料金も高額ではありません。
無料利用枠:
- 最大 3 つの shared-cpu-1x 256MB VM
- 3GB の永続ボリュームストレージ(合計)
- 160GB のアウトバウンドデータ転送
より高い無料利用枠を解除するには、クレジットカードを追加する必要があり、超過した場合は月末に請求されます。デプロイには提供された CLI ツール flyctl(オンライン版の CLI も提供されています)を使用する必要がある場合があります。
Heroku#
最初の PaaS の一つで、2007 年に開発が始まったため、非常に成熟しており、かなり充実したエコシステム、より強力な拡張性、および多くのプリセット機能があります。
欠点は高価で、新興の fly に比べて速度が遅く、国内のネットワークアクセスにもあまり適していないですが、海外では非常に人気のある PaaS です。
今は無料で使えるという選択肢はありません。
その他#
最初に登場した時、Google の GAE は多くの人に利用されました。無料で使用でき、マジックインターネットに直接デプロイして使用することができるため、私が最初に触れたマジックインターネットツールです。当時はかなり速かったですが、当時の私はインターネットについてまったく知識がなかったので、オンラインチュートリアルに従って適当にやっていました。
国内では、新浪の SAE も一時期非常に人気がありましたが、現在はほぼ廃れています。
国内では、Alibaba Cloud や Tencent Cloud を考慮すると、コストパフォーマンスを考えると Huawei Cloud や Baidu なども選択肢に入るかもしれません。