OCI × Terraform 学习笔记¶
只用 Always Free 额度,从一个 VCN 开始,一步步做到 3 层架构和 Kubernetes(OKE)的实践记录。
- 每个阶段都用 Terraform 建、验证、再删掉,全程费用 0 日元
- 除了"怎么做",重点记录了"为什么这样设计"和实际踩过的坑
- 代码都在仓库里,页面中的完整代码是直接从仓库嵌入的
环境¶
| 项目 | 内容 |
|---|---|
| 账号 | PAYG(按量付费)账号,只使用 Always Free 资源 |
| Region | 大阪 ap-osaka-1(Home Region) |
| Compartment | 所有资源放在 tf-lab 里 |
| 本机 | Windows 11 + PowerShell 5.1 + Terraform 1.16 + VS Code |
| 其他 | Cloud Shell(kubectl / Ansible / SSH 都在这里执行,原因见各阶段) |
学习路线¶
| Phase | 主题 | 学到的东西 |
|---|---|---|
| 0 | 环境准备 | API Key、Compartment、Budget 告警 |
| 1 | 网络 | VCN / IGW / 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 → Private VM ×2 → Autonomous DB,NAT GW / Service GW / Bastion |
| 5a | 静态检查 | tflint / checkov,"检查通过 ≠ 安全" |
| 5b | Resource Manager | OCI 托管的 Terraform、drift 检测 |
| 6 | OKE(Kubernetes) | Basic cluster、私有 API endpoint、Service LB、自愈 / drain 实验 |
| 7 | 网站发布 + CI/CD | Object Storage 静态网站、OCI DevOps(push → 检查 → build → 发布)、Resource Principal |
| 8 | 网站自动停止 | Monitoring Alarm / Budget → Notifications / Events → Functions,防止恶意访问导致扣费 |
| 9 | 安全・运维 | Vault(主密钥 / Secret / CMK)、Instance Principal、访问日志 / Flow Logs / Audit、Connector Hub、只有 Service Gateway 的私有 VM |
怎么读¶
- 想复习某个服务 → 从上面的路线进对应的 Phase
- 遇到报错 → 先查 坑合集
- 担心费用 → 先看 Always Free 护栏
- 忘了命令 → 常用命令
前提知识
假设读者懂基本的网络(CIDR、路由、防火墙)和 Linux。对 AWS 熟悉的话,页面里有对应关系(VCN ≒ VPC 等)。