10日目 XaaSとVPSについて
XaaS:クラウドによって提供されるサービスの総称。
※Xにはアルファベットが入る。
「今日はちょっと休憩で、クラウド関係のPaas、Saas、Iaas、あとVPSについて説明していこうか」
「なにそれ」
「アプリケーションを作ったら全世界に向けて公開する必要がある。そのために必要なサービス。チュートリアルで、PythonAnywhereを使って、公開したでしょ? そんな風に公開するためのサービスの種類がいくつかあるんだ。そのやり方や、管理範囲なんかで分かれてる。今回はそれについて説明していこう」
* * *
「まずはクラウドサービスのSaaS、PaaS、BaaS、IaaSについて。それぞれはこんな略語
SaaS:Software as a Service
PaaS:Platform as a Service
BaaS:Backend as a Service
IaaS:Infrastructure as a Service
■SaaS:Software as a Service
クラウド上で提供されるサービス。例えばGmailとかユーザーはネットワーク経由でソフトウェアの機能性を活用。自由度が低くて、特定の機能しか持たない。
最近のNoCodeやLowCodeサービスがこれに該当。拡張性は低いけど簡単。
■PaaS:Platform as a Service
サーバやOS、データベースなどのプラットフォームを、インターネットを介して利用することができるサービス。
PythonAnywhereだったりHerokuがこれに該当する。Gitのリポジトリを置くだけで動いたり、プログラムだけを用意すればよいというメリットがあるね。
ただ、データベースの設定や環境の制限があるのがデメリットかな。簡単に利用できるから比較的小規模ならこれを使うといいかも
■BaaS:Backend as a Service
スマートフォンやタブレットなどのモバイルシステムのバックエンド機能をアプリケーションサーバーが代行するクラウドサービス。
BaaSはサーバーを保有したり、運用管理したりせずに、スピーディにサービスを構築できる。ソフトウェアを開発するコストと手間を省き、開発期間を大幅に短縮できるのが特徴。
JavaScript系のフレームワークやアプリ開発を使う場合はこれがオススメ。
※BaaSは他にもBusiness as a ServiceやBlockchain as a Serviceとかもありますが意味合いが違います。
■IaaS:Infrastructure as a Service
情報システムの稼働に必要な仮想サーバやハードディスク、ファイアウォールなどのインフラを、インターネット上のサービスとして提供。自由度が高く、ハードウェアのスペックやOSを好きなように選べる。
ただその分、OSやハードウェア、ネットワークの知識が必要。セキュリティ対策も考えないといけないので大変。自由度は高いけど、柔軟に対応できるのが特徴。AWSが有名で、大手の小説投稿サイトは大体これ。
■VPS:Virtual Private Server
基本的にはIaaSと同じで仮想サーバやハードディスク、ファイアウォールなどのインフラを提供。だけど、違うのが、値段。IaaSは「従量課金(サービスを利用した量に応じて請求額が変化する)」VPSは月額固定の請求。
名前がVirtual Private Serverなので、サーバーを貸し出すイメージ。要はサーバーを借りるということ。だから固定請求。
それに対してInfrastructure as a Serviceは、インフラ周りを貸し出すサービスなので使った分だけの請求が基本。
できることを現実世界で例えると、
VPS、IaaSは土地を借りる。土地は用意したけど、そこに建てる建物やセキュリティなんかは自分で何とかしてね。VPSは土地の広さが決まってるから拡張するのは難しいけど、IaaSは決まってないから拡張できるよ。でもIaaSは使った分だけ請求するからね。
PaaSはすでに建物がある場所を借りる。ようはテナントや貸しビル。そこに入れられるはある程度決まってるけど、水道や電気は通ってるからすぐに使えるよ。セキュリティもある程度大丈夫。でも内装工事だけはやってね。
BaaSもPaaSと同じような感じだけど、お手伝いさんがついてて裏側の処理(データの管理)は頑張ってくれる。有能秘書付きのサービス。
SaaSは用途の決まった部屋を借りる感じ。もう部屋も整ってるけど使える用とは限定されますよ。決まった範囲で利用してね。
というかんじ。まぁ大規模なサービスを作る場合は、IaaSかVPS、BaaSまたはPaaSを利用する必要があるね」
「へー、クラウドっていっても色々とあるんだね。今回はどれを使うの?」
「今回はVPSでやってみるよ。ミスしても大したことにならないようなのがいいからね。それにインフラ部分もどんな感じでやるか知っておくと便利だからね。
できたらAWSみたいにIaaSにしてクラウド化させて、拡張性が高い物にするのがいいのだけど、高いんだよね。あと、支払いが青天井なのも結構きつい。初心者でミスを犯しがちな場合は、最初はやめておくのが無難。
無料枠もあるけど、超えた時点で請求される場合が多いかな。ミスして数十万請求される人もいるし、ひとまずは金額固定のVPSにして無料期間で使って感触だけ確かめるのがいいかな。数週間無料で使えるところが多いね。
JavaScript系のフレームワークを使うならFirebaseとかBaaSも視野に入れておくのがいいかもしれない。
今回はDjangoだし、まぁVPSでやっておけば他のサービスでもできるからひとまず。それで。大体は無料期間があるから合わなかったら別のにすればいいよ」
「よくわかんないけどわかった」
まぁ、よくわからないけどやってれば覚えるよね?
インフラ周りも便利になりましたね。クラウドにしておくと規模が変わっても対応できるので便利。
ちなみにXaaS系は他にもCaas, Daas, IDaas, FaaSがあります。もうなにがなんだか混乱してしまいますね……
ただ、XaaSは支払いが青天井なのが怖いのですね。ミスが怖いのであまりセキュリティ関係を勉強していない初心者向けではないかな。基本的にAWSは知識ありのお金持ちのためのサービスかなと思います。なんでもできるけど知識がないと使いこなせないし、お金に余裕がないと気分的にしんどいと思います。あ、ただ固定額プランがあるサービスもあるので怖い人はそっちを選ぶといいです。
複数運用したり、節約するならVPSが一番コスパいいと思います。庶民の味方。(個人的な感想です)
単体運用や簡単なアプリ、お試しでやるならPythonAnywhereやHerokuなんかのPaaSでやるといいと思います。導入が簡単だしインフラ周り考える必要がないしね。ただ複雑なアプリケーションの実運用するのは微妙かも。本気で運用にするならドメインやデータベースでお金がかかるのと自由度が低いので機能拡張しようとするとそこで詰まる可能性があります。多機能の小説投稿サイトには向いてないかと。
小説投稿サイトだと、BaaSかIaaSにするのが将来的にもいいかなぁと思います。大手の小説投稿サイトは大体がIaaS(AWS)だしね。おいくらくらいかかってるんでしょうねぇ……
なお、公開する手段として自分でサーバーを立ち上げるとい方法もあります。ただ自宅サーバーはよほどの自信がない限りはやめておくのが無難ですね。メリットがほぼないです。
火災、故障や値段を考えるとデメリットとリスクが大きすぎて、個人運営だと正直余力がないのでやめておきましょう。会社で専用の部署を作って運用するなら別ですが、個人管理はやる意味があんまりないです。インフラエンジニアになりたいのであれば勉強のためにやってみるのもいいですが、個人開発ではお勧めしないです。