ArukasでDockerを使ったDjango/PostgreSQLのサービス公開手順(途中まで)
Arukasとは
Arukas は、Dockerイメージの起動に最適化されたホスティングサービスです。本記事では、ArukasでDjango/PostgreSQLのサービスを起動するまでの手順をまとめます。
※注意 本記事では、サービスの起動までの設定(Arukas/GitHub連携)は行いましたが、今のところ「アプリは停止状態です。」と表示されたままで動いてくれません。。。 そのため、WebARENA(VPSクラウド) で構築をし直しました。
無料のArukasがダメだったので、安いVPS環境を探しました。最終的に決めたWebARENA(VPSクラウド) は、 データ転送量が無料、メモリ1GB/1CPU/SSD20GBのスペックで月額360円で破格です。しかもNTT系列で、20年間の運用実績もあり、信頼できるためここにしました。
WebArenaでの環境構築については、以下の記事で公開しています。
VPSのWebArenaにDockerをインストールしてDjango/PostgreSQLのWebサービスを公開する
なぜArukasを選んだか
最近はサービス開発でDockerを使用しています。
そのため、作成したサービスをそのまま本番で利用できるCaaS(Container as a Service)環境を探していました。
同様のサービスとして、 AWSであればECSやFargateがありますが、Arukasを使う上でのメリットは、
- Freeプランであれば無料で始められる
- ネットワークの料金は無料(パケ死しない)
でになります。サービスを試作する上で、無料で始められ、追加の料金が発生しないのは大きな利点です。そのためArukasを利用することにしました。
一方、Arukasを利用する上でのデメリットとしては
- データの永続化ができない(Docker Volume は未サポート)
データを永続化するには外部のサービスが必要になります。ただ、今回作成したサービスは、独自データの蓄積がないため、データの永続化が必要ありませんでした。その点もArukasを選んだ理由になります。
事前に必要なもの
箇条書きで記載します。
- クレジットカード
- 電話(アカウントのアクティベーションが電話認証)
- Gitリポジトリ(Github/bitbucket)アカウント
- Docker Hub アカウント
Arukasの登録手順とサービス公開準備
Arukasでアカウント登録
まずは、アカウントを登録します。以下のURLからログインして下さい。

次の画面で、以下を入力します。
- アカウント名
- メールアドレス
- パスワード

登録したメールアドレスにメールが届きます。メール内のリンクをクリックします。

登録が完了し、ログインへの画面がブラウザに表示されます。

開かれたログインページにメールアドレスとパスワードを入力して、ログインを押します。

ログインし、プロフィールの入力画面が開きますので、以下の情報を入力して保存をおします。
- 氏名
- 住所
- 居住国

保存に成功後に「アプリケーションを作成」を押すと メッセージで「電話認証」が必要と表示れます。

リンクを押すと、電話番号の入力し、CALLを押します。押すと電話がかかってきて、6桁の数値が音声通知されます。通知は2回で切れるため、事前に入力の用意をしておくといいと思います。

電話認証が完了すると、プロフィールが表示されて完了になります。

「アプリケーションを作成」を押すと 、今度はクレジットカードの入力を求められますので、「クレジットカードの登録」をおします。

登録ボタンをおして、クレジットカード情報を登録します。


以上で、Arukasのアカウント登録までは完了です。
Docker Hub連携
次に、Docker Hubとの連携を行います。
サイドメニューの「設定」を押し、「Docker ID」を押します。

「プライベートリポジトリの認証情報を追加する」を押します。

事前に登録しておいたDocker Hub IDを追加し、保存します。


以上で、Docker Hub IDの連携が完了です。
Docker Hubへのイメージ登録
Docker Hubにログインし、登録イメージを確認します。今回はまだイメージを登録していないため、登録から行います。
ヘッダーメニューの「Repositories」を押して、リポジトリページを表示し、画面右上の「Create Repository +」を押します。

右上に記載した、CLIでコマンド実行し、DockerHubへイメージを登録します。

サービス公開
アプリを起動すると動くはずですが、今のところ「アプリは停止状態です。」と表示されたままで動いてくれません。。。

Arukasはデバッグが非常に難しく、原因の特定はできていないのですが、おそらく下記の2点が怪しいと思っているのですが、解決には至っていません。
- Djangoを動かすために必要なテーブル作成やユーザ登録ができてない
- python manage.py migrate
- python manage.py createsuperuser
- Dockerでサービスの起動コマンドが実行されていない
- docker-compose up
やり方としては、上記を実行するシェルスクリプトを起動時に指定するなどかなぁとは思っているのですが、やはり起動中のどこでエラーになっているのかを特定が難しいため、保留にしています。
結論としては、DjangoをArukasで動かすのは、上記2点の対策が必要となるため、自分でコマンドを直たたきできる別途VPSサーバに環境を構築することにしました。
無料のArukasがダメだったので、安いVPS環境を探しました。最終的に決めたWebARENA(VPSクラウド)
は、 データ転送量が無料、メモリ1GB/1CPU/SSD20GBのスペックで月額360円で破格です。しかもNTT系列で、20年間の運用実績もあり、信頼できるためここにしました。
WebArenaでの環境構築については、以下の記事で公開しています。