

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

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

# Amazon RDS データベースのデータを使用して Amazon ML データソースを作成する
<a name="using-amazon-rds-with-amazon-ml"></a>

Amazon ML では、Amazon Relational Database Service (Amazon RDS) の MySQL データベースに格納されたデータからデータソースオブジェクトを作成できます。このアクションを実行すると、Amazon ML は指定した SQL クエリを実行する AWS Data Pipeline オブジェクトを作成し、その出力を任意の S3 バケットに配置します。Amazon ML はそのデータを使ってデータソースを作成します。

**注記**  
 Amazon ML は、VPC 内の MySQL データベースのみをサポートします。

Amazon ML が入力データを読み取れるようにするには、そのデータを Amazon Simple Storage Service (Amazon S3) にエクスポートしておく必要があります。API を使用して Amazon ML がエクスポートを実行するように設定することができます。(RDS は API に限定されており、コンソールからは利用できません)。

 Amazon ML が Amazon RDS で MySQL データベースに接続し、ユーザーに代わってデータを読み込むためには、以下を提供する必要があります。
+ RDS DB インスタンス識別子 
+ MySQL データベース名 
+ データパイプラインの作成、アクティブ化、実行に使用される AWS Identity and Access Management (IAM) ロール 
+  データベースユーザー認証情報
  +  ユーザー名 
  +  [パスワード] 
+  AWS Data Pipeline セキュリティ情報
  +  IAM リソースロール 
  +  IAM サービスロール 
+ Amazon RDS セキュリティ情報
  +  サブネット ID 
  +  セキュリティグループ ID 
+  データソースの作成に使用するデータを指定する SQL クエリ 
+  クエリの結果を格納するために使用される S3 出力の場所 (バケット) 
+  (オプション) データスキーマファイルの場所 

さらに、[CreateDataSourceFromRDS](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateDataSourceFromRDS.html) オペレーションを使用して Amazon RDS データソースを作成する IAM ユーザーまたはロールが `iam:PassRole` 権限を持っていることを確認する必要があります。詳細については、「[IAM による Amazon ML リソースへのアクセスの制御](controlling-access-to-amazon-ml-resources-by-using-iam.md)」を参照してください。

**Topics**
+ [RDS データベースインスタンス識別子](#rds-database-instance-identifier)
+ [MySQL データベース名](#mysql-database-name)
+ [データベースユーザー認証情報](#database-user-credentials)
+ [AWS Data Pipeline セキュリティ情報](#aws-data-pipeline-security-information)
+ [Amazon RDS セキュリティ情報](#amazon-rds-security-information)
+ [MySQL SQL クエリ](#mysql-sql-query)
+ [S3 出力の場所](#s3-output-location-1)

## RDS データベースインスタンス識別子
<a name="rds-database-instance-identifier"></a>

RDS DB インスタンス識別子は、Amazon RDS を操作するときに Amazon ML が使用するデータベースインスタンスを識別する固有の名前です。RDS DB インスタンス識別子は、Amazon RDS コンソールで確認できます。

## MySQL データベース名
<a name="mysql-database-name"></a>

MySQL データベース名は、RDS DB インスタンス内の MySQL データベースの名前を指定します。

## データベースユーザー認証情報
<a name="database-user-credentials"></a>

RDS DB インスタンスに接続するには、提供する SQL クエリを実行するのに十分な権限を持つデータベースユーザーのユーザー名とパスワードを指定する必要があります。

## AWS Data Pipeline セキュリティ情報
<a name="aws-data-pipeline-security-information"></a>

AWS Data Pipeline の安全なアクセスを有効にするには、IAM リソースロールと IAM サービスロールの名前を指定する必要があります。

EC2 インスタンスは、Amazon RDS から Amazon S3 にデータをコピーするリソースロールを引き受けます。このリソースロールを作成する最も簡単な方法は、`DataPipelineDefaultResourceRole` テンプレートを使用して、**machinelearning.aws.com** を信頼できるサービスとして一覧表示することです。テンプレートの設定の詳細については、「[AWS Data Pipeline 開発者ガイド](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html)」の「*IAM ロールの設定*」を参照してください。

独自のロールを作成する場合は、そのロールには次の内容が必要です。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "Service": "machinelearning.amazonaws.com"
        },
        "Action": "sts:AssumeRole",
        "Condition": {
            "StringEquals": { "aws:SourceAccount": "{{123456789012}}" },
            "ArnLike": { "aws:SourceArn": "arn:aws:machinelearning:us-east-1:{{123456789012}}:datasource/*" }
        }
    }]
}
```

------

AWS Data Pipeline は、サービスロールを引き受けて、Amazon RDS から Amazon S3 へのデータのコピーの進行をモニタリングします。このリソースロールを作成する最も簡単な方法は、`DataPipelineDefaultRole` テンプレートを使用して、`machinelearning.aws.com` を信頼できるサービスとして一覧表示することです。テンプレートの設定の詳細については、「[AWS Data Pipeline 開発者ガイド](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html)」の「*IAM ロールの設定*」を参照してください。

## Amazon RDS セキュリティ情報
<a name="amazon-rds-security-information"></a>

安全な Amazon RDS アクセスを有効にするには、`VPC Subnet ID` と `RDS Security Group IDs` を指定する必要があります。また、`Subnet ID` パラメータが指す VPC サブネットに適切な入力規則を設定し、このアクセス許可を持つセキュリティグループの ID を指定する必要があります。

## MySQL SQL クエリ
<a name="mysql-sql-query"></a>

 `MySQL SQL Query` パラメータは、MySQL データベースで実行する SQL SELECT クエリを指定します。クエリの結果は、指定した S3 出力の場所 (バケット) にコピーされます。

**注記**  
 機械学習テクノロジーは、入力レコードがランダムな順序 (シャッフル) で表示されるときに最も効果的です。`rand()` 関数を使用すると、MySQL SQL クエリの結果を簡単にシャッフルできます。たとえば、これが元のクエリであるとします。  
 "SELECT col1, col2, … FROM training\_table"  
 次のようにクエリを更新することでランダムなシャッフルを追加できます。  
 "SELECT col1, col2, … FROM training\_table ORDER BY rand()"

## S3 出力の場所
<a name="s3-output-location-1"></a>

`S3 Output Location` パラメータは、MySQL SQL クエリの結果が出力されるステージングする Amazon S3 の場所の名前を指定します。

**注記**  
 Amazon RDS からデータをエクスポートした後、Amazon ML にこの場所のデータを読み取る権限があることを確認する必要があります。これらのアクセス権限の設定の詳細については、Amazon S3 からデータを読み込むための Amazon ML 権限の付与を参照してください。