ワイが検証によく使う Oracle Cloud Infrastructure(OCI) の環境構成を整理してみますやで。
彡(゚)(゚)
1. 構成図
VCN Wizard で出てくる下記図を精緻化したものですやね。
2. コンパートメント
リソース作成の初手はコンパートメントから。名前は何でもエエです。原則としてrootコンパートメントに各種リソースは作らないこと。
3. VCN
VCN は CIDR(IPアドレス範囲) を決めるだけ。10.0.0.0/16 で広めに作成。名前は何でもヨシ!
4. Security List
Security List は OCI VCN の 仮想ファイアウォール に相当するものです。Public用とPrivate用をそれぞれ作成
4-1. Public Subnet用 の Security List
基本は Ingress で絞る前提で Egress は全開、Ingress は ssh(22) だけを開けます。
4-2. Private Subnet用 の Security List
Public用とほぼ同じですが、Ingress の ssh(22) は Source CIDR を Public Subnet の CIDR(10.0.0.0/24) に限定します。
4-3. NSG(Network Security Group)について
Security List の 代わりに NSG(Network Security Group) でも OK です。NSG はリソース単位に適用可能なので、Subnet単位の Security List よりも細かく制御できます。
注意点は、OCI の場合は Security List と NSG のルールは OR条件、どちらかに記述しておけば有効 になるということ。
NSG を使う場合は、Seculity List のルールは全部削除しておきましょう。
5. 各種Gateway
5-1. Internet Gateway
外部(Internet)からの接続用に Internet Gateway を作成。これが無くちゃ始まらない。
5-2. NAT Gateway
Private Compute から 外部(Internet) の接続用に NAT Gateway を作成。yum/wget/curl/Windows Update等の使用を想定。
5-3. Service Gateway
Private Compute から Object Storage や Autonomous Database、REST API(OCI CLI)等への接続用に Service Gateway を作成。
6. Route Table
今回の構成の場合は Route Table は 各種Gateway と Subnet をリンクさせる役割を持ちます。やはり Public用とPrivate用をそれぞれ作成
6-1. Public Subnet用 の Route Table
Internet Gateway を Subnet にアタッチして、外(Internet)から接続できるようにします。
6-2. Private Subnet用 の Route Table
NAT Gateway と Service Gateway を Subnet にアタッチして、外(Internet) や Oracle Service(Object Storage等)にアクセスできるようにします。
7. Subnet
原則として AD(Availability Domain)跨り の Regional Subnet を採用します。
AD(Availability Domain)毎 に Subnet を作成する必要が無く、とても便利彡(^)(^)
7-1. Public Subnet
CIDR(IPアドレス範囲) は 構成図通りの 10.0.0.0/24、前もって作った Security List と Route Table をアタッチします。
7-2. Private Subnet
CIDR(IPアドレス範囲) は 構成図通りの 10.0.1.0/24、やはり前もって作った Security List と Route Table をアタッチします。
8. Compute
前もってSSHのキーペア、公開鍵(*.pub) と pem形式の秘密鍵(*.pem) を2セット(Public用, Private用)作成しておきます。併せて putty形式の秘密鍵(*.ppk) も作成しておきます。
OS Image は Oracle Linux の最新版、Shape は 1コア(1oCPU) の Intel(VM.Standard.2.1) か AMD(VM.Standard.E2.1) を選択します。AMD の方がちょっとお安い。なおつい最近AMDの新型(VM.Standard.E3)が出ました。
9. ssh接続
クラックされた場合のリスクを考慮して、踏み台サーバーに鍵は置きません。下記記事のように、クライアント端末(PC)の秘密鍵を動的に転送して、Private Compute にアクセスします。
Pageantを使用した踏み台サーバー経由のssh
https://qiita.com/untitle_23/items/7af5e6b1d29f95c13f36
下記では Pageant + Tera Term を使用して、踏み台(Bastion)経由で Private Compute に ssh接続しています。
踏み台(Bastion)経由で Private Compute に接続できたで!彡(^)(^)
10. まとめ
この記事では手でペチペチと環境を構築していますが、もちろん Terraform や OCI Resource Manager(※Terraform互換の Managed な Service) でも環境構築は可能です。そのうち紹介するかも。
この記事やその他記事も参照して、OCI をどんどん活用して下さいね。
彡(^)(^)
11. 追記
Object Storage を作るの忘れてた……。まあ作るのも使うのも簡単なので、下記記事あたりをご参考にしつつ使ってみて下さい。
【総まとめ】Oracle Cloud Infrastructure オブジェクト・ストレージ・サービスの機能概要
https://qiita.com/ksonoda/items/dc12792c99a962f932f9
12. 参考マニュアル/リンク集
コンパートメントの管理
https://docs.oracle.com/cd/E97706_01/Content/Identity/Tasks/managingcompartments.htmVCNとサブネット
https://docs.oracle.com/cd/E97706_01/Content/Network/Tasks/managingVCNs.htmセキュリティ・ルール
https://docs.oracle.com/cd/E97706_01/Content/Network/Concepts/securityrules.htmセキュリティ・リスト
https://docs.oracle.com/cd/E97706_01/Content/Network/Concepts/securitylists.htmルート表
https://docs.oracle.com/cd/E97706_01/Content/Network/Tasks/managingroutetables.htmLinuxインスタンスでのキー・ペアの管理
https://docs.oracle.com/cd/E97706_01/Content/Compute/Tasks/managingkeypairs.htmインスタンスの作成 - Linuxインスタンスを作成するには
https://docs.oracle.com/cd/E97706_01/Content/Compute/Tasks/launchinginstance.htmOracle Cloud Infrastructure 活用資料集
https://community.oracle.com/docs/DOC-1035494