Web アプリをホストする Linux VM を Azure Stack Hub にデプロイする

Web フレームワークを使って作成した Web アプリをホストする基本的な Linux 仮想マシン (VM) を、Azure Marketplace にある Ubuntu イメージを利用して作成し、デプロイできます。

この VM では、以下を使用して Web アプリをホストできます。

  • Python: 一般的な Python Web フレームワークには、Flask、Bottle、Django があります。
  • Go: 一般的な Go フレームワークには、Revel、Martini、Gocraft/web、Gorilla があります。
  • Ruby: Ruby Web アプリを配信するためのフレームワークとして Ruby on Rails を設定します。
  • Java: Java を使用して、Apache Tomcat サーバーにポストする Web アプリを開発します。 Tomcat を Linux にインストールした後、サーバーに直接 Java WAR ファイルをデプロイできます。

Linux OS を使用する任意の Web アプリ、フレームワーク、およびバックエンド テクノロジを稼働させるには、この記事の手順を使用してください。 その後、Azure Stack Hub を使用して、お使いのインフラストラクチャを管理したり、お使いのテクノロジ内の管理ツールを使用してアプリのメンテナンス タスクを処理したりできます。

Web アプリ用の Linux VM をデプロイする

このプロセスでは、秘密鍵の作成、Linux VM の基本イメージの使用、VM の特定の属性の指定を行った後に、VM を作成します。 VM を作成した後、VM の操作や VM でのアプリのホストに必要なポートを開きます。 次に、DNS 名を作成します。 最後に、VM に接続し、apt-get ユーティリティを使用してマシンを更新します。 このプロセスを完了すると、Web アプリをホストする状態が整った VM が Azure Stack Hub インスタンス内に用意されます。

始める前に、必要なものがすべて揃っていることを確認してください。

前提条件

  • Ubuntu Server 16.04 LTS イメージにアクセスできる Azure Stack Hub サブスクリプション。 それよりも新しいバージョンのイメージを使用できますが、これらの手順は 16.04 LTS を念頭に置いて書かれています。 このイメージをお持ちでない場合は、このイメージが Azure Stack Hub Marketplace に表示されるようお客様のクラウド オペレーターにお問い合わせください。

ポータルを使用して VM をデプロイする

VM をデプロイするには、以降のいくつかのセクションの手順に従ってください。

VM の作成

  1. お使いのサーバー用の Secure Shell (SSH) 公開キーを作成します。 詳細については、「SSH 公開キーの使用方法」を参照してください。

  2. Azure Stack Hub ポータルで、 [リソースの作成]>[Compute]>[Ubuntu Server 16.04 LTS] の順に選択します。

    Web アプリを Azure Stack Hub VM にデプロイする

  3. [仮想マシンの作成] ウィンドウの [1.基本設定の構成] で以下を実行します。

    a. 使用する VM の名前を入力します。

    b. [VM ディスクの種類][Premium SSD] (Premium ディスク [SSD] の場合) または [Standard HDD] (Standard ディスク [HDD] の場合) を選択します。

    c. 自分のユーザー名を入力します。

    d. [認証の種類][SSH 公開キー] を選択します。

    e. 作成した SSH 公開キーを取得します。 それをテキスト エディターで開き、そのキーをコピーして、 [SSH 公開鍵] ボックスに貼り付けます。 ---- BEGIN SSH2 PUBLIC KEY ---- から ---- END SSH2 PUBLIC KEY ---- までのテキストを含めます。 テキストのブロック全体をキー ボックスに貼り付けます。

    ---- BEGIN SSH2 PUBLIC KEY ----
    Comment: "rsa-key-20190207"
    <Your key block>
    ---- END SSH2 PUBLIC KEY ----
    

    f. Azure Stack Hub インスタンスのサブスクリプションを選択します。

    g. アプリのリソースをどのように整理するかに応じて、新しいリソース グループを作成するか、既存のリソース グループを使用します。

    h. 場所を選択します。 Azure Stack Development Kit (ASDK) は、通常、"ローカル" リージョンにあります。 場所は、Azure Stack Hub インスタンスによって決まります。

  4. [2. サイズ] で、次のように入力します。

    • Azure Stack Hub インスタンスで使用できる VM のデータと RAM のサイズを選択します。
    • 一覧を参照するか、コンピューティングの種類CPU、および記憶域スペースに基づいて VM のサイズをフィルター処理できます。

    Note

    • 表示される価格は、現地通貨での見積もりです。 これには、Azure インフラストラクチャのコストに加え、サブスクリプションと場所に対する割引のみが含まれます。 適用可能なソフトウェアのコストは含まれていません。
    • 推奨サイズは、選択したイメージの公開元によって決められており、ハードウェアおよびソフトウェアの要件に基づいています。
    • Premium ディスク (SSD) ではなく Standard ディスク (HDD) を使用すると、オペレーティング システムのパフォーマンスに影響を及ぼす可能性があります。
  5. [3. オプション機能の構成] で、次のように入力します。

    a. [高可用性] で、可用性セットを選択します。 アプリケーションに冗長性を持たせるには、複数の仮想マシンを可用性セットにグループ化します。 この構成により、計画または計画外メンテナンス イベントの間に、少なくとも 1 台の仮想マシンが使用可能になり、99.95% の Azure サービスレベル アグリーメント (SLA) が満たされます。 仮想マシンの可用性セットは、作成後に変更できません。

    b. [ストレージ] で、 [Premium ディスク (SSD)] または [Standard ディスク (HDD)] を選択します。 Premium ディスク (SSD) の実体はソリッドステート ドライブであり、待ち時間の短い一貫したパフォーマンスが得られます。 価格とパフォーマンスのバランスが最良であり、I/O 集約型アプリケーションや運用環境のワークロードに適しています。 Standard ディスクは、磁気ドライブを基盤としており、データへのアクセス頻度が低いアプリケーションに適しています。 ゾーン冗長ディスクは、データを複数のゾーンをまたいでレプリケートし、1 つのゾーンがダウンしてもデータを利用可能なゾーン冗長ストレージ (ZRS) を基盤としています。

    c. [マネージド ディスクを使用] を選択します。 この機能を有効にすると、Azure によって自動的にディスクの可用性が管理されます。 ストレージ アカウントを自分で作成および管理しなくても、データの冗長性とフォールト トレランスによるメリットが得られます。 マネージド ディスクは、すべてのリージョンで使用できるわけではありません。 詳細については、「Azure マネージド ディスクの概要」を参照してください。

    d. ネットワークを構成するには、 [仮想ネットワーク] を選択します。 Azure では、論理的には仮想ネットワークは互いに分離されています。 データセンターの従来のネットワークと同様に、IP アドレス範囲、サブネット、ルート テーブル、ゲートウェイ、セキュリティ設定を構成できます。 同じ仮想ネットワーク内の仮想マシンは、既定で相互にアクセスできます。

    e. サブネットを構成するには、 [サブネット] を選択します。 サブネットとは、仮想ネットワーク内の IP アドレスの範囲です。 サブネットを使用すると、仮想マシンを相互に、またはインターネットから分離することができます。

    f. VM または VM 上で実行されているサービスへのアクセスを構成するには、 [パブリック IP アドレス] を選択します。 仮想ネットワークの外部から仮想マシンと通信するには、パブリック IP アドレスを使用します。

    g. [ネットワーク セキュリティ グループ][基本] 、または [詳細] を選択します。 VM へのネットワーク トラフィックを許可または拒否するルールを設定します。

    h. 共通またはカスタムのプロトコルから VM へのアクセスを設定するには、 [パブリック受信ポート] を選択します。 このサービスでは、このルールの宛先プロトコルとポート範囲を指定します。 リモート デスクトップ プロトコル (RDP)、SSH などの事前定義されたサービスを選択することも、カスタム ポート範囲を指定することもできます。 Web サーバーの場合は、HTTP (80)、HTTPS (443)、SSH (22) を開いて使用します。 RDP 接続を使用してマシンを管理する予定の場合は、ポート 3389 を開きます。

    i. VM に拡張機能を追加するには、 [Extensions](拡張) を選択します。 拡張機能を使用すると、仮想マシンに新しい機能 (構成管理、ウイルス対策保護など) が追加されます。

    j. [監視] を無効または有効にします。 起動時の問題の診断に役立てるために、監視を使用して、ホスト上で実行している仮想マシンのシリアル コンソール出力とスクリーンショットをキャプチャします。

    k. メトリックを保持するストレージ アカウントを指定するには、 [診断ストレージ アカウント] を選択します。 メトリックはストレージ アカウントに書き込まれるため、独自のツールで解析できます。

    l. [OK] を選択します。

  6. [4. 概要] を確認します。

    • ポータルによって設定が検証されます。
    • Azure Resource Manager のワークフローで設定を再利用するために、お使いの VM の Azure Resource Manager テンプレートをダウンロードできます。
    • 検証に合格したら、 [OK] を選択します。 VM のデプロイには数分かかります。

開いているポートと DNS 名を指定する

お使いの Web アプリにネットワーク上のユーザーがアクセスできるようにするには、マシンへの接続に使用されているポートを開き、ユーザーが Web ブラウザーで使用できるわかりやすい DNS 名 (mywebapp.local.cloudapp.azurestack.external など) を追加します。

受信ポートを開く

RDP や SSH などの事前定義されたサービスの宛先プロトコルとポート範囲を変更することも、カスタム ポート範囲を指定することもできます。 たとえば、お使いの Web フレームワークのポート範囲を操作できます。 たとえば、GO は、ポート 3000 で通信します。

  1. ご自分のテナントの Azure Stack Hub ポータルを開きます。

  2. ご自分の VM を検索します。 ダッシュボードに VM をピン留めしている場合があります。また、 [リソースの検索] ボックスで検索することもできます。

  3. VM ウィンドウで [Networking](ネットワーキング) を選択します。

  4. [受信ポートの規則を追加する] を選択してポートを開きます。

  5. [ソース] では、既定の選択 [Any] をそのままにします。

  6. [発信元ポート範囲] は、ワイルドカード (*) のままにします。

  7. [宛先ポート範囲] に、開くポートを入力します (3000 など)。

  8. [プロトコル] では、既定の選択 [Any] をそのままにします。

  9. [アクション] で、 [許可] を選択します。

  10. [優先度] で、既定の選択項目のままにします。

  11. ポートが開いている理由を思い出せるように名前説明を入力します。

  12. [追加] を選択します。

サーバーの DNS 名を追加する

さらに、サーバーの DNS 名を作成して、ユーザーが URL を使用して Web サイトに接続できるようにすることもできます。

  1. ご自分のテナントの Azure Stack Hub ポータルを開きます。

  2. ご自分の VM を検索します。 ダッシュボードに VM をピン留めしている場合があります。また、 [リソースの検索] ボックスで検索することもできます。

  3. [概要] を選択します。

  4. [VM] の下の [構成] を選択します。

  5. [割り当て][動的] を選択します。

  6. 完全な URL が mywebapp.local.cloudapp.azurestack.external (ASDK アプリの場合) になるように、mywebapp などの DNS 名ラベルを入力します。

SSH 経由で接続して VM を更新する

  1. お使いの Azure Stack Hub インスタンスと同じネットワークで、SSH クライアントを開きます。 詳細については、Azure Stack Hub での SSH キーペアの使用に関する記事を参照してください。

  2. 次のコマンドを入力します。

        sudo apt-get update
        sudo apt-get -y upgrade
    

次のステップ

Azure Stack Hub 内で開発環境を設定する方法について学習する。