オーケストレーションを使用したIPネットワークを使用した複数層トポロジの作成
IPネットワークにアタッチされたCompute Classicインスタンスにデプロイされたアプリケーションの複数層トポロジを起動および管理するためのオーケストレーションを作成します。
シナリオの概要
アプリケーションとアプリケーションで使用されるデータベースは、別々のIPネットワークにアタッチされたインスタンスで管理されます。 Oracle Cloud外部のユーザーは、アプリケーション・インスタンスにHTTPSアクセスできます。 トポロジには、クラウド外部のユーザーがSSHを使用して接続できる管理インスタンスも含まれます。 管理インスタンスは、トポロジ内の他のすべてのインスタンスと通信できます。
ノート:
このガイドでは、サンプル・トポロジのIPネットワークにアタッチされたインスタンスのネットワーク構成について説明します。 フレームワークとステップのフローは、他の類似するトポロジまたはより複雑なトポロジに適用できます。 他のリソース(ストレージなど)をプロビジョニングまたは構成するステップについては、このガイドでは説明しません。
コンピュート・トポロジ
このチュートリアルのステップを使用してビルドするトポロジには、次のCompute Classicインスタンスが含まれています。
-
2つのインスタンス -
appVM1とappVM2- IPネットワークにアタッチされ、それぞれが固定のパブリックIPアドレスを持つビジネス・アプリケーションをホスティングするためのもの。 -
2つのインスタンス -
dbVM1とdbVM2- アプリケーションのデータベースをホストします。 これらのインスタンスは、2番目のIPネットワークにアタッチされます。 -
管理インスタンス -
adminVM- 3番目のIPネットワークにアタッチされ、固定のパブリックIPアドレスを持っています。
ノート:
実際にアプリケーションやデータベースをインストールすることはありません。 かわりに、ncユーティリティを使用して、必要なアプリケーションおよびデータベース・ポートのリスナーをシミュレートします。 この項の目的は、次に説明するトラフィック・フロー要件に必要なネットワークの構成ステップを示すことです。
トラフィック・フロー要件
ビルドするトポロジでは、次のトラフィック・フローのみが許可される必要があります:
-
任意の場所からアプリケーション・インスタンスへのHTTPSリクエスト
-
任意の場所から管理インスタンスへのSSH接続
-
管理インスタンスからアプリケーション・インスタンスへのすべてのトラフィック
-
管理インスタンスからデータベース・インスタンスへのすべてのトラフィック
-
2つのアプリケーション・インスタンスからデータベース・インスタンスのポート1521へのTCPトラフィック
トポロジ・アーキテクチャ・ダイアグラム

「図architecture.pngの説明」
このトポロジに必要なネットワーク・リソース
-
アプリケーション・インスタンスおよび管理インスタンスの「パブリックIPアドレスの予約」
-
3つの「IPネットワーク」、それぞれアプリケーション・インスタンス、データベース・インスタンスおよび管理インスタンス
-
トポロジ内のIPネットワークに接続するための「IPネットワーク交換」
-
SSH、HTTPSおよびTCP/1521トラフィック用の「セキュリティ・プロトコル」
-
必要なセキュリティ・ルールを含むACL
-
アプリケーション・インスタンス、データベース・インスタンスおよび管理インスタンスのvNICsets
-
「セキュリティ・ルール」では、管理インスタンスへのSSH接続、アプリケーション・インスタンスへのHTTPSトラフィック、およびデータベース・インスタンスへのTCP/1521トラフィックを許可します。
オーケストレーションの作成
空のオーケストレーションを作成し、そのオーケストレーションにオブジェクトを追加するには、オーケストレーションを更新します。 オーケストレーションの更新時に、複数のインスタンスおよび複数のネットワークで構成されるトポロジの属性を定義できます。
前提条件
SSHキー・ペアの生成 オーケストレーションでは、公開キーを追加し、それをインスタンスに関連付けます。 「SSHキーペアの生成」を参照してください。
プロシージャ
ノート:
このステップでは、基本的なコンピュート・リソースおよびネットワーキング・リソースを迅速にプロビジョニングするために必要な主なステップを示します。 詳細な構成オプションについては説明していません。(オプション)VMsへのネットワーク・アクセスの検証
始める前に
VMsのIPアドレスを特定します:
- adminVM: パブリックIPアドレス
- appVM1: パブリックIPアドレスとプライベートIPアドレス
- appVM2: パブリックIPアドレスとプライベートIPアドレス
- dbVM1: プライベートIPアドレス
- dbVM2: プライベートIPアドレス
Webコンソールの「インスタンス」タブでVMを見つけ、「パブリックIP」列と「プライベートIP」列のアドレスをノートします。
ノート:
VMの「パブリックIP」列が空白の場合、「ネットワーク」タブの「IPネットワーク」の下で「IP予約」を選択し、VMに割り当てられている予約についてそこに表示されているパブリックIPアドレスを確認します。クラウド外部から管理VMへのSSH接続の検証
ローカル・マシンから次のコマンドを実行します:
[localmachine ~]$ ssh -i path-to-privateKeyFile opc@publicIPaddressOfAdminVM 次のプロンプトが表示されます:
opc@adminvmこれにより、クラウド外部から管理VMへのSSH接続が可能であることが確認されます。
管理VMからデータベースおよびアプリケーションVMsへのSSH接続の検証
-
ローカル・マシンで次のコマンドを実行して、VMsに関連付けた公開キーに対応するSSH秘密キーファイルをローカル・マシンから管理VMにコピーします:
[localmachine ~]$ scp -i path-to-privateKeyFile path-to-privateKeyFile opc@publicIPaddressOfAdminVM:~/.ssh/privatekey -
ローカル・マシンから、SSHを使用して管理VMに接続します:
[localmachine ~]$ ssh -i path-to-privateKeyFile opc@publicIPaddressOfAdminVM -
管理VMから、SSHを使用して各データベースおよびアプリケーションVMsに接続します:
[opc@adminvm]$ ssh -i ~/.ssh/privatekey opc@privateIPaddress -
接続先のVMに応じて、
ssh接続が確立された後に次のいずれかのプロンプトが表示されます。-
opc@appvm1 -
opc@appvm2 -
opc@dbvm1 -
opc@dbvm2
-
アプリケーションVMsのポート443へのクラウド外部からポート443への接続の検証
ncユーティリティを使用すると、アプリケーションVMsのいずれかのポート443でリスナーをシミュレートし、クラウド外部の任意のホストからncを実行してアプリケーションVMへの接続を検証できます。
ノート:
ここで説明する検証手順は、Oracle Linux 7.2および6.8用のOracle提供のイメージを使用して作成されたVMsに固有のものです。-
ローカル・ホストにhttp://yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/getPackage/nc-1.84-24.el6.x86_64.rpmから
ncパッケージをダウンロードします。 -
nc-1.84-24.el6.x86_64.rpmをローカル・ホストから管理VMにコピーします。[localmachine ~]$ scp -i path-to-privateKeyFile path_to_nc-1.84-24.el6.x86_64.rpm opc@publicIPaddressOfAdminVM:~ -
ローカル・マシンから、SSHを使用して管理VMに接続します:
[localmachine ~]$ ssh -i path-to-privateKeyFile opc@publicIPaddressOfAdminVM -
nc-1.84-24.el6.x86_64.rpmをアプリケーションVMsの1つにコピーします。[opc@adminvm]$ scp -i ~/.ssh/privatekey ~/nc-1.84-24.el6.x86_64.rpm opc@privateIPaddressOfAppVM1:~ -
アプリケーションVMに接続します:
[opc@adminvm]$ ssh -i ~/.ssh/privatekey opc@privateIPaddressOfAppVM1 -
アプリケーションVMに
ncをインストールします。[opc@appvm1]$ sudo rpm -i nc-1.84-24.el6.x86_64.rpm -
ポート443でリスニングするようにアプリケーションVMを構成します。 このステップは、ポート443への接続の検証のみを目的としています。 実際のシナリオでは、このステップは、ポート443でリスニングするようにVMでアプリケーションを構成するときに実行されます。
[opc@appvm1]$ sudo nc -l 443 -
クラウド外部のホストから、次の
ncコマンドを実行して、アプリケーションVMのポート443に接続できるかどうかをテストします。[localmachine ~]$ nc -v publicIPaddressOfAppVM1 443次のメッセージが表示されます:Connection to publicIPaddressOfAppVM1 443 port [tcp/https] succeeded!このメッセージは、アプリケーションVMがポート443で接続リクエストを受け入れることを確認します。
-
Ctrl + Cを押して
ncプロセスを終了します。
アプリケーションVMからデータベースVMのポート1521への接続の検証
ncユーティリティを使用すると、データベースVMsのいずれかのポート1521のリスナーをシミュレートしてから、アプリケーションVMsのいずれかからncを実行して、アプリケーション層からデータベース層への接続を検証できます。
ノート:
ここで説明する検証手順は、Oracle Linux 7.2および6.8用のOracle提供のイメージを使用して作成されたVMsに固有のものです。-
ローカル・マシンから、SSHを使用して管理VMに接続します:
[localmachine ~]$ ssh -i path-to-privateKeyFile opc@publicIPaddressOfAdminVM -
nc-1.84-24.el6.x86_64.rpmをデータベースVMsの1つにコピーします。[opc@adminvm]$ scp -i ~/.ssh/privatekey ~/nc-1.84-24.el6.x86_64.rpm opc@privateIPaddressOfDBVM1:~ -
データベースVMに接続します:
[opc@adminvm]$ ssh -i ~/.ssh/privatekey opc@privateIPaddressOfDBVM1 -
データベースVMに
ncをインストールします。[opc@dbvm1]$ sudo rpm -i nc-1.84-24.el6.x86_64.rpm -
ポート1521でリスニングするVMを構成します。 このステップは、ポート1521への接続の検証のみを行うことに注意してください。 実際の使用例では、このステップはデータベースでポート1521でリスニングするように設定した場合に実行されます。
[opc@dbvm1]$ nc -l 1521 -
現行のターミナル・セッションは開いたままにします。 新しい端末セッションを使用して、SSHを使用して管理VMに接続し、そこからアプリケーションVMsのいずれかに接続します。
[localmachine ~]$ ssh -i path-to-privateKeyFile opc@publicIPaddressOfAdminVM [opc@adminvm]$ ssh -i ~/.ssh/privatekey opc@privateIPaddressOfAppVM1 -
アプリケーションVMから、次の
ncコマンドを実行して、データベースVMのポート1521に接続できるかどうかをテストします。[opc@appvm1 ~]$ nc -v privateIPaddressOfDBVM1 1521次のメッセージが表示されます:Connection to privateIPaddressOfDBVM1 1521 port [tcp/ncube-lm] succeeded!このメッセージは、データベースVMがアプリケーションVMsからポート1521で受信した接続リクエストを受け入れることを確認します。
-
Ctrl + Cを押して
ncプロセスを終了します。