【One Tech #08】新卒エンジニアがAzureでDockerを立ててみた ~構築編~

2023年2月22日掲載

キービジュアル

こんにちは!クラウドエンジニアリング本部の岡崎です!
この連載企画【One Tech】も今回で8回目になります!

この記事では、Azureでコンテナをデプロイし、その過程を初心者でも構築できるよう詳しくお伝えします。

One Tech】とは、さまざまな部署・職種のエンジニアが世の中にあるさまざまなIT関連のキーワードや流行の1つに着目し、独自あるいはその職種ならではの視点からIT関連の技術用語やトレンドについて執筆していく連載企画です。

こちらの記事は「【One Tech #07】新卒エンジニアがAzureでDockerを立ててみた ~基礎知識編~」の続きで構築編になります。まだの方はぜひこちらもご覧ください。

今回のOne Techでは、実際にAzureでコンテナをデプロイしてみます。また、その過程を詳しくお伝えすることで、初心者の方でも同じように構築できるようにと考えています。

目次

  • 本記事では、実際にAzureでコンテナをデプロイする手順を紹介します
  • 初心者の方でも分かりやすいように、解説します

環境概要

本記事の検証では実際にACI(Azure Container instances)上にWebアプリケーションを構築していきます。イメージはローカル PCで作成、Azure 上のACR(Azure Container Registry)のリポジトリにプッシュします。このイメージをACIにデプロイしていきます。

検証環境イメージ図

構築手順

1.ローカル PCでイメージ作成
2.ACR(Azure Container registry)セットアップ
3.ローカルPCにて作成したオリジナルイメージをACRに登録します。
4.ACI(Azure Container instances)の作成及びデプロイ

1. ローカルPCでイメージ作成

まずはローカル PCでコンテナにデプロイするイメージを作成していきます。

今回は1からイメージを作るのではなく、nginxが配布しているイメージを加工してユニークなイメージを作成します。

Dockerコマンドによるnginx の最新イメージを取得します。

入力

docker pull nginx:latest

出力

次に取得したイメージのタグ付けを行います。

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

上記のコードは、SOURCE_IMAGE を参照し TARGET_IMAGEで新しいタグを付けます。今回は[nginx blogtest.azurecr.io.azurecr.io/nginx:v1]を入力します

入力

docker tag nginx blogtest.azurecr.io.azurecr.io/nginx:v1

イメージが作れたか確認をします。出力に新しく [blogtest.azurecr.io.azurecr.io/nginx] が作成できていたら成功です。

入力

docker images

出力

2. ACRのセットアップ

Auzre上にイメージを管理するレジストリを作成します。
Azure にログイン後、[コンテナ レジストリ]を検索し左上の作成を押します。

コンテナレジストリ検索

基本情報を入力し[ネットワークの設定]へを押します。
本記事ではSKUをbasicとしました。

コンテナレジストリ作成_基本情報

ネットワーク設定では[パブリックアクセス]を選択し次へを押します。

ここでプライベートでのアクセスを希望する場合は、SKUをアップグレードし[プライベートアクセス]を選択してください。

コンテナレジストリ作成_ネットワーク

暗号化の設定ではカスタマーマネージドキーを使うか聞かれます。
今回は無効を選択し、[確認及び作成]を押します。

既にAzureにてカスタマーマネージドキーを設定している場合は[有効]を押し、任意のカスタマーマネージドキーで暗号化を行えます。

次に、クレデンシャル情報を取得します。ACRのブレードにあるアクセスキーにて、ログインサーバ名とpasswordを控えておきます。

3. ローカルPCにて作成したオリジナルイメージをACRに登録します。

ローカルPCで作成したオリジナルイメージをACRに登録します。

取得したクレデンシャル情報からローカル環境のセットアップを行います。
まずターミナルよりコマンドを入力しAzureにログインします。

入力

az login -u <username> -p <password>

以下のコマンドを使ってACRへイメージをプッシュします。

入力

docker push blogtest.azurecr.io.azurecr.io/nginx:v1

Azure portalでのイメージ格納状態を確認します。ACRのブレードにある[リポジトリ]から先ほど作成したイメージを選択し、名前とタグがあるか確認します。

4. ACI(Azure Container instances)の作成及びデプロイ

AZコマンドにてACIを作成及びイメージのデプロイを行います。

また出力にて、ユーザの名前とパスワードを聞かれるので入力し、出力にあるIP addressのfqdnに記載されたURLを控えておきます。

入力

az container create --resource-group Blog-test --name blogtest-container --image blogtest.azurecr.io/httpd:v1 --dns-name-label blogtest-aci --ports 80

出力

Image registry username: Blogtest
Image registry password:
…
“ipAddress”: {
    “dnsNameLabel”: “blogtest-aci”,
    “fqdn”: “blogtest-aci.norwayeast.azurecontainer.io”,
    “ip”: “20.100.129.199”,
…

作成されたコンテナアプリケーションを確認します。

控えたクレデンシャル情報を、fqdnに記載されたURLをブラウザに入力し確認を行います。以下のように表示されたら無事デプロイ完了になります。

まとめ

 今回の【One Tech #08】では、「新卒エンジニアがAzureでDockerを立ててみた」と題して、前回の基礎知識編に続き、実際に構築してみましたがお楽しみいただけましたでしょうか?

Azureでコンテナをデプロイすることによって、サーバ管理の負荷軽減など多くのメリットに加え、私のような新卒エンジニアでも簡単に構築ができることを伝えられたと思います。
特に今回の手順で行う場合、2回目の構築は15分とかかりませんでした。

コンテナ・Dockerに興味がある方は、是非Azureを使って構築してみてもおもしろいかもしれません。また今回は、シンプルなWebアプリケーションをAzure Container Instancesで試してみましたが、本格的にアプリケーションの運用を試案する場合、レジストリのセキュリティ設計やkubernetesなどのコンテナオーケストレーションサービスの利用が必要になります。これらのAzureで利用できるマネージドサービスについて機会があればご紹介したいと思います。

以上、最後までお読みいただきありがとうございました。
次回のOne Techもお楽しみに〜!

条件に該当するページがございません