Facebook Twitter
お問い合わせ
TOPICS
更新情報
ホーム > ブログ > Oracle Cloud > OCIでネットワークを構築する

OCIでネットワークを構築する

Oracle Cloud
2018.07.31

目次

はじめに

はじめまして、id:yokoyama-mといいます。簡単な3層構成のネットワークをOCI上に構築したので紹介します。 OCIはWebコンソール上からも操作できますが、今回は勉強も兼ねてOCI Command Line Interface(以下CLI)を使用して構築を行いました。

仕様

構築するネットワークの仕様は以下の通りです。

アドレス範囲:

No 対象 AD1 CIDR AD2 CIDR
1 (全体) 192.168.0.0/16
2 web 192.168.64.0/24 192.168.80.0/24
3 app 192.168.128.0/24 192.168.144.0/24
4 db 192.168.192.0/24 192.168.208.0/24

アクセス制御:

No 送信元 送信先 許可ポート 備考
1 (外部) web 80,443 外部からのHTTP/HTTPS通信
2 web app 8080 REST APIサーバ
3 app app (すべて) 内部用
4 (外部) app 22 管理者用ssh
5 app db 3306,6379 MySQL/Redis
6 db db (すべて) 内部用

事前準備

CLIのインストールと設定

id:a-oono の以下記事を参照ください。

Oracle Cloud Infrastructure CLIの導入

Oracle Cloud Infrastructure CLIの導入 (後編:環境設定)

構築

コンパートメントの作成

コンパートメントを作成します。既存のコンパートメントを使用する場合は作成する必要はありません。

$ oci iam compartment create \
--compartment-id "ocid1.tenancy.oc1..abcdefghijklmnopqrstuvwxyz" \
--name mycomp \
--description "my compartment"

ネットワークの作成

ネットワークを作成します。

$ oci network vcn create \
--cidr-block 192.168.0.0/16 \
--compartment-id "ocid1.compartment.oc1..abcdefghijklmnopqrstuvwxyz" \
--display-name "vcn-main"

インターネットゲートウェイの作成

外部へアクセスするためのインターネットゲートウェイを作成します。

$ oci network internet-gateway create \
--compartment-id "ocid1.compartment.oc1..abcdefghijklmnopqrstuvwxyz" \
--is-enabled true \
--vcn-id "ocid1.vcn.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--display-name "igw-main"

ルートテーブルの作成

ルートテーブルを作成します。インターネットアクセス用のルールのみ定義しています。

$ oci network route-table create \
--compartment-id "ocid1.compartment.oc1..abcdefghijklmnopqrstuvwxyz" \
--route-rules '[{"cidrBlock":"0.0.0.0/0","networkEntityId":"ocid1.internetgateway.oc1.iad.abcdefghijklmnopqrstuvwxyz"}]' \
--vcn-id "ocid1.vcn.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--display-name "rt-main"

セキュリティリストの作成

Web層のセキュリティリストを作成します。

$ oci network security-list create \
--compartment-id "ocid1.compartment.oc1..abcdefghijklmnopqrstuvwxyz" \
--egress-security-rules '[{"destination": "0.0.0.0/0", "is-stateless": false, "protocol": "6"}]' \
--ingress-security-rules \
'[
       {"is-stateless": false,"protocol": "6","source": "0.0.0.0/0","tcp-options": {"destination-port-range": {"max": 80,"min": 80}}},
       {"is-stateless": false,"protocol": "6","source": "0.0.0.0/0","tcp-options": {"destination-port-range": {"max": 443,"min": 443}}}
       ]' \
--vcn-id "ocid1.vcn.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--display-name "sl-web"

App層のセキュリティリストを作成します。

$ oci network security-list create \
--compartment-id "ocid1.compartment.oc1..abcdefghijklmnopqrstuvwxyz" \
--egress-security-rules '[{"destination": "0.0.0.0/0", "is-stateless": false, "protocol": "6"}]' \
--ingress-security-rules \
'[
       {"is-stateless": false,"protocol": "6","source": "192.168.64.0/18","tcp-options": {"destination-port-range": {"max": 8080,"min": 8080}}},
       {"is-stateless": false,"protocol": "6","source": "0.0.0.0/0","tcp-options": {"destination-port-range": {"max": 22,"min": 22}}},
       {"is-stateless": false,"protocol": "6","source": "192.168.128.0/18"}
       ]' \
--vcn-id "ocid1.vcn.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--display-name "sl-app"

DB層のセキュリティリストを作成します。

$ oci network security-list create \
--compartment-id "ocid1.compartment.oc1..abcdefghijklmnopqrstuvwxyz" \
--egress-security-rules '[{"destination": "0.0.0.0/0", "is-stateless": false, "protocol": "6"}]' \
--ingress-security-rules \
'[
       {"is-stateless": false,"protocol": "6","source": "192.168.128.0/18","tcp-options": {"destination-port-range": {"max": 3306,"min": 3306}}},
       {"is-stateless": false,"protocol": "6","source": "192.168.128.0/18","tcp-options": {"destination-port-range": {"max": 6379,"min": 6379}}},
       {"is-stateless": false,"protocol": "6","source": "192.168.192.0/18"}
       ]' \
--vcn-id "ocid1.vcn.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--display-name "sl-db"

サブネットの作成

Web層のサブネットを作成します。

$ oci network subnet create \
--availability-domain "dArW:US-ASHBURN-AD-1" \
--cidr-block 192.168.64.0/24 \
--compartment-id "ocid1.compartment.oc1..abcdefghijklmnopqrstuvwxyz" \
--vcn-id "ocid1.vcn.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--display-name "subnet-web-1" \
--route-table-id "ocid1.routetable.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--security-list-ids '["ocid1.securitylist.oc1.iad.abcdefghijklmnopqrstuvwxyz"]'
$ oci network subnet create \
--availability-domain "dArW:US-ASHBURN-AD-2" \
--cidr-block 192.168.80.0/24 \
--compartment-id "ocid1.compartment.oc1..abcdefghijklmnopqrstuvwxyz" \
--vcn-id "ocid1.vcn.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--display-name "subnet-web-2" \
--route-table-id "ocid1.routetable.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--security-list-ids '["ocid1.securitylist.oc1.iad.abcdefghijklmnopqrstuvwxyz"]'

App層のサブネットを作成します。

$ oci network subnet create \
--availability-domain "dArW:US-ASHBURN-AD-1" \
--cidr-block 192.168.128.0/24 \
--compartment-id "ocid1.compartment.oc1..abcdefghijklmnopqrstuvwxyz" \
--vcn-id "ocid1.vcn.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--display-name "subnet-app-1" \
--route-table-id "ocid1.routetable.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--security-list-ids '["ocid1.securitylist.oc1.iad.abcdefghijklmnopqrstuvwxyz"]'
$ oci network subnet create \
--availability-domain "dArW:US-ASHBURN-AD-2" \
--cidr-block 192.168.144.0/24 \
--compartment-id "ocid1.compartment.oc1..abcdefghijklmnopqrstuvwxyz" \
--vcn-id "ocid1.vcn.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--display-name "subnet-app-2" \
--route-table-id "ocid1.routetable.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--security-list-ids '["ocid1.securitylist.oc1.iad.abcdefghijklmnopqrstuvwxyz"]'

DB層のサブネットを作成します。

$ oci network subnet create \
--availability-domain "dArW:US-ASHBURN-AD-1" \
--cidr-block 192.168.192.0/24 \
--compartment-id "ocid1.compartment.oc1..abcdefghijklmnopqrstuvwxyz" \
--vcn-id "ocid1.vcn.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--display-name "subnet-db-1" \
--route-table-id "ocid1.routetable.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--security-list-ids '["ocid1.securitylist.oc1.iad.abcdefghijklmnopqrstuvwxyz"]'
$ oci network subnet create \
--availability-domain "dArW:US-ASHBURN-AD-2" \
--cidr-block 192.168.208.0/24 \
--compartment-id "ocid1.compartment.oc1..abcdefghijklmnopqrstuvwxyz" \
--vcn-id "ocid1.vcn.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--display-name "subnet-db-2" \
--route-table-id "ocid1.routetable.oc1.iad.abcdefghijklmnopqrstuvwxyz" \
--security-list-ids '["ocid1.securitylist.oc1.iad.abcdefghijklmnopqrstuvwxyz"]'

さいごに

OCIでネットワークを構築してみました。いかがだったでしょうか。今後もネットワーク絡みのネタをご紹介できればと思います。よろしくお願いします。


この記事が気に入ったら
「いいね!」

この記事を書いた人


関連コンテンツ

CONTACT お問い合わせ

Cloudiiのサービスやプロダクトについて
興味をお持ちの方は、
お気軽にお問い合わせください。