Azure App Service on LinuxでDockerを試してみる
Azure App Service on Linux がプレビュー版で使用出来ます。Docker Containerもサポートしています。AzureではDocker Containerで環境構築を行う仕組みは他にも持っていますが、Azure App Service on Linuxを使うのが1番気軽にDocker Containerを試せるサービスなのではないかと思ってます。どれだけ気軽に使えるのか試してみましょう。Azureアカウントを持っている人であれば10分ぐらいでできると思います。
Azure App Service on Linuxについては前回の記事に書きましたので、基本的なところは過去記事を参照ください。Microsoftの公式ページにもっと詳しく書かれてますのでそちらも眺めてみてください。
必要なもの
必須なのは、Azureアカウントです。DockerHubも使うのでアカウントがあれば良いですが参照だけなので必須ではありません。ただ、今後のためにアカウントぐらいは作成しておいても良いかとは思います。
Azureアカウントをまだ作成していない方は下記から始めましょう。無料枠あります。クレジットカードの登録を行わないといけないです。MSDNサブスクリプションを持っていればクレジットカード登録は不要でも作成出来たような気がします。Azureの基本的な登録については過去記事を参照下さい。前半部分に登録方法を書きました。後半はApp ServiceにDropboxからのアプリケーションをデプロイする方法なので興味があれば読んでもらえればと思います。
DockerHubは参照だけなのでアカウントは必須というわけではないですが、下記からアカウント登録出来ます。今回は、公開されているDockerイメージをDockerHubから取得しますが、プライベートなものを利用する場合はそれでも構いません。
Web App on Linuxの作成
さて、準備が出来たら、Azure Portalから、Web App on Linuxの作成を行なっていきます。Web App on Linuxは新規(+マーク)から“Web + モバイル”で辿って行くと見つかります。サイドメニューのApp Serviceから探すとどこにあるかわからないんですよね。正式版になれば、App Serviceから辿れるようになるのかな。
従来のWeb Appを作成する時と方法はあまり変わりません。アプリ名(一意な名称)、サブスクリプション、リソースグループ、プランと従来通り入力していきます。1点だけ、Web App on Linuxの作成画面には、コンテナの構成という項目があります。
コンテナの構成では、ビルトイン(Azureであらかじめ用意してくれているもの)、DockerHub(パブリックorプライベート)、プライペートレジストリから選ぶことが出来ます。今回は、DockerHubのパブリックを利用します。何かDockerイメージをデプロイしたいので、下記を使って試してみることにします。HelloWorldを出力するすごくシンプルなDocker Containerです。
https://hub.docker.com/r/training/webapp/
コンテナの構成で、DockerHubを選択し、パブリックにします。“イメージとオプションのタグ”という項目が必須なので、入力します。記載方法は、例にある通り、“image:tag”となっています。DockerHubでのDockerイメージの名称を探し(今回の場合は"training/webapp")入力します。tagは最新版でデプロイするのであれば、“latest”としておきましょう。
これでWeb App On Linuxの設定は完了ですので"作成"します。デプロイ作業は裏で走ると思うので数分待ちます。そうするとWeb App on Linuxが作成完了しApp Serviceの一覧に表示されるようになります。迷わなければサクサク進むはずですね。
アプリケーション設定
現時点で、ただDockerHubのコンテナをLinux上に展開しただけですのでアクセスしてもつながりません。HelloWorldアプリケーションにアクセスするために設定変更を行います。設定変更といっても1点だけです。
Azure Portalから作成したWeb Appの管理画面に進みます。“アプリケーション設定”という項目があるので開きます。中段ぐらいに“アプリ設定”という箇所があるので、ここに値を追加します。キー値に"PORT"、値に"5000"(何でもたぶん大丈夫)と入れて保存します。これでOKです。
ココまでできれば、後はブラウザからアクセスして、HelloWorldが出るか確認します。たぶん出るはず。10分でここまでできましたか?Dockerイメージさえあれば簡単にアプリケーションが立ち上げられますね。Docker便利!!
Web App On Linuxは単にLinuxに対応しましたよ、ということよりも、Dockerをサポートしたことの方がかなり大きなポイントだと私は思っています。Dockerが使えるサービスはAzureでも様々なものがありますが、Web Appは一番気軽に使える分類に入るのではないでしょうか。本番利用に向くのかと言われれば少し微妙な点もありますが、開発などで使っていく分にはかなり便利なのではないかと思います。
最近、HelloWorldばかり(入門編みたいなブログになってきた・・・)やっているような気がするので、もう少しコアなところをそろそろやっていった方が良いかなぁと思っております。では。