inductor's blog

nothing but self note :)

DigitalOcean App Platformを試してみる

DigitalOcean App Platformについて

DigitalOceanはクラウドプロバイダーの1つで、マネージドKubernetesやDroplets(AWSで言うEC2)などを中心に、簡単に使えるクラウド環境を提供してくれるサービスです。

個人の検証用途では非常にお世話になっていて、PaaSが出たという以下のブログを見かけて使用感を試してみました。

www.digitalocean.com

このブログ記事では、このプラットフォームがKubernetes上で作られていることが示されており、オープンな技術でこのようなマネージドサービスが実現できるというのは良いことだなと個人的には考えています。

やってみる

https://cloud.digitalocean.com/appsにアクセスしてからLaunch Your Appを選択するとGitHubのアカウント紐付けを求められるので紐付けます。

今回はたまたま作ったこのToDoアプリのAPIサーバーがあるのでこれを選んでみましょう。

github.com

リポジトリを選択したらプランを選ぶ画面になりました。どうやら、Node、Python、Go、Ruby、PHPなどが選べるようになっているようです。Buildpackが裏側で動いてるのかもしれません。

f:id:inductor:20201007031758p:plain

とりあえずは一番小さなインスタンスで起動してみます。ログの一部を見ると、ビルドが始まって勝手にコンテナレジストリへのPushまで行われていることがわかります。

f:id:inductor:20201007032112p:plain

ログに以下のような記述があったので、やっぱりBuildpackが動いてるような気がします(予想)

go-todo | 03:20:55 Adding layer 'launcher'
go-todo | 03:20:55 Adding layer 'heroku/go:profile'
go-todo | 03:20:55 Adding 1/1 app layer(s)
go-todo | 03:20:55 Adding layer 'config'

あとはほっといたら勝手にURLが払い出されて、実際にサービスにアクセスすることができました。

f:id:inductor:20201007032424p:plain

一つ気になったのが、Web画面からコンソールにアクセスできるみたいですね。触ってみた感じコンテナの中でシェルを立ち上げているようでした。便利なのなかんなのか、現時点ではまだよくわかりませんが、検証するときにはよさそう。本番では逆につけたくない機能ですね。。。

f:id:inductor:20201007032413p:plain

全体的には以下の点が良さそうでした

  • Dockerfileがなくても勝手にビルドされてKubernetes上でアプリが立ち上がり、パブリックなエンドポイントまで用意してくれる。コンテナレジストリなどの心配もいらない
  • ポート番号などは自動識別じゃないっぽい(初期値は8080固定?)
  • git pushなどのトリガーに合わせて勝手に再デプロイしてくれそう
  • コンソールに直接入って作業できるので検証が便利そう
  • ログやメトリクスなど最低限のものは見れそう
  • DBの連携もできそう

Cloud Runと比べるとDBの連携ができそうなのは便利ですが、シェルに入れるのは良いことなのか悪いことなのか、現時点ではちょっと判断が難しいですね。

全体的には便利そうでとても良いと思います!!