2022年Herokuの代替プラットホームベスト10+
HerokuはPaaS(サービスとしてのプラットフォーム)で、クラウドサービスのパイオニア的存在です。Herokuが登場する以前は、ゼロからサーバーを設定して構築する必要があり、開発者にかなりの負担がかかっていました。
また、その他のボトルネックとしては、共有ホスティングの制限や、クラウド技術とそのデプロイメントの戦略の複雑さなどがありました。
しかし、Herokuのプラットフォームは、アプリの構築、スケーリング、デプロイをこれまで以上に迅速かつ容易にする技術を導入しました。それが開発者コミュニティでその名が知れ渡った理由です。
商業的に持続可能なクラウドサービスであるPaaS(サービスとしてのプラットフォーム)の斬新な基準を作ったHerokuは、革新的な企業だと言えます。同社は多くのことを成し遂げ、多くのエンタープライズ企業がビジネスの目標を達成するのを助けてきました。
しかし私は最近になって、開発者がHerokuの代替サービスを探していることに気づきます。私は考えました「なぜ開発者はHerokuの代替サービスに飛びつきたがるのだろう?」
この記事では、開発者がHerokuの代替サービスを求める理由と、Heroku以外の選択肢についてお話します。また、それぞれのオプションの長所と短所、そしてHerokuと競合するサービスの比較表も、合わせてご覧いただけます。
Contents
なぜ開発者はHerokuの代替サービスを探すのか?
私がフォーラムや他のオンラインコミュニティで集めた情報によると、Herokuに対する共通の不満は、価格、アプリのスリープ、ホスティングのリージョンです。
価格
Herokuは、Herokuアプリを実行し、スケーリングするコンテナ「dyno」でサービスの価格を設定しています。アプリを垂直スケールまたは水平スケールしてdynoが増えると、費用が増加する仕組みです。Herokuで実行されるほとんどのアプリケーションは、それを完璧に実行するために、1つ以上のdynoを必要とします。
アプリの所有者のほとんどが、Heroku上でアプリを大規模に実行するために必要な出費に対応するのは難しいと考えているようです。しかし、HerokuはAWSのインフラを使用していて、そのアプリをデプロイするために多くのコストがかかっています。
そのため、利益率を維持するための価格体系を取らざるを得ないのです。この点を考えると、価格が下がることを期待するのは現実的とは言えないかもしれません。
アプリのスリープ
Herokuが提供する無料プランには、長所と短所があります。趣味で使う人も開発者も、実験的なプロジェクトをホストするために利用するわけですが、 ここでの大きな課題は、無料プランのアプリが一定期間使用されないと「スリープ状態になる」ことです。
要するに、Herokuがシステムリソースを解放するためにアプリコンテナをシャットダウンするということです。ただし、ユーザーからウェブリクエストを受けると、アプリは数秒遅れて「起動」します。そのため必然的に、開発者は有料プランにアップグレードせざるを得なくなります。そうなると、価格が急激に上昇する可能性があるのです。
リージョン
HerokuはAWS上で動作しますが、利用できるのは米国と欧州の2つのリージョンだけです。アジア圏の顧客を対象としたアプリを運営する場合、米国や欧州圏の顧客に比べてリードタイムが長くなる可能性があります。他の地域でも利用可能ですが、対応するのはPrivateスペースのプランのみです。

Herokuのメリットとは?
- Herokuを使い始めるのはとても簡単
初心者であっても、はじめてのアプリをセットアップするのは非常に簡単です。5分もかかりません。ほとんどの場合、簡単なGitコマンドを実行してアプリをデプロイし、動作させるだけです。Herokuの公式サイトのドキュメントも非常に役に立ちます。
- 優れたエラーログ
デプロイに失敗したとき、Herokuでは標準のエラーログが表示されます。他のPaaSプラットフォームでは、この機能はほぼ使えません。そのほとんどの代用的な機能は、デバッグを途方もなく困難にするような、何の変哲もないメッセージを表示します。Herokuのデバッグは他のPaaSプロバイダーよりも簡単にでき、デプロイも比較的簡単だといえます。
- アドオンを活用すれば新機能や新技術を簡単に追加可能
Herokuは、膨大な数のプラグインとサービスをインスタンスに追加するオプションを提供しています。これらのプラグインは、データベースからメールシステムに至るまで、様々な機能を網羅しています。
ユーザーは手動でサービスをインストールしたり、セットアップしたりする必要はありません。
- シンプルなスケーリング
Herokuでのインスタンスの水平または垂直スケーリングは、そのインスタンスで利用可能なdynoの数を増減させるだけなので、簡単です。
この操作はCLI(コマンドラインインターフェース)またはHerokuのWeb UI(ユーザーインターフェース)で実行できます。
- 専用サーバー
Herokuの専用サーバーは、アプリの依存関係を構築でき、アプリケーションのデプロイ時に「メモリ不足」エラーのような問題が発生しないようになっています。
- 長年の経験
Herokuは歴史のあるPaaSプロバイダーの1つであり、そのプラットフォームは長年にわたって成長し、進化してきました。Herokuには初心者から上級者にまで対応した、多くの記事、ガイド、チュートリアルが用意されています。
- 無料枠
Herokuは、1つのdynoインスタンス、512MBのメモリ、2つのプロセスタイプを持つ無料プランを提供しています。アプリは30分間使用されなければ、スリープ状態になります。
- 標準SQLを提供
Herokuは、他のPaaSサービスプロバイダーではあまり見られない標準的なSQLを提供しています。
Herokuのデメリット
- コストがかかる
Herokuでは無料プランから有料に移行しようとすると、費用が高くなります。Herokuの基本サービスだけでなく、アドオンも非常に高額です。
- GoogleやAWSほど規模が大きくない
長い歴史があるとはいえ、HerokuはGoogleや他の競合他社に比べると規模は大きくありません。
- アドオンの制限
Herokuでは、ライブラリやサービスのインストールはHerokuプラグインを介してのみ行えるため、本番環境のカスタマイズには制限があります。Herokuプラグインなしでサービスを利用することは事実上不可能です。
- その後のデプロイに時間がかかる
Heroku上でのアプリの起動は迅速かつ簡単で、最初の数回のデプロイも同様に高速ですが、大規模なアプリケーションのデプロイには非常に時間がかかる傾向があります。
私自身の経験では、Dynoの再起動に時間がかかり、その間、アプリケーションはオフラインになります。つまり、アプリケーションのランタイムを何秒か失うことになるのです。
Herokuの価格モデル
Herokuの価格モデルは4種類あります。価格オプションは以下の通りです:
プラン | 価格 | 詳細 |
無料 と ホビー | $0.00 | 非商用アプリケーション、個人プロジェクト、MVP |
プロダクション | 月額 $25 | Web内部向けポータルやAPIなどのビジネスアプリケーション |
アドバンスド | 月額 $250 | 低遅延で高速なパフォーマンスを必要とする、より高度なアプリケーション |
エンタープライズ | 要見積もり | 大規模組織向けのカスタムメイドの価格設定プラン |
Herokuの代替サービス
では、Herokuの代替サービスを簡単に紹介していきましょう:
- Back4app
- Elastic Beanstalk (AWS)
- Google App Engine
- Digital OceanなどでDokkuの使用
- Firebase
- OpenShift
- Engine Yard
- Netlify
- Docker
- Kubernetes
各プロバイダの詳細については、引き続きお読みください。
Back4app
Back4appは人気、かつ、オープンソースのBaaS(バックエンド機能を代行するクラウドサービス)で、Herokuの素晴らしい代替となり得ます。
アプリケーションの自動プロビジョニングとスケーリング、バックアップとリカバリ、24時間365日のモニタリングと警告、Webベースの管理ツール、テクニカルサポートなど、完全な管理体制でのバックエンド開発環境を提供してます。
Back4appの利点は、ユーザーフレンドリーなダッシュボード、シームレスにアプリケーションをスケーリングする能力があること、そしてクラス最高レベルのサポートを提供している点です。その主な機能は以下の通りです:
- スケーリング可能なリアルタイムデータベース(SQLおよびNoSQL)
- API (RESTおよびGraphQL)
- ストレージ
- 認証
- 通知機能
Back4ppはアプリケーションのバックエンドのデプロイとスケーリングを行うために、完全なサーバーレスアプローチをとっています。そのサーバーレスアーキテクチャにより、インフラ管理のおかげで眠れない夜を過ごす代わりに、アプリケーションの開発に集中できます。
信頼性の高いサーバーレスデータベースプラットフォームは、迅速なアプリの開発、ノーコードでのバックエンド開発、インフラにわずらわされないアプリのホスティング、そして、技術的な課題をこなすことなくアプリのスケーリングができます。
Back4appのメリット
使いやすい
Back4appは実に簡単に使えます。このプラットフォームには、スケーラブルなリアルタイムデータベース、すぐに使えるAPI、通知、認証などの機能が組み込まれています。
また、統合されたCDNのレイヤーにより、アプリケーションの遅延を抑えられ、パフォーマンスを向上できます。
オープンソース
Back4appは、オープンソースの技術を使用して構築されたBaaSプロバイダーであり、バックエンドのジェネレーターでもあります。
- マルチプロトコルAPI
Back4appはGraphQLとREST APIの両方に対応しているので、開発者にとって柔軟性のある選択肢となります。
- インフラの管理が不要
他のPaaSプラットフォームのように、インフラを管理する必要はありません。インストールや管理に必要なソフトウェアやランタイムはありません。プラットフォームのDevOpsチームが、インフラ管理の煩わしさを、すべて引き受けてくれます。
- 自動かつ柔軟なスケーリング
Back4app上のアプリは自動的にスケールアップ、またはスケールダウンするため、消費したリソースの分だけを支払うことになります。たとえアプリのユーザーが大幅に増えた場合でも、サーバーの維持に気を遣う必要はありません。
- ビルトインのアベイラビリティ
サーバーレスプラットフォームであるBack4appは、フォールト トレランスとビルトインのアベイラビリティを備えています。これらの機能はアプリケーションのサーバーレスアーキテクチャが提供するため、利用者が提供する必要はありません。
- 価格
価格は、APIコールの消費量、前払いのサブスクリプション(請求書に驚かされることがなくなります)、専用インスタンスに基づいて設定されます。
無料枠
Back4app には、開発者がファンクションを構築、そしてデプロイする際に使用できるサーバーリソースを、月ごとに制限した無料枠があります。
無料枠でのリクエスト数は、1カ月あたり2万5千リクエストとなっています。そのため、無料プランをテストプロジェクトに利用すれば、お金を支払うことなく利用することも可能です。
Back4Appについてもっと詳しく知りたい方は、「ユーザーがBack4appを愛用する理由」の記事も、合わせてお楽しみください。
Elastic Beanstalk (AWS)
Elastic Beanstalk (EB)は、Webアプリケーションやサービスをデプロイ、スケーリングするためのDevOpsツールです。Java、.NET、PHP、Node.js、Python、Ruby、Goなどの複数のプログラミング言語や、Docker Webアプリケーションなどに対応しています。
私自身の経験では、EBはパワフルなカスタマイズ能力、強力なオートメーション機能、そして卓越したセキュリティを備えています。
このプラットフォームは、インフラをデプロイするためのオーケストレーション(設定や管理等の自動化)サービスです。Simple Notification Service (SNS), Elastic Load Balancers(ELB)、CloudWatch、オートスケーリング、S3、EC2など、さまざまなAWSサービスを連携させられます。
また、EBを使って、ご自身のアプリケーションに接続するRDSデータベース層を作成することも可能です。そしてこれらの離れ業は、1行のコードも書かずに実現できます。デプロイ環境設定には、EBのコマンドラインインターフェース(CLI)またはEBの管理用ダッシュボードを使用します。
Elastic Beanstalk (AWS)のメリット
- デプロイ設定の変更が容易
EBでは、より多くのサーバーを迅速にデプロイできます。より多くのサーバーを立てるために必要なのは、ボタンをクリックして設定を変更する、それだけです。例えば、マイクロインスタンスからナノインスタンスへの移行や、サーバーの追加・削除を素早く行えます。
- 高度なセキュリティとアップグレード
ソフトウェアのアップデートの通知は常に受け取れるので、必要に応じてアップグレードされたシステムにアプリケーションを再デプロイできます。
- さまざまなアップグレード戦略
アップグレード中にデプロイメントに失敗した場合、インスタンスは自動的に以前の安定したものにフォールバックします。また、必要に応じて、他のアップグレード戦略をとることもできます
- 費用
AWSのサービスを長期的に利用したい場合は、リザーブドインスタンス(RI) を購入することでクラウド料金は大幅に削減できます。インスタンスのタイプも豊富で、購入したコンピュータリソースを有効に活用できます。
- セキュリティ
Elastic Beanstalk (AWS)では、お好みのセキュリティレベルを選択できます。高度なネットワーク機能を活用することで、より制限の多い、安全なネットワークトポロジーを作成できます。
- 柔軟性
Elastic Beanstalkは複数のAWSサービスを統合しているので、自分でやらなければならないと、心配をする必要ありません。しかし、デプロイのスクリプトを作成したり、Elastic BeanstalkのCLIを使用することで、いつでも深く掘り下げることもできます。
Elastic Beanstalk (AWS)のデメリット
- アプリケーションのパフォーマンスの監視が非常に軟弱
Elastic Beanstalk (AWS)は競合他社に比べ、バグの検出、アプリケーションのパフォーマンス監視システム、ドキュメントに弱さが見られます。
- 理解が難しい
AWSのチュートリアル動画がどれほど魅力的で簡単そうに見えようとも、新規で使い始めたユーザーは多くの設定が必要なので、プラットフォームを理解するのは難しいと言えます。
- 追加リソースの費用
Elastic Beanstalk (AWS)は無料ですが、サーバーリソースは有料なので、最終的には多くのリソースを使用し、より多くの支出をすることになります。
- CPU性能の劣悪さ
Elastic Beanstalk (AWS)はPaaSの競合他社と比較すると、CPUの性能が劣ります。
- 高い学習曲線
他のPaaSプラットフォームと比較して、Elastic Beanstalkの学習曲線は急なので、熟知するには学習が必要です。Elastic Beanstalkは最近、重要な機能を追加しましたが、新しいユーザーにとって簡単になったわけではありません。
Elastic Beanstalkやその他のAWSサービスに慣れるには、数週間かかる可能性があるので、その覚悟が必要です。
- 柔軟性
AWSにはさまざまな実行方法があるので、その量に圧倒されてしまうと、利用環境内の全ての機能を見失ってしまう可能性があります。
Google App Engine
Google App Engineは、GoogleがホスティングするPaaS(サービスとしてのプラットフォーム)プラットフォームです。モバイルバックエンドやスケーラブルなWebアプリケーションを構築、開発、デプロイできます。
Python、Java、PHPなど多くのプログラミング言語をサポートしています。App Engineは、Container Engine、Compute Engine、Container Registry、Cloud Functions、ストレージ・データベースを提供するGoogle Cloud Platformのサービスの1つです。
Google App Engineは、高速、簡単、リーズナブルな価格設定になっています。初心者や小規模なアプリを素早く作りたい開発者に最適な、無料枠が用意されています。
また、自動スケーリングを実行、インスタンスを自動的に追加、アベイラビリティの自動的な処理も可能です。App Engineのパフォーマンスに関しては、開発者コミュニティでも肯定的な評価が聞かれます。
また、App EngineとCloud Datastoreを安全に統合し、それを通じてさまざまなGoogleアプリを、簡単に統合できる機能も便利です。
Google App Engineのメリット
- Googleが提供する他のサービスへのアクセス
Google App EngineではすべてのGoogleのクラウドサービスにアクセス可能で、この機能は、アプリ開発者にとって有益です。
- 非同期タスクの実行がわかりやすい。
Google App Engineでの非同期関数の実行は、Herokuや他のPaaSプラットフォームよりも簡単です。
- Googleのクラウドのインフラ上にホスティング
Google App EngineはGoogleのクラウドのインフラ上で動作します。Googleがホストするサービスであるため、AWSのような競合他社よりも稼働率が高いと言えます。
- デプロイが簡単
Google App Engineが新しい開発者に提供する利点の1つがこの、デプロイのしやすさです。
- 自動スケーリング
Google App Engine には自動スケーリング機能があり、初心者や上級者でも技術的な難題に直面することなくアプリケーションをスケーリングできます。
- 無料枠
Google App Engineには、初心者がプラットフォームを学び、ワクワクするようなアプリケーションを構築するために十分な無料リソースが付属しています。
- すべてのサービスを1箇所で利用
Google App Engineでは、Googleのすべてのクラウド機能を利用できるため、すべてのサービスの管理は1カ所でできます。
Google App Engineのデメリット
- Google App Engineは先行きが不透明
GoogleはApp EngineをGoogleの核となる製品として捉えていないため、見通しが定かではありません。Googleが過去に、テクノロジーの方向性を変えたことは、よく知られています。開発の前例から見て、この製品はGoogleの長期計画には載っていないのではないかと推測されます。
- 開発者の支出を管理するのが難しい
支出を常に把握するのは困難なため、管理がしづらいでしょう。サービスの請求は従量制で、月末に思いがけない額の請求書が届く可能性もあります。
- 地理的に広範囲なサポートが乏しい
GoogleのPaaS(サービスとしてのプラットフォーム)は、Elastic Beanstalk(AWS)やHerokuの機能に遅れをとっています。多くの人が、Googleは現時点では競合他社を相手にする準備はできていないと考えています。
このプラットフォームは長く存在していますが、競合他社に比べると地域的なサポートが限られているのが現状です。
- サポートに課題
有料サービスを使っていても、特に新規ユーザーにとっては、十分なサポートを得るのが困難な場合があります。
- SQLデータベースが利用できない
Google App Engineは、GoogleのNoSQLクラウドデータベースを使用しています。つまり、アプリケーションでSQLデータベースを使用するという選択肢はありません。
Dokku
DokkuはDockerベースのミニHerokuで、100行ほどのBashスクリプトで構成されています。Herokuのクローンツールであり、Gitリポジトリ経由でプッシュするだけで、複雑なアプリケーションを構築しデプロイできます。
このDockerベースのミニHerokuは、現存する最小のPaaS・実行基盤です。Herokuのビルドパックを直接サポートしているため、既存のHerokuアプリの移行に頭を悩ます必要はありません。また、データストアや他のコンポーネントのために、いくつかのプラグインも提供されています。
Dokkuは、Herokuと同じように、サーバー上にWebアプリケーションを簡単にデプロイし、管理できます。そのため、Digital Ocean上のDokkuは、Digital Oceanのサーバーの追加コストを考慮したとしても、驚きの組み合わせだといえます。
Digital Oceanは、より安く、より速く、そしてユーザーがより多くのことをコントロールできるようデザインされています。Digital OceanにはDokku Droplet(ドロップレット)を作成するワンクリックのアプリケーションがあるので、数分もあればプライベートサーバーを起動できます。
Digital OceanにプリインストールされたDokkuイメージのおかげでDokkuを自分でインストールする手間を省けます。つまり、すぐにサーバーを立ち上げ、Dokkuを使い始められると言うことです。
DokkuのサーバーをDigital Oceanに設置し、ご自分のルートドメインを接続すれば、簡単な静的サイトを手間なくデプロイできます。
Dokkuのメリット
- シンプルである
Digital OceanでのDokkuの使用は、セットアップが簡単で、プリインストールされたDokkuイメージを使えばすぐに実行できます。サーバーを立てて稼働させるまで1分ほどです。
- オープンソース
DokkuはDocker上に構築されたオープンソースのPaaS(サービスとしてのプラットフォーム)で、オープンソースのHeroku Buildpackを使用しています。また、Digital Oceanのテクニカルサポートを受けられます。
- Dockerで構築
Dokkuは、DockerミニHerokuビルドパックを備えています。
- 無料
Dokkuはオープンプラットフォームです。Dokkuを実行するためには唯一、Digital Oceanのホスティングプランへの支出が必要です。アプリが公開されたら、サーバーを限界までプッシュできます。
- Gitデプロイメント
Dokkuでは、Gitプッシュでアプリをデプロイできます。
Dokkuのデメリット
- サーバーの運用に多少の経験が必要
Dokkuを活用するには、ある程度のサーバー運用の経験が必要です。一部のプラグインを手動で設定したり、Nginxの設定を変更したり、システム ツールのデバッグに切り替えたりする必要があります。
- 初心者には複雑
Dokkuをベースにしていて、優れたプラットフォームではありますが、サーバーのインストールに複雑なレイヤーを追加してしまう可能性があります。
- けわしい学習曲線
Dokkuは、プラグインのインストール、コマンドの実行、その他多くのタスクを実行するために、VPSへのルートアクセスが必要となります。心に留めておいていただきたいのは、DokkuではHerokuよりも多くのコマンドライン設定を実行する必要があり、本格的な学習が必要だということです。
Firebase
Firebaseは、Googleが提供するバックエンドのクラウドサービスプラットフォームです。通知、認証、その他のフロントエンドサービスなどの機能を備えたリアルタイムアプリケーションを構築し、パワーアップさせられるようデザインされています。
Firebaseは、サーバサイドのコードを書くことなくホスティング、バックエンドサーバの管理、バックエンドサービスを作成することで、開発者の大きな負担を取り除きます。
Firebaseは、自動SSL暗号化に対応するシンプルなNoSQLデータベースと、手動データベースを作成するためのGUIを使用して、バックエンドストレージを自動的に構成します。
Firebaseは認証に優れたツールです。堅牢なAPI経由によるOAuthロジックの抽出により、Facebook、Twitter、Google、その他のプラットフォームを介した認証が容易になります。
ビルトインのGoogle Analytics と AdSenseにより、開発者はトラッキングや広告のためにSDK や外部ライブラリを追加する手間を省けます。また、Firebaseアプリを実行している複数のデバイスで、データの変更を即座に同期させることもできます。
データベースプラットフォームはJSONを使用していて、Webまたはモバイルアプリケーションに適しています。Android、iOS、Webアプリケーションに対応しているので、ネイティブアプリやWebベースの管理コンポーネントを作成したい場合、最適な選択肢となります。
最新バージョンでは、完全にGoogle Cloudのインフラでホストされ、クラウドストレージやAndroid/iOSデバイスのPush通知など、すばらしい機能を備えています。
Firebaseのメリット
- リアルタイム データベース
Firebaseの優れた機能の1つ、それがリアルタイムでのデータ認証で、データベーステクノロジーの未来とも言えます。ほとんどのデータベースプラットフォームは、オンデマンドでデータを同期するためにHTTPコールを行います。
Firebaseは従来のHTTPを使用しません。使うのはHTTPより高速なWebSocketです。必要なのは1つのソケットだけで、1つの接続ですべてのデータを自動的に同期させられます。
このリアルタイムデータベースでは、従来のリレーショナルデータベースとは異なるNoSQLクラウドデータベース上で、データの保存、取得、同期ができます。その認証のために、電子メール/パスワードの認証システムが組み込まれています。
また、Twitter、Google、Facebook、GitHubのOAuth2にも対応しています。この認証もデータベースに直接統合されていて、データをコントロールするためのアクセス権を付与します。
- ホスティング
Firebaseには、HTTP/2を使用して単一のグローバルCDNから提供される、すべての静的ファイルのための、使いやすいクラウドホスティングサービスがあります。
- 自動通知
FirebaseのNotificationsは、Cloud Messaging(FCM)とFCM SDKをベースにした無料のサービスで、モバイルアプリ開発者向けのターゲットユーザ通知を可能にします。
Firebaseは手動でメッセージを送信することなく、自動更新通知によって2つのシステムの同期を維持します。
- 拡張性の高いアプリケーション
データをストリームとして扱えるので、拡張性の高いアプリケーションを構築できます。
- JSON
Firebaseのデータベースプラットフォームは、モバイルおよびWebアプリケーションに最適なJSONを使用します。
- 無料枠
Firebaseには、アプリケーションの構築を趣味で行う人向けに無料のSparkプランが用意されています。
- シンプルなUIでサーバ不要
FirebaseのプラットフォームのシンプルなUIにサーバーは必要ありません。
Firebaseのデメリット
- ベンダーロックインあり
Firebase プラットフォームからアプリケーションを移行することは、不可能ではないにせよ、難しいと言わざるを得ません。自分のアプリケーションに適したプラットフォームであるかどうか、事前に十分な検討が必要です。
- サーバーサイドの制限
バックエンドの制限は、Firebaseプラットフォーム最大の欠点だと言えます。Herokuと比較すると柔軟性に欠け、より高度なプロジェクトの開発が制限される可能性があります。
頼れるのはGoogleの「ブラック ボックス」だけです。この制限は、バックエンドのオペレーションを制御する能力を損なうことにつながります。Firebaseはバックエンドを構成するためのユーティリティをいくつか提供していますが、それでもある程度は制限があります。
- エンタープライズサポートと専用サーバー
Firebaseは、エンタープライズサポートや専用サーバーは提供していません。SLAや個人情報保護の要件によっては、これが問題となる可能性があります。
Open Shift
OpenShiftは、Redhatが提供するコンテナ化サービスのシリーズの1つです。そしてそのシリーズの主要サービスとなるのが、OpenShiftコンテナプラットフォームで、Dockerコンテナ上で作成されたオンプレミスPaaS(サービスとしてのプラットフォーム)です。
Red Hat Enterpriseがこの製品をパワーアップさせ、それはKubernetesを通じて管理されます。OpenShift OnlineはSaaS(クラウドサービスとして提供されるソフトウェア)として機能するプラットフォームです。またOpenshiftはOpenShift Dedicatedというマネージドサービスも提供しています。
OpenShiftコンソールは、管理者と開発者向けに、コンテンツを目的別に視覚化してくれます。管理者用ビューでは、コンテナの健全性やリソースの監視ができ、また、ユーザー管理の手間を軽減、オペレーターの機能などを容易にします。
開発者用ビューでは、ネームスペース内のアプリケーションリソースに焦点を当てています。OpenShiftは、Kubernetes CLIアクションプリセットに対応したCLIも提供しています。
Open Shiftのメリット
- 市場への投入時間を短縮
OpenShiftを使うことで開発チームは、アプリケーションの設計やテストなど、重要な機能を優先させることができます。
開発者は、コンテナ管理やデプロイメント以外の作業に時間を費やせます。その結果として、開発プロセスが速まり、市場投入までの期間も短縮されます。
- アプリ開発の高速化
コンテナのデプロイと管理は複雑で、開発者にとって時間のかかる作業です。
OpenShiftでは、迅速なオーケストレーションを促し、アプリケーションのプロビジョニング、デプロイメント、およびスケーリングを素早く行えます。
また、アプリの管理も楽になります。OpenShiftは、コンテナの管理プロセスを整理して自動化することで、DevOpsのプロセスを向上させます。
コンテナの管理に費やす時間が短縮されることで、ビジネスの生産性が向上します。それは、アプリケーション開発プロセスの高速化につながります。
ベンダーロックインがないコンテナベースのプラットフォーム
OpenShiftは、ベンダーにとらわれないオープンソースのプラットフォームで、ユーザーはコンテナのプロセスを新しいオペレーティングシステムに迅速に移行できます。
また、従来の独自のフレームワークからの移行にかかる、高いコストを支払う必要がなくなります。
Open Shiftのデメリット
- ログ管理
- Jenkinsのみに対応
- Webプロジェクトの実行に必要なSSLの知識が必要
- 学習曲線
- 大規模なデプロイメント向け
Engine Yard
Engine Yardは、クラウド アプリケーション管理向けのプラットフォームを提供する企業です。2006年に同社は、ランス・ワリー、エズラ・ジグマントヴィッチ、トム・モーニーニによって共同で設立されました。以来、アプリケーション開発インフラの分野で数々の革新的な実績をあげています。
同社は2013年にハイテク大手Microsoftとパートナーシップを締結しました。その後、Windows Azureのマーケットプレイスで公開され、その一員となりました。
このPaaS(サービスとしてのプラットフォーム)は、Microsoftのクラウドインフラで動作するため、開発者にとって有力な選択肢となり得ます。モバイルおよびWebアプリケーションのデプロイメントが楽になります。
Engine Yardは2015年4月にOpDemandと同社のPaaS Deisコンテナを買収し、CrossoverはEngine Yardを買収しました。Engine Yardは、Gitリポジトリから直接行えるワンクリック デプロイメントに対応しています。
Engine Yardのメリット
- 企業の技術革新の高速化を可能にする
- 企業はリソースをその核となる経営に集中できる
- 市場投入までの時間を短縮し、エンジニアリングにかかる時間を節約
- 最新のテクノロジー
- スケーラビリティとアップタイムの保証
Engine Yardのデメリット
- 無料枠がない
- セキュリティグループの精細さに粗さが見られる
- AWS クラウドでのみ動作
Netlify
Netlifyは、静的WebサイトやWebアプリ向けのホスティングやサーバーレスバックエンドサービスなど、多くの特徴的なサービスを提供する大手クラウドコンピューティング ソリューションプロバイダーです。
Netlifyの注目すべき特徴は、Gitを活用した継続的開発、グローバルレベルのアプリ配信ネットワークインフラ、AWS Lambda関数に対応、サーバーレス フォーム処理などが挙げられます。また、本格的なLet’s Encryptとの統合も可能で、無料および有料プランが用意されています。
Netlifyは、Facebook、NBC、Google、Unilever、Cisco、Nike、TriNet、Kubernetes、Verizon、Citrix、Samsung、LiveChatなど、大手企業のサービスプロバイダーでもあります。開発要件次第では、適した選択となりえます。
Netlifyのメリット
- 良心的な価格設定
Netlifyは、アプリケーションとWebサイトの開発、ホスティング、デプロイメントにとって、財布に優しい選択肢の1つとして知られています。静的アプリの開発とホスティングは大幅な節約ができ、ビジネスを助けます。
- 高速、そして分かりやすい
Netlifyは、機能が豊富でアジャイルなソリューションを提供し、Webアプリと静的Webサイトの開発者は、統合によって目的を達成します。ユーザーは、サイトの機能を修正したり、必要なコンテンツを変更したりする際に、無制限のブランチを作成できます。
- DNS管理
NetlifyはビルトインのDNS管理機能があるので、Webサイトを立てる際に便利です。
Netlifyのデメリット
- ログ
- エンドツーエンドのアプリケーション開発プラットフォームではない
- 帯域幅が高いの場合、コストがかかる可能性がある
Docker
Dockerは、OSレベルの仮想化テクノロジーを利用し、ソフトウェアをパッケージやコンテナで使えるようにするためのPaaS(サービスとしてのプラットフォーム)の集合体です。
コンテナは互いに分離されていて、それぞれのソフトウェア、構成ファイル、ライブラリが存在します。そのため、コンテナ同士は既存のチャネルを介して通信できます。
すべてのコンテナの実行には1つのOSカーネルが使用されるため、Dockerコンテナは仮想マシンよりも少ないリソースを使用することになります。
Dockerには、無料プランと有料プランがあり、コンテナをホストするためのソフトウェアであるDocker Engineが付属しています。
Dockerのメリット
- 分離され安定した環境
コンテナを利用することで開発者は、他のアプリケーションから隔離され、かつ、安定した、一貫性のある環境を築けます。
アプリケーションをデプロイした場所に関係なく、一貫性が保たれます。その結果、デバッグの手間が省け、生産性が向上するので、空いた時間はアプリケーションの機能の強化にあて、ユーザーを魅了するための時間に費やせます。
- 低コストでの高速なデプロイメント
Dockerのコンテナを利用することで、多くの場合、デプロイ時間は数秒に短縮できます。これは、多くの開発者が実感しているDockerの特筆すべき長所です。
プロビジョニングやハードウェアの準備といった特定の作業には何日もかかり、開発者にとっては骨の折れる仕事となる場合があります。しかし、コンテナ化された環境なら、手間をかけずに簡単にでき、作業がはかどります。
- サービス内容の柔軟性
Dockerコンテナでは、開発者のための追加機能が用意されており、非常に柔軟性があります。製品のリリースライフサイクルが進行している間に、迅速なアップグレードの実行に取りかかれます。
変更の実装、コンテナのテスト、および新しいコンテナの起動は簡単です。その柔軟性を考慮すると、Dockerは多くの開発者にとって最良の選択肢と言えます。
複数のサーバにデプロイ可能なイメージを迅速に開発、テスト、リリースできます。新しいセキュリティパッチの有無に関わらず、プロセスは一貫性を保てます。
パッチは即座に適用され、テストされ、本番環境に備えられます。また、Dockerを使うことで、ユーザーはアプリケーションやサービスを高速に起動、クラウド環境を最適な状態にできます。
Dockerのデメリット
- ベアメタルと同等のスピードは得られない
- グラフィカルなアプリケーションには不向き
- 複雑な永続データストレージ
Kubernetes
Kubernetesは、コンテナ用のオープンソースのオーケストレーションシステムです。アプリのデプロイ、スケーリング、管理を自動化するために使用されます。
KubernetesはGoogleによって開発され、アプリケーションのデプロイやスケーリングなどの作業を、簡単に自動化するためのプラットフォームを提供しています。
また、複数のホスト間でのアプリケーションの運用を自動化することも可能です。Kubernetesは様々なコンテナツールで利用でき、当初はDockerにも対応していました。
多くのクラウドサービスプロバイダーが、KubernetesベースのIaaSやPaaSを提供しています。これらのインフラやプラットフォームは、Kubernetesのサービスをサポートしています。また、多くの企業がKubernetesディストリビューションを提供しています。
Kubernetesのメリット
- Kubernetesを使って生産性の向上
Kubernetesは、エンジニアリングワークフロー内に的確に実装されていれば、生産性にメリットをもたらします。Kubernetesのエコシステムは広大で、ユーザーが効率的に活用できる多くの機能を備えています。
開発者は、いくつかのクラウドネイティブなソフトウェアツールを利用して、他の方法では不可能であった高度なソリューションを実現できます。
Kubernetesを使ってアプリを安定化
Kubernetesを使用することでユーザーは、アプリケーションがいつでも確実に機能しているという安心感を得られます。
ユーザーは、ローリングアップデートを利用して、ダウンタイムに対処することなくアプリケーションを修正できます。Kubernetesは高可用性アプリケーションに対応するよう構成することができ、主要ベンダーやクラウドサービスプロバイダーと共に運用することで、高いアップタイムを期待できます。
- 手頃な価格
Kubernetesは手頃な価格に設定されており、恩恵を受けることができる多くのオーケストレーションプラットフォームが存在します。
Heroku 代替サービス | 比較表
プロバイダー | 概要 | 価格 | スケーリング可否 | エコシステム |
Heroku | Herokuは、開発者がアプリケーションを完全にクラウド上で構築、実行、運用できるようにするためのPaaS(サービスとしてのプラットフォーム)です。 | 無料枠 + 有料プラン 月額$25 | 可 | 独自 |
Back4app | モダンなアプリを構築するためのローコードバックエンド | 無料枠 + 有料プラン 月額$5 | 可 | オープンソース |
Elastic Beanstalk | Java、. NET、PHP、Node.、js、Python、Ruby、Go、Dockerで開発されたWebアプリケーションやサービスを、Apache、Nginx、Passenger、IISといった、使い慣れたサーバにデプロイ、スケーリングする際に便利なサービス。 | 無料 + 他のAWSサービスのみ有料 | 可 | 独自 |
Google App Engine | アプリ開発者は、完全に管理されたサーバーレスのプラットフォーム上で、あらゆるプログラミング言語によるスケーラブルなWebおよびモバイルバックエンドを構築できる。 | 従量課金 | 可 | 独自 |
Dokku | これまで見たこともないほどに小さなPaaSの実装Dokkuは、アプリケーションの構築とライフサイクルの管理を支援します。 | ダウンロード無料 | 可 | オープンソース |
Firebase | 構築、改善、成長 – モバイルアプリの成功をシンプルに | 無料枠 + 従量課金制プラン | 可 | 独自 |
OpenShift | エンタープライズアプリケーション開発用のオープンソースのコンテナアプリケーションプラットフォームで、Kubernetesのコンテナオーケストレーションをベースとしている。 | 無料トライアル + 価格はWebサイトを要確認 | 可 | オープンソース |
EngineYard | 10年に渡ってRuby DevOpsを先導。「あなたはアプリケーションを。私たちは運用を」プラットフォームをネット経由のサービスとして提供する。PaaSサポートあり | 無料トライアル + 有料プラン 月額$49 | 可 | 独自 |
Netlify | Netlifyでモダンな静的Webサイトをデプロイ。CDN、継続的デプロイ、1クリック HTTPS、その他必要なサービスが利用可能。無料で利用開始が可能 | 無料枠 + 有料プラン 月額$19 | 可 | 独自 |
Docker | 開発者のアプリ開発を強化 | 無料枠 + 有料プラン 月額$5 | 可 | オープンソース |
Kubernetes | コンテナ型アプリケーションのデプロイ、スケーリング、管理を自動化するためのオープンソースシステム | ベンダーによる | 可 | オープンソース |
おわりに
この記事では、Herokuの代替サービスとして最適なものをご紹介しました。プラットフォームの機能、価格、ホスティングのオプション、SLA、そして柔軟性を比較しました。
正しいベンダー、間違ったベンダーといったものは存在しません。理想的なサービスを決定するための判断は、プロジェクトが必要とするもの・要件によって異なります。MVPや社内アプリのような特殊なプロジェクトには、Back4app、DokkuまたはFirebaseが向いているかもしれません。
また、より高度で大規模なプロジェクトなら、AWS Beanstalkを使用したほうがよいかもしれません。