皆様こんにちは。弊社2年目社員のTachanです。
今回はOracle Cloudを操作して仮想クラウド・ネットワークを作成してみたいと思います。
Oracle Cloud Infrastructure(OCI)とは
Oracle Cloud Infrastructure(OCI)とは、オラクル社が提供するクラウドコンピューティングサービスです。インターネットのネットワークを通してサーバー、ストレージ、ネットワーク、データベースなどをサービスとして提供しています。
Oracle Cloud の特徴として、以下が挙げられます。
①短い導入期間
- サービスを利用することによりWeb上でいつでもリソースを作成できるため、導入期間が短い
②コンプライアンス準拠
- 国内/国際基準の各業界コンプライアンスに準拠・対応しており高いセキュリティ性を提供
③マルチクラウド
- Oracle Cloudの東京リージョンとAzure東日本リージョンは相互接続が可能
- 構成を変えずに既存のアプリケーションを移行可能
- Oracle Cloud・Azureそれぞれのサービスの特徴を活かして組み合わせることが可能
④高いコストパフォーマンス
- クラウドコンピューティングサービスを使うと、オンプレミス環境で運用するよりもコスト面でメリットがある
- OCIはクラウドサービスを提供している他社よりも安価な価格で利用することができる
今回はOCIを使い、クラウド環境で使用するネットワーク環境(VCN)を構築してみようと思います。
仮想クラウド・ネットワークの構築
今回は以下の手順で進めていきます。
(下線部クリックするとページ内リンクに移動します)
1. コンパートメントの作成
(※既に作成している場合は2へ進みます)
OCIでは、リソースを作成する際に「コンパートメント」の利用を推奨します。
コンパートメントとは、作成することでテナントを論理的に区分けすることができます。
これは他社(AWS)にはない概念です。
コンパートメントの特徴として以下が挙げられます。
- 階層構造で最大6層まで作成可能
- コンパートメントの中に、リソースの設置が可能
- リソースを他のコンパートメントに移動することも可能
- 管理者は各コンパートメントに権限を割り振ることができるため、管理とアクセス制御が容易
コンパートメントの最上位層は「テナンシ」と言い、契約者毎のOracle Cloud Infrastructure環境を指します。テナンシ内のリソースは、他のテナンシと論理的に分割されているため、契約者のみが使用可能です。
コンパートメントの作成方法です。(作成済みは2へ)
①左上のメニュータブ(三)をクリックし、下にスクロール、「アイデンティティ」>「コンパートメント」を選択
②コンパートメントの画面から「コンパートメントの作成」を選択し、名前の入力後「作成」を押す
今回はテナンシの直下に作成しましたので、親コンパートメント名はルートでしたが、
コンパートメントの中にさらにコンパートメントを作成する場合(親から見た孫)は、親コンパートメント名が正しいか確認してから作成してください。
2.仮想クラウド・ネットワーク(VCN)の作成
では、仮想クラウド・ネットワークを実際に作成してみます。
①左上のメニュータブ(三)をクリックし、「ネットワーキング」>「仮想クラウド・ネットワーク」を選択
②選択すると、自分が作成したコンパートメント内にあるVCNが表示される(現段階では何も表示されていない)
※自分のコンパートメントが表示されない場合は、画面を下にスクロールすると
「リスト範囲」という項目からコンパートメントを切り替えることができます。
③「VCNウィザードの起動」を選択
VCNウィザードを選択すると、ネットワーク構築に必要なものを一度にまとめて作成することができます。
④ウィザードには2つのパターンがあり、今回は上の「インターネット接続性を持つVCN」を選択し、起動
⑤自分のコンパートメントが選択されていることを確認し、任意のVCN名を入力
その他はデフォルトの設定のまま「次へ」を押し、内容の確認と作成をする
以上でVCNを作成することができました!
3. 作成されたネットワークの確認
作成が完了したら作成されたものを確認していきます。VCNウィザードでは以下のコンポーネントが作成されます。左半分から確認していきます。
まず、アドレス空間とドメイン名を確認します。
①「仮想クラウド・ネットワーク」のページで先ほど作成したVCNを選択
②「仮想クラウド・ネットワーク」の詳細画面が表示され、
VCN情報からアドレス空間とDNSドメイン名が作成されていることを確認
③そのまま画面を下にスクロールするとサブネットが2つ作成されていることを確認
次にインターネットゲートウェイを確認します。
「仮想クラウド・ネットワーク」の詳細画面の左側にリソース欄があります。
①リソース欄の「インターネットゲートウェイ」を選択
②インターネットゲートウェイの作成を確認
このインターネットゲートウェイを使うことでパブリックサブネットとインターネット間は通信することができます。
現時点で作成されたものを半分確認できました。
次は残りの右半分、DHCPオプション、セキュリティリスト、ルート表を確認していきます。
これらはすべて、「仮想クラウド・ネットワーク」の詳細画面のリソース欄から確認ができます。
①「仮想クラウド・ネットワーク」の詳細画面のリソース欄からDHCPオプションを表示
ここでは、DNSタイプが「インターネットおよびVCNリゾルバ」に、
検索ドメインが最初に確認したDNSドメイン名と一致しているか確認します。
この場合、インスタンス(仮想サーバー)は、インターネット上で公開されているホスト名を解決できるようになり、
また、同じVCN内の他のインスタンスのホスト名も解決できるようになります。
次にセキュリティリストを確認していきます。
セキュリティリストは、以下の2つが作成されていました。
- Default Security List(パブリックサブネット)
- プライベートサブネットのセキュリティリスト
セキュリティリストは仮想ファイアウォールの役割を果たし、パブリックサブネット・プライベートサブネットの通信をサブネット単位で制御する設定ができます。
インスタンス単位で通信制御を行いたい場合は、
「ネットワークセキュリティグループ」で設定ができます。
Oracle Cloudではこちらを推奨しています。
イングレスルールはサブネットに入ってくる通信を、
エグレスルールはサブネットから出ていく通信をホワイトリスト方式で設定できます。
通したい通信はルールを追加しておきましょう。
(私は途中までブラックリスト形式と勘違いしていました…)
※ネットワークセキュリティグループで許可されている場合、
セキュリティリストで拒否していても通信は許可されます。
セキュリティリストに「ステートレス」という項目がありますが、
これを「いいえ」にするとステートフルになり、「はい」にするとステートレスになります。
これは、例えば、イングレスルールでステートフルに設定された通信は、
設定されたエグレスルールに関係なく、送信元への通信を許可します。
つまり、入ってきた通信は出ていくことができます。
逆も可能で、エグレスルールでステートフルに設定された通信は、
設定されたイングレスルールに関係なく、送信元への通信を許可します。
つまり、出ていった通信は入ってくることもできます。イングレスとエグレスの両方が許可されます。
ステートレスの場合、イングレスで許可された通信はエグレスで拒否されてしまいます。
エグレスも許可したい場合は、エグレスルールに別途でルールを追加する必要があります。
つまり、入ってきた通信は出ていくことができません。イングレスのみ許可されます。
逆も同様です。なので両方の通信を許可したい場合はステートフルで設定しましょう。
今回、VCNのウィザードで作成されたDefault Security Listのイングレスルールには、
22番ポート宛のトラフィックがステートフルで設定されています。
なので、パブリックサブネットに仮想サーバーを作成した場合、SSHアクセスができるようになります!
最後にルート表を確認していきます。
以下の2つが作成されていました。
- Default Route Table(パブリックサブネット)
- プライベートサブネットのルート表
Default Route Tableとプライベートサブネットのルート表では作成されているものが違います。
Default Route Tableでは、インターネットゲートウェイが、
プライベートサブネットのルート表ではNATゲートウェイとサービス・ゲートウェイが作成されています。
NATゲートウェイは、プライベートサブネットからインターネットにアクセスすることはできますが、インターネットからはアクセスできません。
サービス・ゲートウェイは VCN内のインスタンスからOCIの他のパブリックサービスにアクセスする際に使われます。インターネットを経由せず、プライベートに接続することができます。
確認は以上で終了です。
これで、仮想クラウド・ネットワークを構築することができました。
VCNウィザードで作成すると必要なコンポーネントが一度で作成でき、
あらかじめセキュリティリストも最低限設定されているのでとても便利ですよね。
次回は今回作成したサブネットにリソースを配置してみたいと思います!
最後までお読みいただき、ありがとうございました。
- カテゴリ:
- OCIで作ってみた
- タグ:
- ネットワーク