AWS的VPC 架构搭建

我们将创建以下结构:

  • 一个 VPC:10.0.0.0/16
  • 一个 公有子网:10.0.1.0/24(可以访问互联网)
  • 一个 私有子网:10.0.2.0/24(不能直接访问公网)
  • 一个 Internet Gateway(IGW):让公有子网 EC2 可以访问互联网
  • 一个 NAT 网关:让私有子网 EC2 能出网
  • 一个 跳板机(Bastion Host):部署在公有子网,用于登录私有子网 EC2

🧱 步骤一:创建 VPC

  1. 登录 AWS 中国区控制台(https://console.amazonaws.cn
  2. 搜索并进入 “VPC” 服务
  3. 点击左侧“你的 VPC” → 右上角点击【创建 VPC】
  4. 创建方式选择 “仅限 VPC”
  5. 配置如下:
    • 名称标签:My-VPC
    • IPv4 CIDR 块:10.0.0.0/16
  6. 点击【创建 VPC】

🧱 步骤二:创建两个子网

  1. 左侧点击“子网” → 点击【创建子网】
  2. 选择刚刚创建的 My-VPC

➤ 创建公有子网:

  • 子网名称:Public-Subnet
  • 可用区:任选一个(如 cn-northwest-1a)
  • 子网 CIDR 块:10.0.1.0/24

➤ 创建私有子网:

  • 子网名称:Private-Subnet
  • 可用区:同上
  • 子网 CIDR 块:10.0.2.0/24

点击【创建子网】


🧱 步骤三:创建并附加 Internet 网关(IGW)

  1. 左侧点击“Internet 网关” → 点击【创建 Internet 网关】
  2. 名称标签:My-IGW → 点击【创建】
  3. 创建完成后,点击【操作】→【附加到 VPC】
  4. 选择刚才创建的 My-VPC → 确认

🧱 步骤四:配置公有子网的路由表

  1. 左侧点击“路由表”
  2. 找到自动创建的与 My-VPC 关联的路由表 → 改名为 Public-RT
  3. 点击该路由表 → 切换到“路由” → 点击【编辑路由】
    • 添加一条路由:目标地址:0.0.0.0/0,目标:选择 Internet 网关(IGW)
    • 点击【保存】
  4. 切换到“子网关联”→【编辑子网关联】
    • 勾选 Public-Subnet → 保存

🧱 步骤五:创建 NAT 网关

  1. 左侧点击“弹性 IP” → 【分配弹性 IP 地址】
    • 点击【分配】
  2. 左侧点击“NAT 网关” → 点击【创建 NAT 网关】
    • 名称:My-NAT
    • 子网:选择 Public-Subnet
    • 绑定刚刚分配的弹性 IP 地址
  3. 点击【创建 NAT 网关】
    • 等待 NAT 状态变为 “可用”

🧱 步骤六:配置私有子网的路由表

  1. 左侧点击“路由表” → 【创建路由表】
    • 名称标签:Private-RT
    • VPC:选择 My-VPC
  2. 点击【创建】
  3. 打开该路由表 → 点击“路由” → 【编辑路由】
    • 添加目标:0.0.0.0/0,目标类型:选择 NAT 网关
    • 点击【保存】
  4. 点击“子网关联” → 【编辑子网关联】
    • 勾选 Private-Subnet → 保存

🧱 步骤七:创建 EC2 实例进行测试

➤ 公有子网:创建跳板机

  1. 进入 EC2 控制台 → 点击【启动实例】
  2. 名称:Bastion-Host
  3. 镜像:选择 Amazon Linux 2
  4. 实例类型:t3.micro(免费额度)
  5. 网络:选择 My-VPC,子网:选择 Public-Subnet
  6. 勾选“自动分配公网 IP”
  7. 配置 SSH 密钥对
  8. 安全组规则:
    • 入站规则:允许 SSH(端口 22),来源可以设为 0.0.0.0/0 或你自己的公网 IP
  9. 启动实例

➤ 私有子网:创建业务 EC2 实例

  1. 名称:Private-EC2
  2. 子网:选择 Private-Subnet
  3. 不要分配公网 IP
  4. 安全组规则:
    • 入站:允许 SSH,来源设为 10.0.1.0/24(跳板机所在子网)
  5. 启动实例

🧪 步骤八:测试验证

➤ 登录跳板机:

ssh -i your-key.pem ec2-user@跳板机公网IP

➤ 从跳板机内登录私有子网 EC2:

ssh -i your-key.pem ec2-user@私有EC2的内网IP

➤ 在私有子网 EC2 上测试出网能力(通过 NAT):

ping 8.8.8.8

curl ifconfig.me

sudo yum update -y


✅ 搭建完成


✅ 场景目标

你希望实现以下架构(基于 AWS 中国区域):

  1. 网络结构
    • 一个 VPC,包含:
      • 公有子网:用于跳板机(Bastion Host)与 Memcached
      • 私有子网:用于部署 EC2(含 MySQL)
  2. EC2 实例
    • 私有子网的 EC2 可以访问:
      • S3 拉取与上传数据(通过 NAT 网关)
      • MySQL 本地服务
      • Memcached 服务(部署在公有子网)
  3. S3 Bucket
    • 私有子网 EC2 可通过 AWS CLI 访问 S3(如:aws s3 cp)
  4. 其他组件
    • 一个 NAT 网关用于私有子网出网
    • 合理配置 IAM、Security Group、子网路由表等

🧱 第一部分:VPC 和网络架构配置

步骤 1:创建 VPC(略,参考上面指南)

  • 名称:MyVPC
  • CIDR:10.0.0.0/16

步骤 2:创建子网

子网名称

CIDR

类型

Public-Subnet

10.0.1.0/24

公有子网

Private-Subnet

10.0.2.0/24

私有子网

步骤 3:创建 Internet 网关 + 附加 VPC

  • 名称:MyIGW
  • 并关联到 VPC

步骤 4:创建 NAT 网关

  • 在 Public-Subnet 中创建
  • 使用弹性 IP
  • 供私有子网出网用

步骤 5:配置路由表

  • Public-RT
    • 关联:Public-Subnet
    • 添加路由:0.0.0.0/0 → IGW
  • Private-RT
    • 关联:Private-Subnet
    • 添加路由:0.0.0.0/0 → NAT 网关

🧱 第二部分:部署 EC2、MySQL、Memcached、S3 访问

步骤 6:创建公有子网 EC2(跳板机)

  • 子网:Public-Subnet
  • 类型:Amazon Linux 2
  • 自动分配公网 IP:是
  • 安全组入站规则:
    • SSH:22端口,来源你自己公网 IP

步骤 7:创建私有子网 EC2

  • 子网:Private-Subnet
  • 不分配公网 IP
  • 安全组入站规则:
    • SSH 来自 Public-Subnet(如 10.0.1.0/24)
    • TCP 3306(MySQL),来源本安全组或跳板机
    • TCP 11211(Memcached),来源本安全组或跳板机

🧱 第三部分:配置 MySQL、Memcached、S3 访问

步骤 8:在私有 EC2 中安装 MySQL

sudo yum update -y

sudo yum install -y mariadb-server

sudo systemctl start mariadb

sudo systemctl enable mariadb

初始化数据库并设置密码:

sudo mysql_secure_installation

可通过:

mysql -u root -p

来登录 MySQL。


步骤 9:在公有 EC2 中部署 Memcached

sudo yum install -y memcached

sudo systemctl enable memcached

sudo systemctl start memcached

默认监听 11211 端口,确保安全组允许。


步骤 10:配置私有 EC2 访问 S3(拉取和上传)

10.1 安装 AWS CLI

sudo yum install -y awscli

10.2 配置访问凭据

执行:

aws configure

输入你的 Access Key、Secret、区域(如 cn-northwest-1),格式如下:

AWS Access Key ID [None]: <你的 Access Key>

AWS Secret Access Key [None]: <你的 Secret>

Default region name [None]: cn-northwest-1

Default output format [None]: json

10.3 验证 S3 访问

aws s3 ls s3://your-bucket-name/

aws s3 cp file.txt s3://your-bucket-name/

aws s3 cp s3://your-bucket-name/file.txt .

✅ 若 EC2 没有配置访问凭证,可以通过 IAM Role 赋予 EC2 访问权限。


✅ 总结构图(简略版)

[VPC: 10.0.0.0/16]

├── [Public Subnet: 10.0.1.0/24]

│   ├── EC2: Bastion Host(公网 IP)

│   └── EC2: Memcached(TCP 11211)

├── [Private Subnet: 10.0.2.0/24]

│   └── EC2: 应用主机(MySQL、S3 拉取)

├── IGW(Internet Gateway)→ 公网

├── NAT Gateway(私有子网出网)

└── S3(服务端存储,非用户控制)


🛠 可选:IAM 权限建议

如果你使用 IAM Role 分配给 EC2,建议附加如下策略:

{

  "Version": "2012-10-17",

  "Statement": [

    {

      "Effect": "Allow",

      "Action": [

        "s3:GetObject",

        "s3:PutObject",

        "s3:ListBucket"

      ],

      "Resource": [

        "arn:aws-cn:s3:::your-bucket-name",

        "arn:aws-cn:s3:::your-bucket-name/*"

      ]

    }

  ]

}

搭建完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值