お問い合わせはこちら

Dokkuとは?Herokuとの違いや特徴・使い方をわかりやすく解説

公開
更新
Dokkuの解説

近年はPaaSの普及により、開発者はインフラ管理の手間なくアプリケーションを素早くデプロイできるようになりました。

その中でも、オープンソースのPaaSであるDokkuは、Herokuのような使いやすさと、VPSのようなカスタマイズ性を兼ね備えた要注目のプラットフォームです。

この記事では、Dokkuの特徴や使い方について詳しく解説します。

Dokkuを使えば、自由度の高い環境で、簡単かつ迅速にアプリケーションのデプロイが可能になるでしょう。

Dokkuとは

Dokkuとは、オープンソースのPaaSで、アプリケーションのデプロイや管理を簡単に行う環境を提供します。Dokkuは単一のサーバー上で動作し、git pushによるデプロイをサポートしています。Dockerfileを使用するか、Buildpacksで言語を自動検出してアプリケーションをビルドし、ビルドされたイメージからコンテナを起動します。また、nginxやcronといったプログラムを活用して、Webプロセスの自動ルーティングやバックグラウンドプロセス、定期的なタスクの管理も行います。

Herokuの完全有料化に伴い、多くの開発者が代替手段を探す中で、Dokkuが注目を集めるようになりました。Dokkuは無料で使用でき、自由にサーバーにインストールできる点が大きなメリットとして挙げられます。Herokuのシンプルなデプロイと管理の利便性を維持しつつ、コスト効率の高い柔軟なソリューションとして、Dokkuは理想的な選択肢の1つとなっています。

Dokkuの特徴

Dokkuは、Herokuと同様にアプリケーションをホストできるオープンソースのPaaSです。Dokkuの主な特徴は以下の通りです。

  • Gitを使ってアプリケーションをデプロイできる
  • Herokuと同じBuildpackを使用できるため、移行が容易
  • DockerベースでアプリケーションをホストするためDockerの知識が活かせる
  • プラグインを使って機能を拡張できる
  • 無料で利用できるオープンソースソフトウェアである

総じてDokkuは、Herokuと同等の機能を持ちつつ、よりカスタマイズ性が高く、コストを抑えられるPaaSサービスと言えます。特にDockerやGitの知識があれば、より効果的に活用できるでしょう。

Herokuとの違い

DokkuとHerokuはよく似たサービスですがさまざまな違いがあります。2つのサービスの違いを以下にまとめました。

DokkuHeroku
ホスティングVPS、クラウドなど自分で選ぶHerokuのクラウド
デプロイ方法Git push、Docker ImageGit push、Heroku CLI
料金無料有料
管理方法CLI
(プラグイン等でWebダッシュボードも可能)
CLIとWebダッシュボードが選べる
拡張性プラグインを使用して拡張Herokuアドオンを使用して拡張
スケーリング手動自動スケーリングが容易
データベース自分でデータベースを設定・管理Heroku Postgresなどのデータベースアドオンが利用可能
セキュリティ自分で対策Herokuがセキュリティを管理

大きな違いは、ホスティング、料金、スケーリング、セキュリティの4つの点です。Dokkuはユーザー自身がVPSやクラウドを選び、設定や管理を行いますが、Herokuはクラウド上でホスティングされ、設定や管理の手間が省けます。料金面では、Dokkuは無料ですが、Herokuは有料プランが基本です。スケーリングに関しては、Dokkuは手動で行う必要がありますが、Herokuは自動スケーリングが容易です。セキュリティでは、Dokkuは自分で対策を講じる必要がありますが、Herokuはプラットフォームがセキュリティを管理します。

総合するとDokkuはオープンソースで低コストな代わりに自分で全て管理する必要がある、Herokuはサービス・プロバイダが管理してくれるので手間が少ない代わりにコストがかかる、という違いがあります。
これらの違いを理解し、自分のプロジェクトに最適なプラットフォームを選ぶことが重要です。

Herokuの詳細はコチラ

Herokuとは?使うメリットや料金体系・使い方を詳しく紹介

Herokuとは?使うメリットや料金体系・使い方を詳しく紹介

本記事では、PaaS(Platform as a Service)の一つであるHeroku(ヘロク)について解説します。 Herokuを使えば、アプリケーションの開発やデプロイが簡単にでき、運用の手間も大幅に減らせます。 開発者やスタートアップ企業の方々にとって、Herokuは生産性向上やコスト削減に役立つサービスと言えるでしょう。 Herokuの特徴やメリット、使い方、料金体系などを詳しく見てい…

Dokkuの使い方

Dokkuの使い方は非常にシンプルです。大きく以下の4つの手順を実施するだけで簡単にアプリケーションのデプロイができます。

  1. VPSを選択する
  2. Dokkuをインストールする
  3. Dokkuの初期設定を行う
  4. アプリケーションをデプロイする

ここからはKAGOYAのVPSを例として、それぞれのステップについて、詳しく見ていきましょう。

テンプレート利用で簡単に構築可能

KAGOYA CLOUD VPSではDokkuのアプリケーションセットアップもご用意しております。

こちらをご利用いただけましたら、インストール作業などをスキップして環境構築も可能ですので、適宜ご利用ください。

VPS | クラウドとレンタルサーバーの KAGOYA

VPSは、KVM基盤を利用したLinuxOS環境。OSの種類やバージョンを多数揃えており、使いたいアプリケーションを選択するだけで、簡単に利用できます。

1.VPSを選択する

Dokkuを使用するには、まずVPS(仮想専用サーバー)を選択する必要があります。

Dokkuは、Ubuntu 20.04以降のOSに対応しているため、対応しているVPSを選びましょう。また、Dokkuを快適に使用するためには、最低でも1GBのRAMが必要です。さらに、SSHでのアクセスが可能であることも重要な条件です。これらの条件を満たすVPSを選択し、サーバーを立ち上げましょう。VPSの選択が完了したら、次はDokkuのインストールに進みます。

以下はKAGOYAのVPSの例です。

KAGOYAのVPSのコントロールパネルにログインし、左上にある「インスタンス作成」を押します。

KAGOYA VPSのコントロールパネル

パッケージを選びます。DokkuをサポートしているUbuntuを選びましょう。

KAGOYA VPSでのOSテンプレート選択

スペックを選びます。Dokkuの推奨スペック以上を選ぶのが望ましいです。

メモリ1GB
OSバージョンUbuntu 20.04/22.04
Dokku推奨スペック

SSHでログインするための認証キーを追加したのちvirtio、セキュリティグループ、ネットワークを必要に応じて設定します。

コンソールのログインパスワードとユーザーデータ、インスタンス名を設定します。ユーザーデータとはインスタンスができた直後に実行される処理です。Dokkuを使うだけなら空欄で構いません。

KAGOYA VPSのログインパスワード設定

全て設定し終わったら、いちばん下の「インスタンス作成」ボタンを押します。しばらく待つとインスタンスができるので、それを使ってDokkuをインストールします。

2.Dokkuをインストールする

VPSインスタンス(サーバー)が用意できたら、以下の手順でDokkuをインストールしましょう。

1.ターミナルなどのクライアントからSSHでサーバーに接続します。

ssh -i [ログイン認証キーのパス] root@[サーバーのホストネーム]
Dokkuのインストール風景

2.以下のコマンドを入力して、Dokkuのインストーラをダウンロードします。

wget -NP . https://dokku.com/install/v0.34.4/bootstrap.sh
Dokkuインストーラーのダウンロードの様子

「’./bootstrap.sh’ saved」とメッセージが出れば成功です。

Dokkuインストーラーの準備完了

3.インストーラーを実行して、Dokkuをインストールします。

以下のコマンドを実行し、インストールしましょう。時間が5分から10分かかりますが、待っていれば終わります。

DOKKU_TAG=v0.34.4 bash bootstrap.sh

長いメッセージの後、「echo ‘CONTENTS_OF_ID_RSA_PUB_FILE’ | dokku ssh-keys:add admin」と出たらインストール成功です。初期設定に進みましょう。

Dokkuインストールの作業風景

3.Dokkuの初期設定を行う

Dokkuがインストールされたら、初期設定を行いましょう。具体的にはSSHと仮想ホストの設定が必要です。以下の手順で行います。

1.設定コマンドを実行します

以下のコマンドを実行しましょう。ドメインやIPアドレスのところは自分の設定項目に置き換えてください。

#公開鍵をDokkuに追加
cat ~/.ssh/authorized_keys | dokku ssh-keys:add admin

# 2. グローバルドメインの設定
dokku domains:set-global [dokkuに割り当てるドメイン名]

# または、IPアドレスを使用する場合
dokku domains:set-global [サーバーのipアドレス]

# または、sslip.ioサービスを使用する場合
dokku domains:set-global [サーバーのipアドレス].sslip.io

ここでは例として以下のコマンドを実行します。

cat ~/.ssh/authorized_keys | dokku ssh-keys:add admin
dokku domains:set-global 133.18.232.13

「Set xxxxxx」と出てきたら初期設定は完了しています。

Dokkuの設定画面

4.アプリケーションをデプロイする

Dokkuにアプリケーションをデプロイするには、gitを使ってソースコードをDokkuサーバーにpushします。ここでは例として公式ドキュメントにあるruby-getting-startedというアプリケーションを作り、デプロイしてみましょう。

1.ローカル環境に、ruby-getting-startedのリポジトリをクローンします

ローカル環境で以下のコマンドを実行し、gitからruby-getting-startedをクローンしましょう。

git clone https://github.com/heroku/ruby-getting-started
Dokkuでのアプリのデプロイの様子

2.Dokkuのサーバーにアクセスして、アプリを作ります。

DokkuのサーバーにSSHでアクセスして、以下のコマンドを実行します。

dokku apps:create ruby-getting-started
DokkuでのSSHアクセスの様子

「Global server virtual host not set, disabling app vhost…」というメッセージは、まだアプリがデプロイされていないため仮想ホストが有効化できなかったことを示すものです。特に問題はないため次に進みましょう。

3.データベースの作成と設定をします

Dokkuにはデフォルトではデータベースが提供されていません。ユーザーが自分で作成し、アプリにリンクする必要があります。

まず、以下のコマンドによりデータベースを作成しましょう。ここでは例としてPostgresを使います。

dokku plugin:install https://github.com/dokku/dokku-postgres.git
dokku postgres:create railsdatabase
Dokkuでのデータベース作成の作業画面
Dokkuでのデータベース作成完了画面

4.データベースとアプリをリンクします

データベースができたら、アプリ(ここではruby-getting-started)とリンクします。
以下のコマンドを実行しましょう。

dokku postgres:link railsdatabase ruby-getting-started
Dokkuのデータベースとアプリの連携

「not found」と出ますが、これもまだアプリをデプロイしていないからです。環境変数の設定はできているので、次に進みましょう。

5.アプリをデプロイします。

いよいよアプリをデプロイします。
ローカル環境から以下のコマンドを実行します。

cd ruby-getting-started
git remote add dokku dokku@[FQDN(またはIPアドレス)]:ruby-getting-started
git push dokku main
アプリのデプロイの様子

デプロイには数分かかります。
長いメッセージのあとで「Application deployed」と表示されればデプロイ完了です。

デプロイが完了したら「http://[サーバーのホスト名]」でアクセスしてみましょう。

デプロイ成功の確認

「Getting Started with Ruby on Heroku」と表示されればデプロイ成功しています。

■デプロイ成功後にNginxのデフォルトページが出る場合

デプロイが成功してWebからアプリにアクセスしても「Welcome to nginx!」と表示されてしまう場合があります。

デプロイ後に表示される「Welcome to nginx!」

これはnginxのインストール時にデフォルトページが自動生成されてしまうことが原因です。
この画面が出た場合には、サーバー上で以下のコマンドを実行することで解消できます。

rm /etc/nginx/sites-enabled/default
dokku nginx:stop
dokku nginx:start
解消方法の実行の様子

まとめ

Dokkuは、オープンソースのPaaSプラットフォームで、Herokuと同様の機能を提供しながら、自前のサーバーにインストールして使用できるのが特徴です。

VPSを選択し、Dokkuをインストール、初期設定を行った後、gitを使ってアプリケーションをデプロイするだけで、簡単に本番環境を構築できます。

Herokuの代替として、自由度の高いDokkuは、個人開発者やスタートアップに最適なプラットフォームといえるでしょう。

日額 20円 で使えるVPS

開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS

カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。