このトピックでは、Nginx イメージを使用してステートレスアプリケーションを迅速にデプロイする方法を説明します。コンソールからアプリケーションを作成し、Nginx イメージをプルし、Service と Ingress を作成してネットワークを設定できます。その後、ドメイン名を使用してアプリケーションにアクセスできます。
前提条件
ドメイン名 foo.bar.com に Ingress がバインドされていないContainer Compute Service (ACS) クラスターが必要です。
ステップ 1: Nginx アプリケーションの作成
ACS コンソール にログインします。左側のナビゲーションペインで、クラスター をクリックします。
クラスター ページで、管理するクラスターを見つけ、その ID をクリックします。クラスター詳細ページの左側のナビゲーションペインで、 を選択します。
-
展開 ページで、右上の イメージによる作成 をクリックします。次の表のパラメーターを使用してアプリケーションを設定します。この表では主要なパラメーターのみを説明します。その他のパラメーターはデフォルト値のままにしてください。
ウィザードのステップ
説明
設定例
手順
[基本情報]
アプリケーション名を設定し、次 をクリックします。
nginxtest
[Application Name] を
nginxtestに設定し、[Next] をクリックします。[コンテナー]
Nginx イメージを選択します:
-
イメージ名 セクションで、イメージの選択 をクリックします。
-
Artifact center をクリックします。
-
nginx を検索します。
-
nginx イメージを選択し、イメージバージョンの選択 をクリックしてバージョンを選択し、OK をクリックします。
-
必要に応じて他の設定を行い、次 をクリックします。
nginx
[上級]
Service を作成します:
-
サービス の右側にある 作成する をクリックします。
-
ポートマッピングを追加します。
-
[名]: http
-
[サービスポート]: 80
-
[コンテナーポート]: 80
-
-
作成する をクリックします。
-
Service Name: nginxtest-svc
-
Port Name: http
-
サービスポート: 80
-
コンテナポート: 80
[Type] で [Load Balancer] と [Public Access] を選択します。[New SLB] を選択します (仕様はデフォルトで slb.s1.small)。[External Traffic Policy] は [Local] を選択します。
Ingress を作成します (オプション):
-
Ingress の右側にある 作成する をクリックします。
-
ドメイン を foo.bar.com に設定します。サービス で、名 ドロップダウンリストから先ほど作成した Service を選択します。
-
[Ingress Class] を Application Load Balancer (ALB) によって作成された IngressClass の名前に設定します。詳細については、「ALB Ingress のクイックスタート」をご参照ください。
-
作成する をクリックします。
-
Domain: foo.bar.com
-
Name: nginxtest-svc
[Create Ingress] フォームで、[Name] を
nginxtest-ingressに設定し、[Port] には80を選択します。Horizontal Pod Autoscaler (HPA) を設定します:
-
HPA を有効にします。
-
最小レプリカ を 2 に設定します。
-
その後、作成する をクリックします。
-
HPA: Enabled
-
Minimum Replicas: 2
[Metric] を [CPU Usage] に、[Trigger Condition] を 70% に、[Maximum Replicas] を 10 に設定します。
-
アプリケーションが作成されました。Deployment、Service、Ingress (nginxtest-ingress)、および HPA がアクティブになりました。[View Application Details] をクリックして、アプリケーション詳細ページを表示します。
ステップ 2: テストWebサイトへのアクセス
hosts ファイルの設定
ACS コンソール にログインします。左側のナビゲーションペインで、クラスター をクリックします。
クラスター ページで、管理するクラスターを見つけ、その ID をクリックします。クラスター詳細ページの左側のナビゲーションペインで、 を選択します。
-
展開 ページで、ステップ 1 で作成したアプリケーションの名前をクリックします。
-
アクセス方法 タブをクリックし、[Service] の 外部エンドポイント を記録します。
-
お使いのコンピューター上の hosts ファイルを見つけ、ゲートウェイ IP アドレス ドメイン名 の形式でバインディングエントリを追加します。例:
39.104.XX.XX foo.bar.com。これにより、ドメイン名を使用して直接 Service にアクセスできるようになります。Windows
-
エクスプローラーを開き、アドレスバーに
C:\WINDOWS\system32\drivers\etcと入力して etc ディレクトリに移動し、hosts ファイルを見つけます。 -
hosts ファイルをメモ帳で開き、最終行に
39.104.XX.XX foo.bar.comを追加してファイルを保存します。
macOS
-
上部のメニューバーから、[Go] > [Go to Folder] を選択し、
/private/etcと入力して Enter キーを押します。 -
hosts ファイルを見つけ、デスクトップにコピーして編集します。
-
デスクトップ上の hosts ファイルを右クリックし、[Open With] を選択してから [TextEdit] をクリックします。
-
hosts ファイルの最終行に
39.104.XX.XX foo.bar.comを追加します。変更を保存した後、編集したファイルをデスクトップから/private/etcフォルダーに戻し、元のファイルを置き換えます。
-
-
ブラウザで Web サイトを開きます。
ブラウザを開いてキャッシュをクリアするか、プライベートブラウジングウィンドウを開きます。ドメイン名
http://foo.bar.comを入力して Web サイトを開きます。foo.bar.comにアクセスすると、ページにWelcome to nginx!と表示され、hosts エントリと Service のデプロイが成功したことを確認できます。
ALB の DNS 名前解決
-
展開 ページで、ステップ 1 で作成したアプリケーションの名前をクリックします。
-
アクセス方法 タブをクリックし、[Ingress] の エンドポイント を記録します。
-
次に、CNAME レコードを追加します。
-
DNS コンソールにログインします。
-
[Manage DNS] ページで、ドメイン名の追加 をクリックします。
-
ドメイン名の追加 ダイアログボックスで、ホストドメインを入力し、OK をクリックします。
ホストドメインに対して TXT レコードの検証を完了する必要があります。
-
対象ドメインの Actions 列で、解決設定 をクリックします。
-
解決設定 ページで、Add Record をクリックします。
-
Add Record パネルで、以下のパラメーターを設定して CNAME レコードを追加し、OK をクリックします。
|
パラメーター |
説明 |
|
[レコードタイプ] |
ドロップダウンリストから [CNAME] を選択します。 |
|
[ホストレコード] |
ドメイン名のプレフィックスです (例: |
|
[Query Source] |
デフォルト値のままにします。 |
|
[レコード値] |
ドメイン名の CNAME アドレス、つまりコピーしたエンドポイントを入力します。 |
|
TTL |
TTL は Time To Live の略です。この値は、DNS レコードが DNS サーバーにキャッシュされる期間を指定します。このチュートリアルでは、デフォルト値を使用します。 |
-
ブラウザで Web サイトを開きます。
新しいプライベートブラウジングウィンドウで、http://foo.bar.com にアクセスします。
「法律で義務付けられている工業情報化部 (MIIT) への届出が行われていないため、この Web サイトにはアクセスできません」のようなメッセージが表示された場合は、Ingress のロードバランサー (LB) がパブリック IP アドレスを持っているか確認してください。持っている場合は、MIIT にドメイン名の ICP 届出を完了する必要があります。届出が承認された後にのみ、ドメインにアクセスできます。