📜  AWS Batch 简介(1)

📅  最后修改于: 2023-12-03 14:59:26.182000             🧑  作者: Mango

AWS Batch 简介

AWS Batch 是一种全面托管的批量处理解决方案,允许您在 AWS 环境中高效地运行数百万个计算作业。 AWS Batch 移除了大量批处理任务管理的复杂性,并精简了计算资源的管理,从而使您能够使用自己的计算资源更有效地利用 AWS 的扩展性和弹性。

使用场景

AWS Batch 适用于不同的场景,例如:

  • 数据处理
  • 分析
  • 转换
  • 计算流程
  • 计算机模拟
  • 科学研究
特点

AWS Batch 具有以下特点:

  • 高效处理大规模计算任务
  • 动态扩容和缩容计算资源
  • 自动化了任务调度
  • 容易集成到现有的应用程序中
  • 使用AWS Identity and Access Management(IAM)进行身份验证和授权
如何使用AWS Batch

要使用 AWS Batch ,您需要创建以下两个角色:

  1. 计划程序
  2. 计算环境
计划程序

计划程序定义了要运行的作业和作业集。 它还定义了作业对操作系统的要求和要运行的命令。 计划程序使用 AWS 服务,例如 Amazon S3 和 Amazon DynamoDB ,来保存作业的输入和输出。

计算环境

计算环境是一组计算资源,可以用来运行您的作业。您可以在 AWS Batch 上设置计算环境,以便它们自动启动和终止 EC2 实例。

您可以使用 AWS CLI 或 AWS Batch 控制台启动计算环境,并根据您的要求自动缩放。 AWS Batch 还支持使用 AWS CloudFormation 模板创建计算环境。

使用示例

以下代码块是一个基本的 AWS Batch 代码示例:

---
AWSTemplateFormatVersion: '2010-09-09'
Resources:
  BatchJobQueue:
    Type: AWS::Batch::JobQueue
    Properties:
      ComputeEnvironmentOrder:
        - Order: 1
          ComputeEnvironment: !Ref BatchComputeEnvironment
      Priority: 1
      State: ENABLED

  BatchComputeEnvironment:
    Type: AWS::Batch::ComputeEnvironment
    Properties:
      Type: MANAGED
      ServiceRole: !Ref BatchServiceRole
      ComputeResources:
        Type: EC2
        MinvCpus: 0
        MaxvCpus: 256
        InstanceTypes:
          - optimal
        ImageId: ami-01234567890abcdef
        Subnets:
          - subnet-01234567890abcdef
        SecurityGroupIds:
          - sg-01234567890abcdef
        BidPercentage: 100
        SpotIamFleetRole: "arn:aws:iam::012345678901:role/aws-ec2-spot-fleet-tagging-role"
      State: ENABLED

  BatchServiceRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: BatchServiceRole
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
        -
          Effect: Allow
          Principal:
            Service: batch.amazonaws.com
          Action: sts:AssumeRole
      Path: /
      ManagedPolicyArns:
      - arn:aws:iam::aws:policy/service-role/AWSBatchServiceRole
...

此示例使用 AWS CloudFormation 模板来创建 AWS Batch 计算环境和作业队列。

模板解释
  • AWS::Batch::ComputeEnvironment 类型定义了一个 Batch 计算环境,使用 EC2 实例类型和所需的安全性相关设置。它还指定实例将被分配的 subnet 和安全组,以及它所需的其他 AWS 资源权限。
  • AWS::Batch::JobQueue 类型定义了作业队列,该队列由计算环境组成。它还指定作业的任务优先级和状态。
  • AWS::IAM::Role 类型定义了一个 IAM 角色,该角色授权 AWS Batch 服务访问您的 AWS 资源。
总结

AWS Batch 是 AWS 提供的一种高效批量处理解决方案。使用 AWS Batch ,您可以轻松地管理大量计算作业,将它们自动化地调度到计算环境中,并遵循所需的资源要求。 AWS Batch 还具有动态扩展和缩小计算资源的能力,并且易于使用和集成到现有应用程序中。