この記事は東京高専プロコンゼミアドベントカレンダー②3日目の記事です。
今日は何とか12/03 (JST)中に投稿できそうです…
今年の高専プロコンの開発では自由部門GulliverBlocksのAPIサーバーをHerokuを使って運用していました、非常に便利だったのですゝめ記事を書きたいと思います。
Heroku とは

Webアプリケーションをデプロイするときにめんどくさいことを全部やってくれるクラウドサービスです、流行りの言葉で言うとPaaS(Platform as a Service)です。
今年の自由部門GulliverBlocksの開発ではAPIサーバーをHerokuで動かしていたりします。
メリット
サーバーレス
通常VPSなどでウェブサーバーを立てるときはOSのインストールからウェブサーバー, データベースなどのインストール、設定。アプリケーションの設置、サーバー自体のセキュリティ対策など、様々なことを自分でしないといけないんですが。Herokuを使うとこれらのことはHerokuがやってくれてるのでサーバーを意識せずにアプリーケーションの開発に集中できます。
add-ons
add-onsという概念があって、各種データベースやBugsnagなどの他のSaaSとの連携が数クリックでできます。

デプロイの自動化
GitHubと連携して自動デプロイとかもできます、プロコンの開発ではreleaseブランチを自動デプロイするように設定していました。また、プロコンの開発では使えませんでしたが、デプロイする前に自動テストが通ってるか確認する機能もあったりします。

基本無料
これらのサービスはいくつかの制限はあるものの基本無料で使えます。
デメリット
何もしないと止まってしまう
無料版だとアクセスが30分なと自動でスリープします、次のアクセスはサーバーを起動してからレスポンスを返すのでレスポンスがとても遅くなってしまいます。(まあ30分に1回GASからアクセスさせる等の裏技がないわけではないですが…)
独自ドメインが実質有料
基本的には{appname}.herokuapp.comというドメインがあてられるのですが、無料版で独自ドメインに変えるとhttpのみ(TLS)なしになってしまいます、今どきHttpsでない状態でアプリを公開するなんて論外だと思うので、独自ドメインを当てたい場合は課金が必須と言っていいと思います。
日本にDCがない
GoogleのGCPやAmazonのAWS, MicrosoftのAzureでは♰お金の力♰で当然のように日本にDCがありますが、残念ながらHerokuはヨーロッパとアメリカにしかありません、(執筆時に気が付いたのですが有料版で使えるようになる Heroku private spacesを使えば(インフラはAWSですが)日本のサーバーで動かせるっぽいです。)
日本にDCがないと光の速度は地球に比べて十分に遅いので数十ms~の遅延が生じでしまいます、ECサイトなどではこの遅延は致命的(らしい)です。
まとめ
いかがでしたかというわけで皆さんも使える機会があったらHerokuを使ってみてください。