aws平台练习

  1. 注册 AWS 账户
    访问 AWS 官方网站,点击"免费注册"按钮,按照提示完成账户注册:

提供电子邮件地址、密码和电话号码。

验证身份(可能需要手机验证码)。

设置 billing 信息。

  1. 登录 AWS 管理控制台

使用注册的邮箱和密码登录 AWS 管理控制台。

  1. 配置 AWS CLI (可选但推荐)
    为了方便后续操作,建议安装并配置 AWS CLI:

下载 AWS CLI:

在 Windows 上:访问 官方链接,运行安装程序。

在 macOS/Linux 上:使用以下命令安装:

复制代码
BASH
pip install --user awscli

配置 AWS CLI:

打开终端或命令提示符,运行:

复制代码
BASH
aws configure

按照提示输入你的 AWS Access Key ID、Secret Access Key 和默认区域(例如 us-east-1)。

  1. 创建 IAM 用户和角色

为了安全起见,建议创建一个 IAM 用户并为其分配必要的权限。

步骤 1:创建 IAM 用户

打开 AWS 管理控制台,导航到 IAM 服务。

在左侧菜单中选择 Users,点击"Add user"。

填写用户名称(例如 ml-pipeline-user),选择权限类型(直接访问资源)。

点击"Next: Permissions",然后选择一个预定义策略或自定义策略:

推荐使用 AmazonSageMakerFullAccess 和 CloudWatchReadOnlyAccess 等策略。

完成创建后,记录下用户的 Access Key ID 和 Secret Access Key。

步骤 2:创建 IAM 角色

在 IAM 控制台中选择 Roles,点击"Create role"。

选择信任关系(例如 AWS Account Arn)。

添加所需的权限策略:

AmazonSageMakerFullAccess

CodePipelineFullAccess

CodeBuildFullAccess

StatesFullAccess

完成创建后,记录角色的 ARN。

  1. 创建必要的 AWS 资源

步骤 1:创建 S3 存储桶

打开 AWS 管理控制台,导航到 S3。

点击"Create bucket",填写名称(例如 ml-pipeline-bucket)。

配置存储桶的区域和访问权限。

步骤 2:创建 ECR(Elastic Container Registry)仓库

打开 AWS 管理控制台,导航到 ECR。

在区域中选择一个位置(例如 us-east-1),点击"Create repository",填写名称(例如 ml-model-repo)。

步骤 3:创建 IAM 角色并附加策略

返回 IAM 控制台,确保你已经创建了必要的角色。

确保角色已附加以下策略:

AmazonSageMakerFullAccess

CodePipelineFullAccess

CodeBuildFullAccess

StatesFullAccess

  1. 配置 CodePipeline

打开 AWS 管理控制台,导航到 CodePipeline。

点击"Start pipeline execution"或创建一个新的管道。

按照提示配置管道:

选择源(例如 S3 存储桶)。

配置构建阶段(使用 CodeBuild)。

配置部署阶段(例如 SageMaker)。

  1. 配置 CodeBuild

打开 AWS 管理控制台,导航到 CodeBuild。

点击"Create project",填写项目名称和描述。

选择构建规范(Docker 或其他),配置构建命令:

复制代码
BASH
# 示例 Dockerfile
FROM python:3.8-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "main.py"]
  1. 配置 SageMaker
    打开 AWS 管理控制台,导航到 SageMaker。
    创建一个 SageMaker 实例(例如 ml-pipeline-instance)。
    配置模型部署(例如使用推理容器)。
  2. 配置 CloudWatch 监控
    打开 AWS 管理控制台,导航到 CloudWatch。
    创建日志组和日志流,监控管道的运行状态。
  3. 测试管道
    提交代码到 S3 存储桶或直接触发 CodePipeline。
    监控管道的运行状态,确保所有阶段(构建、部署)顺利完成。

更新之后

步骤 1: 设置 AWS CLI 环境

安装 AWS CLI:

下载并安装 AWS CLI。

配置 AWS CLI:

BASH

复制代码
aws configure

按提示输入你的 AWS 凭据和区域。

步骤 2: 创建新的 IAM 角色

a. 登录 AWS 管理控制台

打开 AWS 控制台。

使用你的注册邮箱和密码登录。

b. 创建新 IAM 角色

在导航栏中选择 IAM。

选择 Roles,然后点击 Create role。

选择以下信任策略:

AmazonSageMakerFullAccess

CodePipelineReadOnlyAccess

CodeBuildDeveloperAccess

完成创建角色。

c. 添加 IAM 策略

在新角色的权限部分,添加以下策略:

复制代码
arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
arn:aws:iam::aws:policy/CodePipelineReadOnlyAccess
arn:aws:iam::aws:policy/CodeBuildDeveloperAccess

步骤 3: 更新服务 IAM 角色

a. 更新 CodePipeline

打开 CodePipeline。

选择你的管道,点击 Edit pipeline。

在 Execution role 部分,选择新创建的 IAM 角色。

保存更改。

b. 更新 StepFunctions 状态机

打开 Step Functions。

选择你的状态机,点击 Edit。

在 Execution IAM Role 中,选择新 IAM 角色。

保存并运行状态机。

c. 更新 CodeBuild 项目

打开 CodeBuild。

选择你的构建项目,点击 Edit build project。

在 Service role 部分,选择新 IAM 角色。

保存更改。

步骤 4: 测试管道

a. 提交代码到 CodeCommit

打开终端,克隆你的 CodeCommit 存储库:

复制代码
BASH
git clone https://git-codecommit.<region>.amazonaws.com/v1/repos/<repository-name>

修改 model/training_script.py 文件。

提交更改:

BASH

复制代码
git add .
git commit -m "修复IAM角色问题"
git push origin main

b. 触发 CodePipeline

在 CodePipeline 中,选择你的管道并手动运行。

步骤 5: 监控和验证

a. 检查 CloudWatch 日志

打开 CloudWatch Logs。

查看 CodeBuild 和 StepFunctions 的日志,确保没有权限相关错误。

b. 验证 SageMaker 模型训练

在 SageMaker 中,检查模型训练作业是否成功启动并完成。

代码示例

a. IAM 策略文件(iam-policy.json)

JSON

复制代码
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:CancelBuild",
                "codepipeline:Get*",
                "codepipeline:List*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "codebuild:BatchGetProjects",
                "codebuild:GetProject",
                "codebuild:StartBuild"
            ],
            "Resource": "*"
        }
    ]
}

b. 更新 CodePipeline 的 IAM 角色

BASH

复制代码
aws codepipeline update-pipeline \
--name <pipeline-name> \
--configuration '{"executionRoleArn":"arn:aws:iam::<account-id>:role/<new-role-name>"}'

注意事项

权限最小化:仅授予所需的最小权限。

日志监控:及时查看 CloudWatch 日志,排查问题。

测试环境:在非生产环境中进行测试,避免影响线上服务。

相关推荐
wayuncn41 分钟前
黑龙江 GPU 服务器租用:开启高效计算新征程
运维·服务器·云计算·gpu算力·算力
Linux运维老纪5 小时前
Linux之 grep、find、ls、wc 命令
linux·运维·服务器·数据库·云计算·运维开发
csdn56597385020 小时前
阿里云实时计算Flink版产品体验测评
阿里云·flink·云计算·datav·实时数仓hologres
西柚小萌新21 小时前
【大模型实战篇】--阿里云百炼搭建MCP Agent
阿里云·云计算
huang_xiaoen2 天前
试一下阿里云新出的mcp服务
人工智能·阿里云·ai·云计算·mcp
代码小学僧2 天前
🤗 赛博佛祖 Cloudflare 初体验托管自定义域名与无限邮箱注册
前端·serverless·云计算
AKAMAI2 天前
GitOps实战:使用Flux新建Kubernetes集群
后端·云原生·云计算
阿里云大数据AI技术2 天前
大模型落地的关键:如何用 RAG 打造更智能的 AI 搜索——阿里云 AI 搜索开放平台
人工智能·云计算
Blossom.1182 天前
时间的重构:科技如何重塑人类的时间感知与存在方式
人工智能·科技·学习·重构·云计算·生活·时序数据库
阿里云大数据AI技术2 天前
阿里云 AI 搜索开放平台新功能发布:大模型联网能力上线
大数据·云计算