Cloud Internet Services (CIS) を使用したアプリケーションへのアクセスの構成

このチュートリアルでは、( CIS ) IBM Cloud Internet Services を使用して、仮想サーバー展開可能なアーキテクチャを持つアプリケーション向けランディングゾーンにデプロイされたアプリケーションにインターネット経由でアクセスします。 必要なインフラストラクチャーをセットアップし、デプロイ可能なアーキテクチャーにデプロイされたアプリケーションにアクセスするように CIS を構成する方法を学習します。

CIS は、グローバル・ロード・バランサー、キャッシング、Web アプリケーション・ファイアウォール、およびページ・ルールを提供して、アプリケーションを保護し、その信頼性とパフォーマンスを向上させます。

目標

  • オペレーターが VPC 環境にアクセスするために必要なアクセス権限を割り当てます。これには、ワークロード VPC に配置されている VSI へのアプリケーションのデプロイが含まれます。
  • 誰でもアプリにアクセスできるように、VPC ロード・バランサーを介してアプリケーションをインターネットに公開します。 ロード・バランサーは、(ワークロード VSI 内の) VPC で実行されている複数のアプリケーション・サーバー・インスタンス間でトラフィックを分散し、正しく機能しているインスタンスにのみトラフィックを転送することができます。
  • すべての着信 HTTPS リクエストのトランスポート層セキュリティ(TLS)証明書を管理するために IBM Cloud Secrets Manager 使用します。
  • アプリケーションにアクセスするように Cloud Internet Services (CIS) を構成します。 Cloudflare を採用した IBM Cloud Internet Servicesは、 IBM Cloud上で高速、高性能、高信頼性、セキュアなインターネット・サービスを提供します。
  • リージョン間でグローバル・ロード・バランサーを使用して、高可用性を実現し、耐障害性の向上および待ち時間の短縮を図る。

開始前に

  • 仮想サーバー展開可能なアーキテクチャを持つアプリケーション向けに、ランディングゾーンのインスタンスを展開する。 詳しくは、 ランディング・ゾーンのデプロイ可能なアーキテクチャーのデプロイ を参照してください。
  • ランディングゾーンの展開可能アーキテクチャに動作する仮想サーバー(VSI)が存在するかどうかを確認してください。
  • Cloud Internet Services (CIS) のインスタンスを作成し、アクティブ・ドメイン・ネームを使用して構成します。 CIS Terraform モジュール を使用して、インスタンスを作成および構成できます。

オペレーター・アクセス権限の割り当て

VPC landing zone ・トポロジーへのネットワーク・アクセスがロックされているため、管理 VPC を介して VSI へのオペレーター・アクセス権限を割り当てる必要があります。

  1. オプション を確認して、オペレーター・アクセス権限を割り当てます。

  2. 以下のいずれかのアプローチを完了してください:

このチュートリアルでは、管理 VPC 内のいずれかの VSI を「ジャンプ・ボックス」として公開します。 ワークロード VPC にアクセスし、ワークロード VPC にあるワークロード VSI にアプリケーションをデプロイします。

アプリケーションをデプロイするすべての VSI にオペレーター権限を割り当てます。

ワークロード VSI へのアプリケーションのデプロイ

  1. 管理 VPC を介してワークロード VSI (例えば、 <your_prefix>-workload-server-001) にアクセスします。

    1. ワークロード VPC の ACL にアクセスし、 インバウンドおよびアウトバウンドのルール を作成して、管理 VPC の SSH 通信 (ポート 22) を有効にします。
    2. 同様に、ワークロード VPC の管理 VPC の ACL で SSH を有効にするインバウンドおよびアウトバウンドのルールを作成します。
    3. SSH 鍵 (管理 VSI へのログインに使用) をシステムから管理サーバーにコピーします。
    4. 管理サーバーにログインし、以前にコピーした予約済み IP と SSH 鍵を使用して、ワークロード VSI に SSH で接続します。
    5. ワークロード VSI にログインしていることを確認します。
  2. アプリケーションをデプロイします。

    アプリケーションのデプロイについて詳しくは、「複数のロケーションおよびゾーンにわたる分離ワークロードのデプロイ」の「 仮想サーバー・インスタンスへの Web サーバーのインストールおよび構成 」を参照してください。 このチュートリアルでは nginx を参照していますが、 Apache サーバーをワークロード VSI のポート 80 にデプロイします。

    1. サーバー Apache をインストールするには、次のコマンドを実行してください:

      apt-get update
      
      apt-get install apache2 --yes
      
    2. インストールを確認するには、次のコマンドを実行してください:

      curl http://localhost:80
      
  3. 上記のステップを繰り返して、アプリケーションを他のワークロード VSI にデプロイします。

Secrets Manager での証明書の作成

  1. IBM Cloud Secrets Manager ドメインの証明書を注文またはインポートし、その後管理するために使用されます。 Secure with の手順に従って、Secure with HTTPS インスタンス Secrets Manager を作成し、認証してください。

  2. 認証局および DNS プロバイダーを追加します。

    1. Secrets Manager サービスを開き、Secrets エンジンの下の Public Certificates を選択します。
    2. 「Let 's Encrypt」 認証局エンジンを使用して認証局を構成します。
    3. 「DNS プロバイダー」 で、 CIS インスタンスを選択します。
  3. 代替 1: プロキシー、トラフィックは CIS の説明に従って、 Secrets Managerでパブリック証明書を注文します。

パブリック VPC ロード・バランサーの接続

これでアプリケーションがワークロード VSI にデプロイされたので、パブリック・インターネット経由でアプリにアクセスできるようにロード・バランサーを構成します。

  1. パブリック Application Load Balancer for VPCを作成します。

    1. この チュートリアル に従って、パブリック VPC ロード・バランサーを接続します。
    • フロントエンド・リスナーの場合は、リスナー・プロトコル HTTPS、ポート 443 を使用し、 Secrets Manager インスタンスと、前のステップで作成した公開証明書を接続します。
    • 「 Update security to allow external traffic 」のポート 80 およびポート 443 の手順に従います。
  2. アクセスを検証します。

    1. ロード・バランサーのホスト名を取得します。
      1. 「VPC インフラストラクチャー」>「ロード・バランサー」 に移動します。
      2. ロード・バランサーの選択
    2. Hostname の値をコピーします。
    3. ブラウザーに https://<hostname> を貼り付け、アプリが応答するかどうかを確認します。

CIS インスタンスで DNS レコードを構成します。

DNS CNAME レコードを作成して、クライアントがドメイン ( example.com など) を検索し、 xxx-REGION.lb.appdomain.cloud を解決できるようにします。

  1. CISで、 「信頼性」 ページを開き、 「DNS」 を選択します。

  2. DNS レコードまでスクロールして、レコードを作成します。

    • タイプ: CNAME
    • 名前: vpc-lb
    • TTL: 自動
    • 別名ドメイン名: VPC ロード・バランサーのホスト名。
    • vpc-lb の DNS CNAME レコードを追加する
  3. 上記の手順を繰り返して、他のリージョンの DNS レコードを追加します。

アプリケーションにアクセスするには、経由 HTTPS して CIS

アプリケーションがインターネット経由で使用可能であることを確認するには、ブラウザーで https://vpc-lb.<your_domain> ( https://vpc-lb.example.com など) にアクセスします。

グローバル・ロード・バランサーを作成する

このセクションでは、地域間で負荷を分散するように CIS を構成します。 新しい CNAME レコードを使用するように、 CIS インスタンスでグローバル・ロード・バランサーを構成します。

グローバル・ロード・バランサーを作成する前に、アプリケーションの可用性を検証するためのヘルス・チェックを構成し、VPC ロード・バランサーを指す起点プールを定義します。

ヘルス・チェックの構成

ヘルス・チェックを使用すると、プールが使用可能かどうかを調べて、正常なプールにトラフィックを転送できます。 これらのチェックは定期的にリクエスト HTTPS を送信し、応答を監視します。

  1. ダッシュボード CIS で、 [信頼性] > [グローバルロードバランサー] に移動します。
  2. 「ヘルス・チェック」 を選択し、「作成」 をクリックします。
  3. 名前を に設定してください vpc-lb。
  4. 「モニター・タイプ」 で HTTPS を選択します。
  5. 「ポート」 はデフォルトのままにします。
  6. パスを. / に設定する
  7. 「作成」 をクリックします。

オリジン・プールを定義する

プールとは、グローバルロードバランサーに接続された際にトラフィックがインテリジェントにルーティングされる、オリジンVSIまたはロードバランサーのグループです。 ロケーションベースのプールを定義し、ユーザーリクエストの地理的位置に基づいてユーザーを最も近いVPCロードバランサーにリダイレクトするよう CIS 設定できます。

  1. 「オリジン・プール (Origin pools)」 を選択し、「作成」 をクリックします。
  2. 「プールの名前」vpc-lb を入力します。
  3. 「起点名」 を vpc-lb に設定します。
  4. 「起点アドレス」 を、前に指定した新しい CNAME レコードに設定します。
  5. 「既存のヘルス・チェック」 を選択し、作成したヘルス・チェックを選択します。
  6. 自分のロケーションに近い ヘルス・チェック・リージョン を選択します。
  7. 保存 をクリックします。
  8. 他の地域についてもこれらのステップを繰り返します。

起点プールの正常性状況が healthy と表示されるまで数秒間待ちます。

グローバルロードバランサーを設定する

オリジンプールが定義されたので、ロードバランサーの設定を完了できます。

  1. 「ロード・バランサー」 を選択し、「作成」 をクリックします。
  2. 「使用可能」 (On) および 「プロキシー」 (Off) のデフォルト値を保持します。
  3. グローバル・ロード・バランサーの名前を vpc-lb-glb として指定します。 この名前は、アプリケーションにアクセスするためのサブドメイン内の最初の文字を形成します (例えば、 https://vpc-lb-glb.<your_domain>)。
  4. 「TTL」、 「トラフィック・ステアリング」、 「セッション・アフィニティー」 を、アプリケーションで機能する設定に設定します。
  5. 「経路の追加」 をクリックします。
  6. 地域: Defaultを選択します。
  7. 先ほど作成したオリジン・プールを選択します。
  8. 追加 をクリックします。
  9. 「作成」 をクリックします。
  10. ブラウザーで https://vpc-lb-glb.<your_domain> (例えば、 example.com) にアクセスして、グローバル・ロード・バランサーが使用可能であることを確認します。

チュートリアルを発展させる

CISを使用してランディング・ゾーンにデプロイされたワークロードにアクセスしました。

WAF や DDoS などの 追加機能 を CIS で構成して、よりセキュアにすることができます。 詳細については、以下のトピックをお読みください: