就職活動を始めています
先日面談を行っていただいた企業でOCIを利用しているという話が出たので最低限触ってみることにしました
目標
一先ず、nginxのウェルカムページを表示するところまで行ってみます
Oracle Cloud のアカウントが作成済みの状態からスタート
Oracle Cloudのアカウントが作成済みの状態からスタートします
アカウント作成にはクレジットカードが必要ですが、Free Tier枠を利用している限り、課金は発生しないはず・・・です
VNCを作成
まずはVNC(Virtual Cloud Network)を作成します
VCNはクラウド上に設定する仮想的なネットワークで、このネットワークの中に必要なリソース(インスタンスなど)を配置します
よく出てくる用語の意味(Claude作成)
| 構成要素 | 役割 |
|---|---|
| CIDR Block | VCN全体が使えるIPアドレスの範囲(例: 10.0.0.0/16) |
| Subnet | VCNをさらに細かく区切った区画。Public/Privateの2種類がある |
| Internet Gateway | VCNとインターネットをつなぐ出入口 |
| NAT Gateway | Privateサブネットのリソースが外部に出ていくための出入口(片方向) |
| Route Table | 通信をどこに送るかの経路ルール |
| Security List / NSG | どのポート・どの送信元からの通信を許可するかのファイアウォール的な設定 |
具体的な作成手順は以下の通り
まずはCreate VCNのボタンからネットワークを作成します

以下のように設定しました

作成したVCNがインターネットへ接続できるよう、Internet Gatewayを設定します
作成したVCNをクリックし、Gatewayタブから設定できます
Internet Gateway自体にはほとんど設定項目は無く、他の設定を組み合わせ利用します

次はRouting Tableを設定します
作成したVCNをクリックし、Routingタブより確認できます

設定は以下のようにしました
Target Internet Gatewayは先程作成したGatewayを設定します
Destination CDIR Blockは「0.0.0.0/0」を指定しました
この設定は経路選択を行う対象の範囲を指定するCIDRで、0.0.0.0/0を指定すると全範囲が対象になります

次にセキュリティを設定し、nginx用の80ポートを通信できるようにしておきます

設定を追加します

以下の設定にしました
Source Port Range:
通信元のPort番号 Webブラウザなどのクライアントはエフェメラルポート(ポート番号がランダムになる)ため、Allを設定しています
Destination Port Range:
待ち受け側のポート番号 HTTPサーバーとして利用する場合、80や443を指定します

次にサブネットを設定しておきます
VCN内をサブネットで分離することでパブリックアクセス可能なリソースや、DBなどプライベートとしておきたいリソースを分けて管理することができます
以下のように設定しました

以下の設定にしました
Subnet Typeはリージョン内のどのADからもアクセスできるRegionalを選択しました
(AD = Availability Domain データセンター内の物理的な分離単位)
IPv4 CIDR Blockが、サブネットとして切り出すIPアドレスの範囲になります

インスタンスを作成する
いよいよインスタンを作成します
以下の手順で作成しました


無料枠で利用できるインスタンスには以下のマークがついています

セキュリティを強化する場合、Shieled Instanceも利用できます
ONにするとファームウェアの署名チェック、起動時間に変化がないかの監視、TPMの利用などセキュリティ機能が強化されます

ネットワークの設定を行います
ここまでで作成したVCNやサブネットがドロップダウンに表示されるはずなので、設定します

IPの設定を行います
プライベートアドレスは自動割り当て
HTTPサーバーとして利用するため、パブリックIPも割り当てられるようにしました

ネットワークの続きです
SSHで接続できるように、秘密鍵を生成してダウンロードしておきます

最後にストレージの設定を行います
デフォルトとしました

以上でインスタンスの設定は完了です
しばらくするとインスタンスが作成され、Runningとなるはずです

生成されたインスタンスには、ターミナルから以下のようなコマンドで接続できます
ssh -i /path/to/[ダウンロードしたSSH秘密鍵] opc@[パブリックIP]
※パブリックIPはOracle Cloud InfrastractureのInstancリストから確認できますちなみに、SSH接続時以下の警告が出てきました
** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.htmlこれは、現在利用されている暗号化の手法が、将来的に量子コンピューターなどの高性能コンピュータが登場した際に復号化される恐れのある形式を採用している場合に表示されるようです
(今のコンピューターでは安全だけど、将来的には解読されるかもしれない という警告)
※量子コンピュータに対しても安全な暗号方式を耐量子暗号化といいます(例:sntrup761x25519-sha512)
nginxは断念
インスタンス作成後、以下のコマンドでnginxをインストールしようとしましたが、どうしてもコマンド実行後にフリーズしてしまうため、今回は断念しました
一応Free Tier枠内で構築したので、起動しっぱなしにしておいて時間を取ってまた調査してみたいと思っています
sudo dnf install -y nginx