Anilchowdary69/anilpoka.site
GitHub: Anilchowdary69/anilpoka.site
基于 Terraform 的 AWS 静态网站基础设施模板,集成 S3、CloudFront、WAF 和 GitHub Actions 实现全自动化部署。
Stars: 0 | Forks: 0
# anilpoka.site — 基础设施即代码
🌐 **在线访问:** [https://anilpoka.site](https://anilpoka.site)
## 架构

## 技术栈
| 服务 | 用途 |
|---|---|
| AWS S3 | 静态网站托管 |
| AWS CloudFront | CDN、HTTPS 终止、边缘缓存 |
| AWS ACM | SSL/TLS 证书 (anilpoka.site + www) |
| AWS Route 53 | DNS — apex 和 www 的 A + AAAA 记录 |
| AWS WAF | Web ACL 安全层 |
| Terraform | 基础设施即代码 |
| GitHub Actions | CI/CD — 推送到 main 时自动部署 |
## CI/CD 流水线
每次推送到 `main` 都会触发 GitHub Actions 工作流,该工作流会:
1. 上传 `index.html` 到 S3
2. 清除 CloudFront 缓存
3. 网站在 30 秒内上线于 [https://anilpoka.site](https://anilpoka.site)
```
on:
push:
branches: [main]
```
## 基础设施管理
### 首次设置(导入现有资源)
```
cd terraform
terraform init
./import.sh
terraform plan # should show 0 changes
```
### 进行基础设施更改
```
cd terraform
terraform plan # preview changes
terraform apply # apply changes
```
### 仅部署网站
只需将 `index.html` 推送到 main — GitHub Actions 会处理其余的工作。
## 所需的 GitHub Secrets
| Secret | 描述 |
|---|---|
| `AWS_ACCESS_KEY_ID` | IAM 用户访问密钥 |
| `AWS_SECRET_ACCESS_KEY` | IAM 用户密钥 |
## 关键设计决策
- **OAC (Origin Access Control)** — S3 存储桶完全私有。只有 CloudFront 可以通过 OAC 访问它,公共互联网无法访问。
- **仅限 HTTPS** — CloudFront 自动将所有 HTTP 重定向到 HTTPS。
- **启用 IPv6** — CloudFront 分发同时提供 A 和 AAAA DNS 记录。
- **启用版本控制** — S3 存储桶版本控制保留了所有 `index.html` 部署的历史记录。
- **Terraform 状态** — 远程存储在 S3 后端以保持一致性。
## 作者
**Anil Kumar Chowdary Poka**
AWS Solutions Architect – Associate | 计算机科学硕士, Anderson University
- 作品集: [anilpoka.site](https://anilpoka.site)
- LinkedIn: [linkedin.com/in/anilkumarchowdarypoka](https://www.linkedin.com/in/anilkumarchowdarypoka/)
- GitHub: [github.com/Anilchowdary69](https://github.com/Anilchowdary69)
标签:ACM, AWS, CISA项目, CloudFront, DPI, ECS, GitHub Actions, OAC, Route 53, S3, SSL/TLS, SYN扫描, Syscall, Terraform, WAF, Web开发, 个人作品集, 云计算, 亚马逊云科技, 内容分发网络, 前端托管, 后端开发, 域名解析, 多模态安全, 对象存储, 源访问控制, 特权提升, 网络安全, 自动化部署, 自动笔记, 规则引擎, 边缘计算, 隐私保护, 静态网站