

더 이상 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 Realtional 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) 작업을 사용하여 RDS 데이터 소스를 생성하는 IAM 사용자 또는 역할에 `iam:PassRole` 권한이 있는지 확인해야 합니다. 자세한 내용은 [Amazon ML 리소스에 대한 액세스 제어 - IAM 사용](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 쿼리
](#mysql-sql-query)
+ [

## S3 출력 위치
](#s3-output-location-1)

## RDS 데이터베이스 인스턴스 식별자
<a name="rds-database-instance-identifier"></a>

RDS DB 인스턴스 식별자는 Amazon ML이 Amazon RDS와 상호작용할 때 사용해야 하는 데이터베이스 인스턴스를 식별하기 위해 사용자가 제공하는 고유한 이름입니다. 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**를 신뢰할 수 있는 서비스로 등록하는 것입니다. 템플릿에 대한 자세한 내용은 *데이터 파이프라인 개발자 안내서*의 [IAM 역할 설정](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) 단원을 참조하세요.

역할을 직접 생성하는 경우 다음과 같은 내용이 포함되어야 합니다.

------
#### [ 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`를 신뢰할 수 있는 서비스로 등록하는 것입니다. 템플릿에 대한 자세한 내용은 *데이터 파이프라인 개발자 안내서*의 [IAM 역할 설정](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html) 단원을 참조하세요.

## Amazon RDS 보안 정보
<a name="amazon-rds-security-information"></a>

안전한 RDS 액세스를 가능하게 하려면 `VPC Subnet ID` 및 `RDS Security Group IDs`를 제공해야 합니다. 또한 `Subnet ID` 파라미터가 가리키는 VPC 서브넷에 대해 적절한 수신 규칙을 설정하고 이러한 권한이 있는 보안 그룹의 ID를 제공해야 합니다.

## MySQL 쿼리
<a name="mysql-sql-query"></a>

 `MySQL SQL Query` 파라미터는 MySQL 데이터베이스에서 실행하려는 SQL SELECT 쿼리를 지정합니다. 쿼리 결과는 지정한 S3 출력 위치(버킷)로 복사됩니다.

**참고**  
 기계 학습 기술은 입력 레코드가 임의 순서(셔플링됨)로 표시될 때 가장 잘 작동합니다. `rand()` 함수를 사용하면 MySQL 쿼리 결과를 쉽게 셔플링할 수 있습니다. 예를 들어 원본 쿼리가 다음과 같다고 가정해 보겠습니다.  
 "SELECT col1, col2, … FROM training\$1table"  
 다음과 같이 쿼리를 업데이트하면 임의 셔플링을 추가할 수 있습니다.  
 "SELECT col1, col2, … FROM training\$1table ORDER BY rand()"

## S3 출력 위치
<a name="s3-output-location-1"></a>

`S3 Output Location` 파라미터는 MySQL 쿼리 결과가 출력되는 “스테이징” S3 위치의 이름을 지정합니다.

**참고**  
 Amazon RDS에서 데이터를 내보낸 후에는 Amazon ML에 이 위치에서 데이터를 읽을 권한이 있는지 확인해야 합니다. 이러한 권한을 설정하는 방법에 대한 자세한 내용은 “Amazon S3에서 데이터를 읽을 수 있도록 Amazon ML에 권한 부여” 단원을 참조하세요.