コンテンツにスキップ

OCI × Terraform 学習ノート

Always Free の範囲だけで、VCN(仮想クラウド・ネットワーク)から 3 層構成、Kubernetes(OKE)まで段階的に構築した実践記録です。

  • 各フェーズで Terraform による構築・検証・削除を行い、費用は全期間 0 円
  • 「どう作るか」だけでなく、「なぜその設計にしたか」と実際にハマったポイントを記録
  • コードはリポジトリにあり、ページ内のコード全体はリポジトリから直接埋め込んでいます(コメントは日本語に翻訳済み)

環境

項目 内容
アカウント PAYG(従量課金)アカウント、Always Free リソースのみ使用
リージョン(Region) 大阪 ap-osaka-1(ホームリージョン)
コンパートメント(Compartment) すべてのリソースを tf-lab に配置
ローカル PC Windows 11 + PowerShell 5.1 + Terraform 1.16 + VS Code
その他 Cloud Shell(kubectl / Ansible / SSH はここで実行。理由は各フェーズを参照)

学習ロードマップ

Phase テーマ 学んだこと
0 環境準備 API キー、コンパートメント、予算(Budget)アラート
1 ネットワーク VCN / インターネット・ゲートウェイ(Internet Gateway)/ ルート表(Route Table)/ セキュリティ・リスト(Security List)/ サブネット(Subnet)、state の役割、ドリフト(drift)の検出と修正
2 Compute + Ansible A1 VM、cloud-init と Ansible の役割分担、Cloud Shell のプライベート・ネットワーク(Private Network)
3 Module / Remote State / import module + for_each、オブジェクト・ストレージ(Object Storage)での state 管理、手動作成リソースの取り込み
4 3 層構成 LB → プライベート VM ×2 → Autonomous DB、NAT ゲートウェイ(NAT Gateway)/ サービス・ゲートウェイ(Service Gateway)/ 要塞(Bastion)
5a 静的チェック tflint / checkov、「チェック通過 ≠ 安全」
5b リソース・マネージャ(Resource Manager) OCI マネージドの Terraform、ドリフト検出
6 OKE(Kubernetes) Basic クラスタ、プライベート API エンドポイント、Service LB、自己修復 / drain の実験
7 サイトの公開 + CI/CD オブジェクト・ストレージの静的サイト、OCI DevOps(push → チェック → ビルド → 公開)、リソース・プリンシパル
8 サイトの自動停止 モニタリングのアラーム / 予算 → 通知 / イベント → ファンクション。悪意のあるアクセスによる課金を防ぐ
9 セキュリティ・運用 ボールト(マスター暗号化キー / シークレット / CMK)、インスタンス・プリンシパル、アクセス・ログ / フロー・ログ / 監査、コネクタ・ハブ、サービス・ゲートウェイだけのプライベート VM

読み方

前提知識

基本的なネットワーク(CIDR、ルーティング、ファイアウォール)と Linux の知識を前提としています。AWS に詳しい方向けに、各ページに対応関係(VCN ≒ VPC など)を記載しています。