このトピックでは、Nginx イメージを使用してステートレスアプリケーションを迅速にデプロイする方法について説明します。コンソールからアプリケーションを作成し、Nginx イメージをプルし、サービスと Ingress を作成してネットワークを設定します。その後、ドメイン名を通じてアプリケーションにアクセスできます。
前提条件
ドメイン名 foo.bar.com に Ingress がバインドされていない Container Compute Service (ACS) クラスター が必要です。
ステップ 1:Nginx アプリケーションの作成
-
ACS コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
-
クラスターリスト ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、Workloads > Deployments を選択します。
-
Deployments ページで、右上の Create from Image をクリックします。次の表のパラメーターを使用してアプリケーションを設定します。この表では主要なパラメーターのみを説明しており、その他すべてのパラメーターはデフォルト値のままにすることができます。
ウィザードステップ
説明
値の例
手順
Basic Information
アプリケーション名を設定し、Next をクリックします。
nginxtest
[アプリケーション名] を
nginxtestに設定し、[次へ] をクリックします。Container
Nginx イメージを選択します:
-
Image Name セクションで、Select Image をクリックします。
-
プロダクトセンター をクリックします。
-
nginx を検索します。
-
nginx イメージを選択し、Select Image Version をクリックしてバージョンを選択し、OK をクリックします。
-
必要に応じて他の設定を行い、Next をクリックします。
nginx
Advanced
サービスを作成します:
-
Services の右にある Create をクリックします。
-
ポートマッピングを追加します。
-
Name: http
-
Service Port: 80
-
Container Port: 80
-
-
Create をクリックします。
-
サービス名:nginxtest-svc
-
ポート名:http
-
サービスポート:80
-
コンテナポート:80
[タイプ] で [ロードバランサー] と [パブリックアクセス] を選択します。[新規 SLB] を選択します (仕様はデフォルトで slb.s1.small)。[外部トラフィックポリシー] で [ローカル] を選択します。
Ingress の作成 (オプション):
-
Ingresses の右側にある Create をクリックします。
-
Domain を foo.bar.com に設定します。サービス で、Name ドロップダウンリストから先ほど作成したサービスを選択します。
-
Ingress クラス を Application Load Balancer (ALB) によって作成された Ingress クラスの名前に設定します。詳細については、「ALB Ingress のクイックスタート」をご参照ください。
-
Create をクリックします。
-
ドメイン:foo.bar.com
-
名前:nginxtest-svc
[Ingress の作成] フォームで、[名前] を
nginxtest-ingressに設定し、[ポート] で80を選択します。Horizontal Pod Autoscaler (HPA) の設定:
-
HPA を有効にします。
-
Min. Replicas を 2 に設定します。
-
その後、Create をクリックします。
-
HPA:有効
-
最小レプリカ数:2
[メトリック] を [CPU 使用率] に、[トリガー条件] を 70% に、[最大レプリカ数] を 10 に設定します。
-
アプリケーションが作成されます。デプロイメント、サービス、Ingress (nginxtest-ingress)、HPA がアクティブになります。[アプリケーション詳細の表示] をクリックして、アプリケーション詳細ページを表示します。
ステップ 2:テスト Web サイトへのアクセス
hosts ファイルの設定
-
ACS コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
-
クラスターリスト ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、Workloads > Deployments を選択します。
-
Deployments ページで、ステップ 1 で作成したアプリケーションの名前をクリックします。
-
アクセス方法 タブをクリックして、[サービス] の External Endpoint を記録します。
-
ご利用のコンピューターで hosts ファイルを見つけ、ゲートウェイ IP アドレスドメイン名 の形式でバインディングエントリを追加します。例:
39.104.XX.XX foo.bar.com。これにより、ドメイン名を使用してサービスに直接アクセスできます。Windows
-
エクスプローラーを開き、アドレスバーに
C:\WINDOWS\system32\drivers\etcと入力して etc ディレクトリに移動します。hosts ファイルを見つけます。 -
hosts ファイルをメモ帳で開き、最終行に
39.104.XX.XX foo.bar.comを追加してファイルを保存します。
macOS
-
上部のメニューバーから、[移動] > [フォルダへ移動] を選択し、
/private/etcと入力して Enter キーを押します。 -
hosts ファイルを見つけ、デスクトップにコピーして変更します。
-
デスクトップ上の hosts ファイルを右クリックし、[このアプリケーションで開く] を選択して、[テキストエディット] をクリックします。
-
hosts ファイルの最終行に
39.104.XX.XX foo.bar.comを追加します。変更を保存した後、編集したファイルをデスクトップから/private/etcフォルダに戻し、元のファイルを置き換えます。
-
-
ブラウザで Web サイトを開きます。
ブラウザを開いてキャッシュをクリアするか、プライベートブラウジングウィンドウを開きます。ドメイン名
http://foo.bar.comを入力して Web サイトを開きます。foo.bar.comにアクセスすると、ページにWelcome to nginx!が表示され、hosts エントリとサービスデプロイが成功したことを確認できます。
ALB DNS 名前解決
-
Deployments ページで、ステップ 1 で作成したアプリケーションの名前をクリックします。
-
アクセス方法 タブをクリックし、[Ingress] の Endpoint を記録します。
-
次に、CNAME レコードを追加します。
-
DNS コンソールにログインします。
-
[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 登録を完了させる必要があります。登録が承認された後にのみ、ドメインにアクセスできます。