Cloud Internet Services (CIS) を使用したアプリケーションへのアクセスの構成
このチュートリアルでは、 IBM Cloud Internet Services (CIS) を使用して、 VPC landing zone のデプロイ可能なアーキテクチャーの VSI にデプロイされたアプリケーションにインターネット経由でアクセスします。 必要なインフラストラクチャーをセットアップし、デプロイ可能なアーキテクチャーにデプロイされたアプリケーションにアクセスするように CIS を構成する方法を学習します。
CIS は、グローバル・ロード・バランサー、キャッシング、Web アプリケーション・ファイアウォール、およびページ・ルールを提供して、アプリケーションを保護し、その信頼性とパフォーマンスを向上させます。
目標
- オペレーターが VPC 環境にアクセスするために必要なアクセス権限を割り当てます。これには、ワークロード VPC に配置されている VSI へのアプリケーションのデプロイが含まれます。
- 誰でもアプリにアクセスできるように、VPC ロード・バランサーを介してアプリケーションをインターネットに公開します。 ロード・バランサーは、(ワークロード VSI 内の) VPC で実行されている複数のアプリケーション・サーバー・インスタンス間でトラフィックを分散し、正しく機能しているインスタンスにのみトラフィックを転送することができます。
- IBM Cloud Secrets Manager を使用して、すべての着信 HTTPS 要求の Transport Layer Security (TLS) 証明書を管理します。
- アプリケーションにアクセスするように Cloud Internet Services (CIS) を構成します。 Cloudflare を採用した IBM Cloud Internet Servicesは、 IBM Cloud上で高速、高性能、高信頼性、セキュアなインターネット・サービスを提供します。
- リージョン間でグローバル・ロード・バランサーを使用して、高可用性を実現し、耐障害性の向上および待ち時間の短縮を図る。
開始前に
- VPC landing zone のデプロイ可能なアーキテクチャーのインスタンスをデプロイします。 詳しくは、 ランディング・ゾーンのデプロイ可能なアーキテクチャーのデプロイ を参照してください。
- ランディング・ゾーンのデプロイ可能アーキテクチャーに有効な仮想サーバー (VSI) があることを確認します。
- Cloud Internet Services (CIS) のインスタンスを作成し、アクティブ・ドメイン・ネームを使用して構成します。 CIS Terraform モジュール を使用して、インスタンスを作成および構成できます。
オペレーター・アクセス権限の割り当て
VPC landing zone ・トポロジーへのネットワーク・アクセスがロックされているため、管理 VPC を介して VSI へのオペレーター・アクセス権限を割り当てる必要があります。
-
オプション を確認して、オペレーター・アクセス権限を割り当てます。
-
以下のいずれかの方法を実行します。
このチュートリアルでは、管理 VPC 内のいずれかの VSI を「ジャンプ・ボックス」として公開します。 ワークロード VPC にアクセスし、ワークロード VPC にあるワークロード VSI にアプリケーションをデプロイします。
アプリケーションをデプロイするすべての VSI にオペレーター権限を割り当てます。
ワークロード VSI へのアプリケーションのデプロイ
-
管理 VPC を介してワークロード VSI (例えば、 <your_prefix>-workload-server-001) にアクセスします。
- ワークロード VPC の ACL にアクセスし、 インバウンドおよびアウトバウンドのルール を作成して、管理 VPC の SSH 通信 (ポート 22) を有効にします。
- 同様に、ワークロード VPC の管理 VPC の ACL で SSH を有効にするインバウンドおよびアウトバウンドのルールを作成します。
- SSH 鍵 (管理 VSI へのログインに使用) をシステムから管理サーバーにコピーします。
- 管理サーバーにログインし、以前にコピーした予約済み IP と SSH 鍵を使用して、ワークロード VSI に SSH で接続します。
- ワークロード VSI にログインしていることを確認します。
-
アプリケーションをデプロイします。
アプリケーションのデプロイについて詳しくは、「複数のロケーションおよびゾーンにわたる分離ワークロードのデプロイ」の「 仮想サーバー・インスタンスへの Web サーバーのインストールおよび構成 」を参照してください。 このチュートリアルでは nginx を参照していますが、 Apache サーバーをワークロード VSI のポート
80
にデプロイします。-
以下のコマンドを実行して、 Apache サーバーをインストールします。
apt-get update
apt-get install apache2 --yes
-
以下のコマンドを実行して、インストールを検証します。
curl http://localhost:80
-
-
上記のステップを繰り返して、アプリケーションを他のワークロード VSI にデプロイします。
Secrets Manager での証明書の作成
-
IBM Cloud Secrets Manager は、ドメインの証明書を注文またはインポートしてから管理するために使用されます。 HTTPS で保護 の手順に従って、 Secrets Manager インスタンスを作成して許可します。
-
認証局および DNS プロバイダーを追加します。
- Secrets Manager サービスを開き、Secrets エンジンの下の
Public Certificates
を選択します。 - 「Let 's Encrypt」 認証局エンジンを使用して認証局を構成します。
- 「DNS プロバイダー」 で、 CIS インスタンスを選択します。
- Secrets Manager サービスを開き、Secrets エンジンの下の
-
代替 1: プロキシー、トラフィックは CIS の説明に従って、 Secrets Managerでパブリック証明書を注文します。
パブリック VPC ロード・バランサーの接続
これでアプリケーションがワークロード VSI にデプロイされたので、パブリック・インターネット経由でアプリにアクセスできるようにロード・バランサーを構成します。
-
パブリック Application Load Balancer for VPCを作成します。
- この チュートリアル に従って、パブリック VPC ロード・バランサーを接続します。
- フロントエンド・リスナーの場合は、リスナー・プロトコル
HTTPS
、ポート443
を使用し、 Secrets Manager インスタンスと、前のステップで作成した公開証明書を接続します。 - 「 Update security to allow external traffic 」のポート
80
およびポート443
の手順に従います。
-
アクセスを検証します。
- ロード・バランサーのホスト名を取得します。
- 「VPC インフラストラクチャー」>「ロード・バランサー」 に移動します。
- ロード・バランサーの選択
- Hostname の値をコピーします。
- ブラウザーに
https://<hostname>
を貼り付け、アプリが応答するかどうかを確認します。
- ロード・バランサーのホスト名を取得します。
CIS インスタンスで DNS レコードを構成します。
DNS CNAME レコードを作成して、クライアントがドメイン ( example.com
など) を検索し、 xxx-REGION.lb.appdomain.cloud
を解決できるようにします。
-
CISで、 「信頼性」 ページを開き、 「DNS」 を選択します。
-
DNS レコードまでスクロールして、レコードを作成します。
- タイプ: CNAME
- 名前: vpc-lb
- TTL: 自動
- 別名ドメイン名: VPC ロード・バランサーのホスト名。
- vpc-lb の DNS CNAME レコードを追加します。
-
上記の手順を繰り返して、他のリージョンの DNS レコードを追加します。
CIS を使用して HTTPS でアプリケーションにアクセスします。
アプリケーションがインターネット経由で使用可能であることを確認するには、ブラウザーで https://vpc-lb.<your_domain>
( https://vpc-lb.example.com
など) にアクセスします。
グローバル・ロード・バランサーを作成する
このセクションでは、地域間で負荷を分散するように CIS を構成します。 新しい CNAME レコードを使用するように、 CIS インスタンスでグローバル・ロード・バランサーを構成します。
グローバル・ロード・バランサーを作成する前に、アプリケーションの可用性を検証するためのヘルス・チェックを構成し、VPC ロード・バランサーを指す起点プールを定義します。
ヘルス・チェックの構成
ヘルス・チェックを使用すると、プールが使用可能かどうかを調べて、正常なプールにトラフィックを転送できます。 これらのチェックは、HTTPS 要求を定期的に送信し、応答をモニターします。
- CIS ダッシュボードで、 「信頼性」 > 「グローバル・ロード・バランサー」 に移動します。
- 「ヘルス・チェック」 を選択し、「作成」 をクリックします。
- 「名前」 を
vpc-lb
に設定します。 - 「モニター・タイプ」 で
HTTPS
を選択します。 - 「ポート」 はデフォルトのままにします。
- 「パス」 を
/
に設定します。 - 「作成」 をクリックします。
オリジン・プールを定義する
プールは、トラフィックがグローバル・ロード・バランサーに接続されたときにインテリジェントにルーティングされる起点 VSI またはロード・バランサーのグループです。 ロケーション・ベースのプールを定義し、ユーザー要求の地理的位置に基づいて最も近い VPC ロード・バランサーにユーザーをリダイレクトするように CIS を構成することができます。
- 「オリジン・プール (Origin pools)」 を選択し、「作成」 をクリックします。
- 「プールの名前」
vpc-lb
を入力します。 - 「起点名」 を
vpc-lb
に設定します。 - 「起点アドレス」 を、前に指定した新しい CNAME レコードに設定します。
- 「既存のヘルス・チェック」 を選択し、作成したヘルス・チェックを選択します。
- 自分のロケーションに近い ヘルス・チェック・リージョン を選択します。
- 保存 をクリックします。
- 他の地域についてもこれらのステップを繰り返します。
起点プールの正常性状況が healthy
と表示されるまで数秒間待ちます。
グローバル・ロード・バランサーの構成
起点プールが定義されたので、ロード・バランサーの構成を完了できます。
- 「ロード・バランサー」 を選択し、「作成」 をクリックします。
- 「使用可能」 (
On
) および 「プロキシー」 (Off
) のデフォルト値を保持します。 - グローバル・ロード・バランサーの名前を
vpc-lb-glb
として指定します。 この名前は、アプリケーションにアクセスするためのサブドメイン内の最初の文字を形成します (例えば、 https://vpc-lb-glb
.<your_domain>
)。 - 「TTL」、 「トラフィック・ステアリング」、 「セッション・アフィニティー」 を、アプリケーションで機能する設定に設定します。
- 「経路の追加」 をクリックします。
- 地域:
Default
を選択します。 - 先ほど作成したオリジン・プールを選択します。
- 追加 をクリックします。
- 「作成」 をクリックします。
- ブラウザーで
https://vpc-lb-glb.<your_domain>
(例えば、example.com
) にアクセスして、グローバル・ロード・バランサーが使用可能であることを確認します。
チュートリアルを発展させる
CISを使用してランディング・ゾーンにデプロイされたワークロードにアクセスしました。
WAF や DDoS などの 追加機能 を CIS で構成して、よりセキュアにすることができます。 詳しくは、以下のトピックを参照してください。