

Amazon Machine Learning サービスの更新や、その新しいユーザーの受け入れは行っていません。このドキュメントは既存のユーザー向けに提供されていますが、更新は終了しています。詳細については、「[Amazon Machine Learning とは](https://docs.aws.amazon.com/machine-learning/latest/dg/what-is-amazon-machine-learning.html)」を参照してください。

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

# Amazon Machine Learning のリファレンス
<a name="amazon-machine-learning-reference"></a>

**Topics**
+ [Amazon S3 からデータを読み込むための Amazon ML アクセス許可の取得](granting-amazon-ml-permissions-to-read-your-data-from-amazon-s3.md)
+ [Amazon S3 に予測を出力するために Amazon ML のアクセス許可を得る](granting-amazon-ml-permissions-to-output-predictions-to-amazon-s3.md)
+ [IAM による Amazon ML リソースへのアクセスの制御](controlling-access-to-amazon-ml-resources-by-using-iam.md)
+ [サービス間での不分別な代理処理の防止](cross-service-confused-deputy-prevention.md)
+ [非同期オペレーションの依存関係管理](dependency-management-of-asynchronous-operations.md)
+ [リクエストステータスの確認](operation-request-status.md)
+ [システムの制限](system-limits.md)
+ [すべてのオブジェクトの名前と ID](names-and-ids-for-all-objects.md)
+ [オブジェクトの存続期間](object-lifetimes.md)

# Amazon S3 からデータを読み込むための Amazon ML アクセス許可の取得
<a name="granting-amazon-ml-permissions-to-read-your-data-from-amazon-s3"></a>

 Amazon S3 で入力データからデータソースオブジェクトを作成するには、入力データが格納されている S3 の場所に対して、Amazon ML に以下のアクセス許可を与える必要があります。
+  S3 バケットおよびプレフィックスの **GetObject** アクセス許可。
+  S3 バケットの **ListBucket** アクセス許可。他のアクションと異なり、**ListBucket** はバケット全体のアクセス許可 (プレフィックスにではなく) が付与されている必要があります。ただし、**Condition** 句を使用してアクセス権限を特定のプレフィックスにスコープできます。

 Amazon ML コンソールを使用してデータソースを作成する場合、これらのアクセス許可をバケットに追加することができます。ウィザードの手順を完了したときにそれらを追加するかどうかを確認するプロンプトが表示されます。次のポリシーの例は、サンプルの場所 s3://*examplebucket*/*exampleprefix* からデータを読み取る Amazon ML のアクセス権限を付与する方法を示しています。**ListBucket** アクセス許可の適用範囲は *exampleprefix* 入力パスにのみ絞り込みます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::examplebucket/exampleprefix/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::examplebucket",
            "Condition": {
                "StringLike": {
                    "s3:prefix": "exampleprefix/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

このポリシーをデータに適用するには、データが保存されている S3 バケットに関連付けられたポリシーステートメントを編集する必要があります。

**S3 バケットのアクセス権限ポリシーを編集するには (古いコンソールを使用)**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. データが置かれているバケット名を選択します。

1. **[プロパティ]** を選択します。

1. [**バケットポリシーの編集**] を選択します。

1. 上記のポリシーを入力し、ニーズに合わせてカスタマイズしてから、[**保存**] を選択します。

1. **[保存]** を選択します。



**S3 バケットのアクセス権限ポリシーを編集するには (新しいコンソールを使用)**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. バケット名、[**アクセス権限**] の順に選択します。

1. [**バケットポリシー**] を選択します。

1. 上記のポリシーを入力し、ニーズに合わせてカスタマイズします。

1. **[保存]** を選択します。

# Amazon S3 に予測を出力するために Amazon ML のアクセス許可を得る
<a name="granting-amazon-ml-permissions-to-output-predictions-to-amazon-s3"></a>

 バッチ予測オペレーションの結果を Amazon S3 に出力するには、バッチ予測生成オペレーションの入力として提供された出力場所に対する以下のアクセス権限を Amazon ML に付与する必要があります。
+  S3 バケットおよびプレフィックスの **GetObject** アクセス許可。
+  S3 バケットおよびプレフィックスの **PutObject** アクセス許可。
+  S3 バケットおよびプレフィックスの **PutObjectAcl** アクセス許可。
  +  オブジェクトが作成された後で既定の [ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) bucket-owner-full-control アクセス許可をユーザーの AWS アカウントに与えるために、Amazon ML にはこれらのアクセス許可が必要です。
+  S3 バケットの **ListBucket** アクセス許可。他のアクションと異なり、**ListBucket** はバケット全体のアクセス許可 (プレフィックスにではなく) が付与されている必要があります。ただし、**条件**句を使用してアクセス権限を特定のプレフィックスにスコープできます。

 Amazon ML コンソールを使用してバッチ予測リクエストを作成する場合、これらのアクセス許可をバケットに追加することができます。ウィザードの手順を完了する時に、それらを追加するかどうかを確認するプロンプトが表示されます。

 以下のポリシーの例は、サンプルの場所 s3://examplebucket/exampleprefix にデータを書き込むアクセス許可を Amazon ML に付与する方法を示しています。**ListBucket** アクセス許可の適用範囲は exampleprefix 入力パスにのみに絞り込まれ、出力プレフィックスの put object ACL のアクセス許可を Amazon ML に付与しています。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::examplebucket/exampleprefix/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": "s3:PutObjectAcl",
            "Resource": "arn:aws:s3:::examplebucket/exampleprefix/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::examplebucket",
            "Condition": {
                "StringLike": {
                    "s3:prefix": "exampleprefix/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

このポリシーをデータに適用するには、データが保存されている S3 バケットに関連付けられたポリシーステートメントを編集する必要があります。

**S3 バケットのアクセス権限ポリシーを編集するには (古いコンソールを使用)**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. データが置かれているバケット名を選択します。

1. **[プロパティ]** を選択します。

1. [**バケットポリシーの編集**] を選択します。

1. 上記のポリシーを入力し、ニーズに合わせてカスタマイズしてから、[**保存**] を選択します。

1. **[保存]** を選択します。



**S3 バケットのアクセス権限ポリシーを編集するには (新しいコンソールを使用)**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. バケット名、[**アクセス権限**] の順に選択します。

1. [**バケットポリシー**] を選択します。

1. 上記のポリシーを入力し、ニーズに合わせてカスタマイズします。

1. **[保存]** を選択します。

# IAM による Amazon ML リソースへのアクセスの制御
<a name="controlling-access-to-amazon-ml-resources-by-using-iam"></a>

AWS Identity and Access Management (IAM) を使用すると、ユーザーの AWS のサービスおよびリソースへのアクセスを安全に制御できます。IAM を使用すると、AWS ユーザー、グループ、およびロールを作成および管理し、アクセス権を使用して AWS リソースへのアクセスを許可および拒否できます。IAM を Amazon Machine Learning (Amazon ML) で使用すると、組織内のユーザーが特定の AWS リソースを使用できるかどうか、および特定の Amazon ML API アクションを使用してタスクを実行できるかどうかを制御できます。

 IAM を使用して、以下を行えます。
+  お客様の AWS アカウントでユーザーとグループを作成する。
+  お客様の AWS アカウントでユーザーごとに固有のセキュリティ認証情報を割り当てる 
+  AWS のリソースを使用してタスクを実行するために各ユーザーのアクセス権限を制御する 
+  お客様の AWS アカウントのリソースを AWS アカウント内のユーザー間で共有する 
+  AWS アカウントにロールを作成し、そのアクセス権限を管理して、それを行えるユーザーまたはサービスを定義する 
+ IAM でロールを作成し、権限を管理することで、そのロールを適用するエンティティまたは AWS のサービスによって実行可能なオペレーションをコントロールする。ロールをどのエンティティに適用するかについても定義できます。



 組織が既に IAM アイデンティティを持っている場合、AWS のリソースを使用してタスクを実行するためのアクセス権限を、それを使用して付与することができます。

IAM の詳細については、[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/) を参照してください。

## IAM ポリシー構文
<a name="policy-syntax"></a>

 IAM ポリシーは、1 つ、または複数のステートメントで構成される JSON ドキュメントです。各ステートメントは次のような構成です。

```
{
    "Statement":[{
        "Effect":"effect",
        "Action":"action",
        "Resource":"arn",
        "Condition":{
            "condition operator":{
                "key":"value"
            }
        }
    }]
}
```

 ポリシーステートメントには以下の要素が含まれます。
+  **Effect:** ステートメントの後半で指定するリソースおよび API アクションを使用するためのアクセス許可を制御します。有効な値は、`Allow` および `Deny` です。デフォルトでは、IAM ユーザーはリソースおよび API アクションを使用するアクセス許可がないため、リクエストはすべて拒否されます。明示的な `Allow` はデフォルトに優先します。明示的な `Deny` は、すべての `Allows` に優先します。
+  **Action**: アクセス許可を付与または拒否する対象となる、特定の API アクションです。
+  **Resource]** (リソース): アクションによって影響を及ぼされるリソースです。ステートメントでリソースを指定するには、Amazon リソースネーム (ARN) を使用します。
+  **Condition (オプション)**: ポリシーが有効になるタイミングを制御します。

 IAM ポリシーの作成および管理を簡素化するために、AWS Policy Generator と IAM Policy Simulator を使用できます。

## Amazon MLAmazon ML の IAM ポリシーアクションの指定
<a name="actions-for-amazon-ml"></a>

 IAM ポリシーステートメントで、IAM をサポートするすべてのサービスの任意の API アクションを指定できます。Amazon ML API アクションのポリシーステートメントを作成する場合、次の例に示すように、API アクションの名前の前に `machinelearning:` を追加します。
+ `machinelearning:CreateDataSourceFromS3`
+ `machinelearning:DescribeDataSources`
+ `machinelearning:DeleteDataSource`
+ `machinelearning:GetDataSource`

 単一のステートメントで複数のアクションを指定するには、アクション間をコンマで区切ります。

```
"Action": ["machinelearning:action1", "machinelearning:action2"]
```

ワイルドカードを使用して複数のアクションを指定することもできます。たとえば、名前が「Get」という単語で始まるすべてのアクションを指定できます。

```
"Action": "machinelearning:Get*"
```

Amazon ML アクションをすべて指定するには、\$1 ワイルドカードを使用します。

```
"Action": "machinelearning:*"
```

 すべての Amazon ML API アクションの一覧については、「[Amazon Machine Learning API リファレンス](https://docs.aws.amazon.com/machine-learning/latest/APIReference/)」を参照してください。

## IAM ポリシーで Amazon ML リソースの ARN を指定する
<a name="amazon-resource-names-arns-for-amazon-ml"></a>

 IAM ポリシーステートメントは 1 つまたは複数のリソースに適用されます。ARN でポリシーのリソースを指定します。

 Amazon ML リソースの ARN を指定するには、次の形式を使用します。

 "Resource": `arn:aws:machinelearning:region:account:resource-type/identifier `

 次の例は、共通 ARN を指定する方法を示しています。

 データソース ID: `my-s3-datasource-id `

```
"Resource":
arn:aws:machinelearning:<region>:<your-account-id>:datasource/my-s3-datasource-id
```

 ML モデル ID: `my-ml-model-id `

```
"Resource":
arn:aws:machinelearning:<region>:<your-account-id>:mlmodel/my-ml-model-id
```

 バッチ予測 ID: `my-batchprediction-id `

```
"Resource":
arn:aws:machinelearning:<region>:<your-account-id>:batchprediction/my-batchprediction-id
```

 評価 ID: `my-evaluation-id `

```
"Resource": arn:aws:machinelearning:<region>:<your-account-id>:evaluation/my-evaluation-id
```

## Amazon ML のポリシーの例
<a name="example-policies-for-amazon-ml"></a>

 **例 1: 機械学習リソースメタデータの読み取りをユーザーに許可する** 

次のポリシーでは、ユーザーまたはグループが、[DescribeDataSources](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeDataSources.html)、[DescribeMLModels](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeMLModels.html)、[DescribeBatchPredictions](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeBatchPredictions.html)、[DescribeEvaluations](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeEvaluations.html)、[GetDataSource](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetDataSource.html)、[GetMLModel](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetMLModel.html)、[GetBatchPrediction](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetBatchPrediction.html)、および [GetEvaluation](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetEvaluation.html) アクションを特定のリソースで実行して、データソースのメタデータ、ML モデル、バッチ予測、および評価を読み取ることを許可します。Describe \$1 オペレーションのアクセス権限を特定のリソースに制限することはできません。

------
#### [ JSON ]

****  

```
{ "Version":"2012-10-17",		 	 	  "Statement": [ { "Effect": "Allow", "Action": [
    "machinelearning:Get*" ], "Resource": [
        "arn:aws:machinelearning:us-east-1:123456789012:datasource/S3-DS-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:datasource/REDSHIFT-DS-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:mlmodel/ML-MODEL-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:batchprediction/BP-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:evaluation/EV-ID1"
    ] }, { "Effect": "Allow", "Action": [ "machinelearning:Describe*" ], "Resource": [ "*" ] } ]
    }
```

------

 **例 2: 機械学習リソースの作成をユーザーに許可する** 

 次のポリシーでは、ユーザーまたはグループが `CreateDataSourceFromS3`、`CreateDataSourceFromRedshift`、`CreateDataSourceFromRDS`、`CreateMLModel`、`CreateBatchPrediction` および`CreateEvaluation` アクションを実行して、機械学習データソース、ML モデル、バッチ予測および評価を作成することを許可します。これらのアクションのアクセス権限を特定のリソースに制限することはできません。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "machinelearning:CreateDataSourceFrom*",
                "machinelearning:CreateMLModel",
                "machinelearning:CreateBatchPrediction",
                "machinelearning:CreateEvaluation"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

 **例 3: リアルタイムエンドポイントの作成と削除、および ML モデルによるリアルタイム予測の実行をユーザーに許可する** 

 次のポリシーでは、ユーザーまたはグループが `CreateRealtimeEndpoint`、`DeleteRealtimeEndpoint` および `Predict` アクションを特定の ML モデルで実行して、リアルタイムエンドポイントの作成や削除、およびリアルタイム予測を実行することを許可します。

------
#### [ JSON ]

****  

```
{ "Version":"2012-10-17",		 	 	  "Statement": [ { "Effect": "Allow", "Action": [
    "machinelearning:CreateRealtimeEndpoint", "machinelearning:DeleteRealtimeEndpoint",
    "machinelearning:Predict" ], "Resource": [
        "arn:aws:machinelearning:us-east-1:123456789012:mlmodel/ML-MODEL"
    ] } ] }
```

------

 **例 4: 特定のリソースの更新と削除をユーザーに許可する** 

 次のポリシーでは、ユーザーまたはグループが `UpdateDataSource`、`UpdateMLModel`、`UpdateBatchPrediction`、`UpdateEvaluation`、`DeleteDataSource`、`DeleteMLModel`、`DeleteBatchPrediction` および `DeleteEvaluation` アクションをアカウントのリソースで実行して、AWS アカウントの特定のリソースの更新や削除を実行することを許可します。

------
#### [ JSON ]

****  

```
{ "Version":"2012-10-17",		 	 	  "Statement": [ { "Effect": "Allow", "Action": [
    "machinelearning:Update*", "machinelearning:DeleteDataSource", "machinelearning:DeleteMLModel",
    "machinelearning:DeleteBatchPrediction", "machinelearning:DeleteEvaluation" ], "Resource": [
        "arn:aws:machinelearning:us-east-1:123456789012:datasource/S3-DS-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:datasource/REDSHIFT-DS-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:mlmodel/ML-MODEL-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:batchprediction/BP-ID1",
        "arn:aws:machinelearning:us-east-1:123456789012:evaluation/EV-ID1"
    ] } ] }
```

------

 **例 5: すべての Amazon ML アクションを許可** 

 次のポリシーでは、任意の Amazon ML アクションの使用をユーザーまたはグループに許可します。このポリシーはすべての機械学習リソースへのフルアクセスを許可するため、管理者にのみ適用します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "machinelearning:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

# サービス間での不分別な代理処理の防止
<a name="cross-service-confused-deputy-prevention"></a>

混乱した代理問題は、アクションを実行するためのアクセス許可を持たないエンティティが、より特権のあるエンティティにアクションの実行を強制できてしまう場合に生じる、セキュリティ上の問題です。では AWS、サービス間のなりすましにより、混乱した代理問題が発生する可能性があります。サービス間でのなりすましは、1 つのサービス (*呼び出し元サービス*) が、別のサービス (*呼び出し対象サービス*) を呼び出すときに発生する可能性があります。呼び出し元サービスは、本来ならアクセスすることが許可されるべきではない方法でその許可を使用して、別のお客様のリソースに対する処理を実行するように操作される場合があります。これを防ぐため、 AWS では、アカウントのリソースへのアクセス権が付与されたサービスプリンシパルで、すべてのサービスのデータを保護するために役立つツールを提供しています。

リソースポリシー内では [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) および [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) グローバル条件コンテキストキーを使用して、Amazon Machine Learning が別のサービスに付与する、リソースへのアクセス許可を制限することをお勧めします。`aws:SourceArn` の値に Amazon S3 バケット ARN などのアカウント ID が含まれていない場合は、両方のグローバル条件コンテキストキーを使用して、アクセス許可を制限する必要があります。同じポリシーステートメントでこれらのグローバル条件コンテキストキーの両方を使用し、アカウント ID に`aws:SourceArn` の値が含まれていない場合、`aws:SourceAccount` 値と `aws:SourceArn` 値の中のアカウントには、同じアカウント ID を使用する必要があります。クロスサービスのアクセスにリソースを 1 つだけ関連付けたい場合は、`aws:SourceArn` を使用します。そのアカウント内のリソースをクロスサービスの使用に関連付けることを許可する場合は、`aws:SourceAccount` を使用します。

混乱した代理問題から保護するための最も効果的な方法は、リソースの完全な ARN を指定して `aws:SourceArn` グローバル条件コンテキストキーを使用することです。リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合は、`aws:SourceArn` グローバルコンテキスト条件キーを使用して、ARN の未知部分をワイルドカード (`*`) で表します。例えば、`arn:aws:servicename:*:123456789012:*` です。

次の例は、Amazon ML で `aws:SourceArn` および `aws:SourceAccount` グローバル条件コンテキストキーを使用して、Amazon S3 バケットからデータを読み取る際に混乱した代理問題を防ぐ方法を示しています。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::examplebucket/exampleprefix/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "machinelearning.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::examplebucket",
            "Condition": {
                "StringLike": {
                    "s3:prefix": "exampleprefix/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:machinelearning:us-east-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

# 非同期オペレーションの依存関係管理
<a name="dependency-management-of-asynchronous-operations"></a>

 Amazon ML のバッチオペレーションは、正常に完了するために他の処理に依存しています。これらの依存関係を管理するために、Amazon ML は依存性のあるリクエストを識別し、操作が完了したことを確認します。操作が完了していない場合、Amazon ML は、依存する操作が完了するまで、最初のリクエストを保存します。

 バッチオペレーション間にはいくつかの依存関係があります。たとえば、ML モデルを作成する前に、ML モデルをトレーニングできるデータソースを作成しておく必要があります。Amazon ML は、利用可能なデータソースがない場合、ML モデルをトレーニングすることはできません。

 ただし、Amazon ML は非同期操作の依存関係管理をサポートしています。たとえば、データモデル上で ML モデルをトレーニングするリクエストを送信する前に、データ統計が計算されるまで待つ必要はありません。代わりに、データソースが作成されるとすぐに、データソースを使用して ML モデルをトレーニングするリクエストを送信できます。Amazon ML は、データソース統計が計算されるまで、実際にトレーニング操作を開始しません。createMLModel リクエストは、統計が計算されるまでキューに入れられます。それが完了すると、Amazon ML は直ちに createMLModel 操作の実行を試みます。同様に、トレーニングを終了していない ML モデルのバッチ予測と評価リクエストを送信できます。

 次の表は、異なる AmazonML のアクションを進めるための要件を示しています。


|  **以下をするために**  |  **必要なもの**  | 
| --- | --- | 
|  ML モデルを作成する (createMLModel)  |  計算されたデータ統計を持つデータソース  | 
|  バッチ予測を作成する (createBatchPrediction)  |   データソース   ML モデル   | 
|  バッチ評価を作成する (createBatchEvaluation)  |   データソース   ML モデル   | 

# リクエストステータスの確認
<a name="operation-request-status"></a>

リクエストを送信する場合、Amazon Machine Learning (Amazon ML) API を使用してステータスを確認できます。例えば、`createMLModel` リクエストを送信する場合、`describeMLModel` 呼び出しを使用してステータスを確認できます。Amazon ML は、次のいずれかのステータスで応答します。


|  **ステータス**  |  **定義**  | 
| --- | --- | 
|  保留中  |   Amazon ML は、リクエストを検証しています。  OR   Amazon ML は、リクエストを実行する前に演算リソースが利用可能になるのを待っています。これは、アカウントで同時に実行するバッチ操作リクエストの最大数を超えた場合に発生する可能性があります。この場合、他の実行中のリクエストが完了するかキャンセルされたときに、ステータスが **InProgress** に移行します。  OR   Amazon ML はリクエストを完了するために必要なバッチ操作を待機しています。  | 
|  進行中  |  リクエストがまだ実行中です。 | 
|  COMPLETED  |  リクエストは完了し、オブジェクトの使用準備 (ML モデルとデータソース) または表示準備 (バッチ予測と評価) が整いました。 | 
|  FAILED  |  提供されたデータに何か問題があるか、または、オペレーションがキャンセルされました。たとえば、完了に失敗したデータソースのデータ統計を計算しようとすると、無効または失敗というステータスメッセージが表示されることがあります。エラーメッセージは、操作が正常に完了しなかった理由を説明します。 | 
|  DELETED  |  オブジェクトは削除済みです。 | 

Amazon ML は、Amazon ML がオブジェクトの作成を完了したときなど、オブジェクトに関する情報も提供します。詳細については、「[オブジェクトのリスト作成](listing-objects.md)」を参照してください。

# システムの制限
<a name="system-limits"></a>

 堅牢で信頼性の高いサービスを提供するために、Amazon ML はシステムに対するリクエストに一定の制限を課しています。ほとんどの ML の問題は、これらの制約内に簡単に収まります。ただし、Amazon ML の使用がこれらの制限によって制約を受けることが判明した場合は、[AWS カスタマーサービス](https://aws.amazon.com/contact-us/)に連絡して、制限を上げるようリクエストできます。たとえば、同時に実行できるジョブの数が 5 つに制限されているとします。この制限のために、ジョブがリソース待ちで頻繁にキューにあること分かった場合は、アカウントでこの上限を引き上げるのが適切かもしれません。

 次の表は、Amazon ML におけるデフォルトのアカウントごとの制限を示しています。これらの制限のすべてが AWS カスタマーサービスによって引き上げられるわけではありません。


| [**制限のタイプ**] | [**システム制限**] | 
| --- | --- | 
| 各観測値のサイズ | 100 KB | 
| トレーニングデータのサイズ \$1 | 100 GB | 
| バッチ予測入力のサイズ | 1 TB | 
| バッチ予測入力のサイズ (レコード数) | 1 億件 | 
| データファイル (スキーマ) 内の変数数 | 1,000 | 
| レシピの複雑さ (処理された出力変数数) | 10,000 | 
| 各リアルタイムの予測エンドポイントの TPS | 200 | 
| すべてのリアルタイムの予測エンドポイントについての合計 TPS | 10,000 | 
| すべてのリアルタイムの予測エンドポイントについての合計 RAM | 10 GB | 
| 同時に実行されるジョブの数 | 25 | 
| 任意のジョブの最長の実行時間 | 7 日間 | 
| 複数クラスの ML モデルのクラス数 | 100 | 
| ML モデルサイズ | 最小 1 MB、最大 2 GB | 
| オブジェクトあたりのタグの数 | 50 | 
+  データファイルのサイズは、ジョブが迅速に終了するように制限されています。7 日間以上実行中であったジョブが自動的に終了すると、ステータスは "失敗" になります。

# すべてのオブジェクトの名前と ID
<a name="names-and-ids-for-all-objects"></a>

 Amazon ML のすべてのオブジェクトは識別子または ID を持っている必要があります。Amazon ML コンソールの場合は ID 値が生成されますが、API を使用する場合は独自の ID 値を生成する必要があります。各 ID は、AWS アカウントの同じタイプのすべての Amazon ML オブジェクトで一意である必要があります。つまり、同じ ID で 2 つの評価を持つことはできません。同じ ID を使用して評価とデータソースを持つことは可能ですが、推奨されません。

 オブジェクトには、ランダムに生成された識別子とタイプを識別する短い文字列のプレフィックスを使用することをお勧めします。たとえば、Amazon ML コンソールがデータソースを生成する場合、「ds-zScWIuWiOxF」のようなランダムで一意の ID をデータソースに割り当てます。この ID は 1 人のユーザーに関して衝突回避のために十分にランダムで、かつコンパクトで読みやすいものです。利便性とわかりやすさのために「ds-」というプレフィックスを付けていますが、必須ではありません。ID 文字列に何を使用したらよいか明確でない場合は、16 進数 UUID 値 (28b1e915-57e5-4e6c-a7bd-6fb4e729cb23 など) を使用することをお勧めします。これはどのような最新のプログラミング環境でも使用可能です。

 ID 文字列には ASCII 文字、数字、ハイフン、アンダースコアを含めることができ、最大 64 文字までです。メタデータを ID 文字列にエンコードすることが可能で、これはおそらく便利な方法に見えます。しかし、オブジェクトが作成された後はその ID が変更できないため、この方法は推奨されません。

 オブジェクト名は、ユーザーフレンドリなメタデータを各オブジェクトに関連付ける簡単な方法です。オブジェクトを作成した後、その名前を更新できます。これにより、オブジェクト名に ML ワークフローの一部を反映させることができます。たとえば、最初は ML モデル名を「実験 \$13」とし、後でモデル名を「最終本番モデル」と変更できます。名前は、最大 1,024 文字までの任意の文字列です。

# オブジェクトの存続期間
<a name="object-lifetimes"></a>

 Amazon ML で作成するデータソース、ML モデル、評価、またはバッチ予測オブジェクトは、作成後少なくとも 2 年間は使用可能になります。Amazon ML は、2 年以上アクセスまたは使用されていないオブジェクトを自動的に削除することがあります。