Dockerコンテナホスティングサービス「Arukas(アルカス)」は2019年9月30日をもちまして新規アカウントの申込みを終了しました。
サービスは2020年1月31日をもって終了しております。
本記事の内容は正式サービス期間中のものです。
さくらインターネット(株)は、2018年3月26日にDockerコンテナのホスティングサービスArukas(アルカス)の正式サービスを開始しました!
ArukasはDockerコンテナのホスティングサービスです。
同様のサービスはGoogleやAmazonにもありまして、さくらインターネットもついに参戦です。
レンタルサーバサービスによくあります期間限定の無料お試しというものはなく、最初から無料プランが提供されています。できることは限られますが、時間を気にせず試せるのはうれしいですね。
早速ためしてみました。
本記事では、自前のDocker環境でコンテナを作成して、そのコンテナをArukas上で起動するまでに、私が実際に行ったことをご紹介いたします。
Arukas(アルカス)環境について
本題に入る前に、Arukasの環境について説明させて下さい。
準備が全て整った後に実際にArukasを使ってみて、思ったのと違う!、となってしまうのはいやだと思いますので、どんな環境でどのようにして使うのかについて簡単にご説明します。
Arukasとは
Arukasは、Dockerコンテナを動かすためのホスティング環境を提供してくれます。プライベート用のDockerコンテナは、自前のパソコンやサーバー上で動かしていると思いますが、さくらインターネット内で管理されたサーバー上で、自分のコンテナを起動することが可能となります。
さくらインターネットの高品質なインフラ環境を利用できるわけです。
また、標準でスケールイン・スケールアウト機能を利用できまして、必要なリソースをオンデマンドで調整可能です。(※有料プランのみ可能です)
Dockerコンテナのホスティングサービスと言えば、AmazonのEC2 Container ServiceやGoogleのGoogle Kubernetes Engineなどが有名ですね。
Arukasも同様のサービスになります。
Arukas上で実行するコンテナの元となるDockerイメージは、DockerHub上にアップされているイメージのみ利用可能です。
下図は、私が体験した結果をもとに想像で書いた構成図です。正式なものではありませんので、参考程度にご利用ください。
画像クリックで拡大表示します
インターフェース
Webインターフェースによる直感的な操作は当然ですが、RESTAPIも用意されていますので、コマンドラインからスクリプトを使用してコンテナ制御を自動化することも容易に実現可能です。
エンドポイント機能
起動したコンテナ内のポートを、外部からアクセスするためのエンドポイント(URL)と紐付けることが可能です。
コンテナを起動して、エンドポイントに使用するポートを指定するだけで、外部からアクセス可能な状態になります。
SSL対応も容易に可能です。
事前準備
自前のDocker環境が既に準備できている前提で進めさせていただきます。
もしお持ちでない場合は、まずご利用のパソコンに仮想マシン環境(Hyper-V推奨。vmwareなどでも可)をご準備いただき、仮想マシン内にLinuxをインストールして、そこにDockerをインストールしていただければと思います。
仮想マシン上にCentOSをインストールして、そこにDockerをインストールする方法でしたら、別記事「CentOS7へのDockerのインストール」をご利用頂ければと思います。
Arukasへのユーザ登録
Arukasを利用するためには、事前にユーザ登録が必要です。登録の流れは以下の通りです。
- Arukas公式サイトからユーザ登録申請を行う
申請にはユーザー名、メールアドレス(フリーメール可)が必要になります。 - アカウント登録の予約受付メールの受領
- アカウント登録の準備完了メールの受領
- メール内のリンクをクリックし、アカウントのアクティベートを行う
- Arukasにログインして初期登録を行う(クレジットカードの登録が必要)
初期登録では氏名、住所、電話番号、居住国の情報が必要です。
ここで注意したいのは、2の予約受付状態になってから、3の準備完了メールが届くまで、私は10日間かかりました。申請してすぐに使えるようにはならないと思っていた方が良いと思います。
あと、コンテナをアップするためにはクレジットカードの登録が必要になります。無料プランを利用する場合でも必要です。たぶん個人認証を行うためだと思います。これがないと無料でコンテナを作り放題になってしまって、みなさんが迷惑することになりますよね。
DockerHubのID取得
Arukas上でコンテナを起動するために使用するDockerイメージは、DockerHub(※)から持ってくることになりますので、作成したコンテナをArukasで実行するためには、一旦DockerHubにアップする必要があります。
DockerHubのID取得は、このために必要となります。
※Dockerの公式レジストリサーバのことです
IDの取得にはメールアドレスが必要になりますので、ご準備いただいた後、DockerHubの公式サイトにアクセスしていただき、IDを取得して下さい。無料で取得できます。
DockerHub公式サイト https://hub.docker.com/
ページ内で、ご自分のID、メールアドレス、ログインパスワードを決めていただき、Sign Upしますと、メールが送られてきますので、そのメール内のActivateリンクをクリックしていただくことで登録が完了します。
以下が私のIDでのログイン後の画面です。
今回の検証用にDockerイメージは空にしていますが、通常はDockerHubにアップしたDockerイメージの一覧が表示されてます。
これで、Arukas上で自分のコンテナを起動する準備が整いました。
Arukas上で自作のDockerイメージを使用してコンテナを起動する
事前に準備したものを使用して、Arukas上でコンテナを起動してみようと思います。Dockerイメージは、Apacheの公式イメージを使用して、トップページを差し替えたものを使用します。
使用するDockerイメージを作成する
では、自前のDocker環境でDockerイメージを作成していきます。
まずは、Apacheの最新の公式イメージを入手します。
$ docker pull httpd
確認します。
$ docker images httpd
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest 6587355a8c4f 13 days ago 176 MB
差し替えるトップページをDockerホスト上に作成します。コンテナ起動後、そのファイルをdocker cpコマンドでコンテナ内にコピーします。(Apacheイメージにはviが入っていないためこの方法で行います)
$ vi index.html
トップページを差し替えるために、コンテナを起動します。
$ docker run --name testvm -d httpd
コンテナ内でトップページを差し替えます。
$ docker cp index.html testvm:/usr/local/apache2/htdocs/
現在のコンテナの状態をもとに、ローカル内にDockerイメージを作成します。名前は「first-arukas」にしました。
このDockerイメージはDockerHubにアップしますので、Dockerイメージ名の前にDockerHubの自分のID名を付与してます。
$ docker commit testvm memotansu/first-arukas
確認します。
$ docker images memotansu/first-arukas
REPOSITORY TAG IMAGE ID CREATED SIZE
memotansu/first-arukas latest 5ec6d56dd1af 3 minutes ago 176 MB
DockerHubにアップするイメージが出来上がりました。
作成したイメージをDockerHubにアップする
では、作成したDockerイメージをDockerHubにアップしたいと思います。
自前のDocker環境からDockerHubにログインします。
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: memotansu
Password:
Login Succeeded
DockerHubにアップします。
$ docker push memotansu/first-arukas
The push refers to a repository [docker.io/memotansu/first-arukas]
dbf76e4e373c: Pushed
1e3b330d9c42: Mounted from library/httpd
f34fed836395: Mounted from library/httpd
12f35b0a9236: Mounted from library/httpd
ac3933039e59: Mounted from library/httpd
606932b110bc: Mounted from library/httpd
8ad975ae00da: Mounted from library/httpd
a2ae92ffcd29: Mounted from library/httpd
latest: digest: sha256:bfaa304ce0db6976f6a8c0e8b181e8121a91c4c6043870c2832914a91w336cb size: 1987
DockerHubのWebサービスで、アップしたDockerイメージを確認してみます。
作成したDockerイメージをArukasで実行する
いよいよArukas上で自作Dockerイメージを実行します。
まずは、Arukasにログインします。
「新しいアプリケーションを作成」ボタンを押します。
「Image」(上図内赤枠部分)には、DockerHubにアップしたDockerイメージ名を入力します。
「Service Plan」(上図内黄枠部分)には、料金プランを設定します。無料プランである「Free」を選択しました。
「Endpoint」(上図内青枠部分)には、外部からアクセスする際のエンドポイントの名前を入力します。この名前+「arukascloud.io」がアクセスするためのURLになります。
その他の欄は適宜入力してください。
必要情報の入力が終わりましたら、ウインドウ下部の「アプリケーションを作成」リンクを押します。
Arukasのダッシュボードに追加されました。
では、起動してみます。右端の起動ボタン(三角ボタン)を押しますと、以下の表示が現れますので「OK」を押します。
オレンジ色のアイコンに変わりました。
画面左のアプリアイコンを押しますと、アプリの詳細情報が見れます。「アプリはデプロイ中です」と表示されました。起動するまで1分ほどかかります。
約1分後、「アプリは起動状態です」に表示が変わりました。起動成功です!
では、その画面内の中段にある「Endpoint」の部分に表示されているリンクをクリックします。
無事、私が差し替えましたページが表示されました!
まとめ
いかがでしょうか。Arukasとはどのようなものかイメージできましたでしょうか。
今回試した内容は、Arukasをご存知の方、Dockerに慣れていらっしゃる方でしたら、初歩的過ぎて物足りなかったと思います。
実際にArukasを外向けの本番サービスとして利用するためには、実現しなければいけないことが山のようにあります。複数コンテナの連携、データの永続化、コンテナの負荷分散対応、データのバックアップ/リストア、他多数、です。
これからArukasで色々試してみたいと思います
最後までお読みいただきありがとうございました!
コメント