AWS Fargate 上の AWS Batch - AWS Batch

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Fargate 上の AWS Batch

AWS Fargate は、サーバーやAmazon EC2インスタンスのクラスターを管理することなくAWS Batch でコンテナを実行できるテクノロジーです。AWSFargateを使用すると、コンテナを実行するために仮想マシンのクラスターをプロビジョニング、設定、スケールする必要がありません。これにより、サーバータイプの選択、クラスターをスケールするタイミングの決定、クラスターのパッキングの最適化を行う必要がなくなります。

Fargate リソースを使用してジョブを実行する場合、アプリケーションをコンテナにパッケージ化し、CPU とメモリ要件を指定して、ネットワークとIAM ポリシーを定義して、アプリケーションを起動します。各 Fargate ジョブは、独自の分離境界を持ち、基本となるカーネル、CPU リソース、メモリリソース、Elastic Network Interface を別のジョブと共有しません。

Fargateをいつ使うべきか

ほとんどのシナリオで Fargate を使用することをお勧めします。Fargate は、コンテナに指定したリソース要件に厳密に一致するようにコンピューティングを起動し、スケールします。Fargate を使用すると、追加のサーバーに対してオーバープロビジョニングまたは料金を支払う必要はありません。また、インスタンスタイプなど、インフラストラクチャ関連のパラメータの詳細について心配する必要はありません。コンピューティング環境をスケールアップする必要がある場合、Fargate リソースで実行されるジョブをより迅速に開始できます。通常、新しい Amazon EC2 インスタンスの作成に数分かかります。ただし、Fargate で実行されるジョブは、約 30 秒でプロビジョニングできます。必要な正確な時間は、コンテナイメージのサイズやジョブ数など、いくつかの要因によって異なります。

ただし、ジョブに次のいずれかが必要な場合は、Amazon EC2 を使用することをお勧めします。

  • 4 つ以上の vCPUs

  • 30 ギガバイト (GiB) 以上のメモリ

  • GPU が必要な場合

  • Arm ベースAWSGraviton CPU

  • カスタム Amazon マシンイメージ (AMI) の使用

  • いずれかです。LinuxParametersパラメーター

ジョブの数が多い場合は、Amazon EC2 インフラストラクチャを使用することをお勧めします。これは、EC2 では、Fargate リソースよりも高いレートで EC2 リソースにジョブをディスパッチできるため、さらに、EC2 を使用すると、同時に実行できるジョブが増えます。詳細については、Amazon Elastic Container Service デベロッパーガイドの「AWS Fargate サービスクォータ」を参照してください。

注記

AWS Batchは、Fargate または EC2 リソースの Windows コンテナをサポートしていません。

Fargate でのJob 定義

Fargate での AWS Batch ジョブは、使用可能なすべてのジョブ定義パラメータをサポートしているわけではありません。一部のパラメータはまったくサポートされていません。また、その他のパラメータはFargate ジョブでは異なる動作をします。

次のリストでは、Fargate ジョブで有効でないか、または制限されていないジョブ定義パラメータについて説明します。

platformCapabilities

FARGATE と指定する必要があります。

"platformCapabilities": [ "FARGATE" ]
type

container と指定する必要があります。

"type": "container"
containerPropertiesのパラメータ
executionRoleArn

Fargate リソースで実行されているジョブには指定する必要があります。詳細については、Amazon Elastic Container Service デベロッパーガイドの「タスク用の IAM ロール」を参照してください。

"executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole"
fargatePlatformConfiguration

(オプション、Fargate ジョブ定義の場合のみ)。Fargate プラットフォームのバージョンを指定するか、最新のプラットフォームバージョンの場合は LATEST を指定します。[platformVersion] の可能な値はデフォルトで [1.3.0]、[1.4.0]、[LATEST] です。

"fargatePlatformConfiguration": { "platformVersion": "1.4.0" }
instanceType
ulimits

Fargate リソースで実行されているジョブには適用されません。

memory
vcpus

これらの設定は、[resourceRequirements] で指定する必要があります。

privileged

このパラメータを指定しないか、[false] を指定します。

"privileged": false
resourceRequirements

メモリと vCPU の要件は、を使用して指定する必要があります。サポートされる値。GPU リソースは、Fargate リソースで実行されるジョブではサポートされません。

"resourceRequirements": [ {"type": "MEMORY", "value": "512"}, {"type": "VCPU", "value": "0.25"} ]
linuxParametersのパラメータ
devices
maxSwap
sharedMemorySize
swappiness
tmpfs

Fargate リソースで実行されるジョブには適用されません。

logConfigurationのパラメータ
logDriver

awslogsfluentd のみがサポートされています。詳細については、「awslogs ログドライバーを使用する」を参照してください。

networkConfiguration のメンバー
assignPublicIp

プライベートサブネットにトラフィックをインターネットに送信するための NAT ゲートウェイが接続されていない場合は、assignPublicIpを指定する必要があります。」ENABLED「。詳細については、「AWS Batch タスク実行 IAM ロール」を参照してください。

Fargate のジョブキュー

Fargate の AWS Batch ジョブキューは基本的に変更されません。唯一の制限は、に記載されているコンピューティング環境です。computeEnvironmentOrderすべてが Fargate コンピューティング環境である必要があります (FARGATEまたはFARGATE_SPOT). EC2 と Fargate コンピューティング環境は混在できません。

Fargate のコンピューティング環境

Fargate の AWS Batch コンピューティング環境は、利用可能なすべてのコンピューティング環境パラメーターをサポートしていません。一部のパラメータはサポートされていません。Fargateには特定の要件があります。

次のリストでは、Fargate ジョブで有効でないか、制限されていないコンピューティング環境パラメータについて説明します。

type

このパラメータを [MANAGED] に設定する必要があります。

"type": "MANAGED"
computeResources オブジェクトのパラメータ
allocationStrategy
bidPercentage
desiredvCpus
imageId
instanceTypes
ec2Configuration
ec2KeyPair
instanceRole
launchTemplate
minvCpus
placementGroup
spotIamFleetRole

これらは、Fargate コンピューティング環境には適用されないため、指定できません。

subnets

このパラメータにリストされているサブネットに NAT ゲートウェイが接続されていない場合は、ジョブ定義の assignPublicIp パラメータを [ENABLED] に設定する必要があります。

tags

これは、Fargate コンピューティング環境には適用されないため、指定できません。Fargate のコンピューティング環境用のタグを指定するには、computeResources オブジェクトにない tags パラメータを使用します。

type

これは FARGATE または FARGATE_SPOT であることが必要です。

"type": "FARGATE_SPOT"