前回は『 AWS Lambda編~VPCにあるRDSへ接続を試してみる~ 』と題して、VPCにあるRDSへ接続を試してみました。
今回は『Amazon Machine Learning編~別アカウントS3でDatasourcesを試してみる~』と題して、Amazon Machine Learningで別アカウントS3をDatasuorcesにして試してみたいと思います。
Datasources
Amazon Machine Learningでは次の3 つのデータストアからデータを読み込むことができます。
・Amazon S3 の単一または複数のファイル
・Amazon Redshift のクエリ結果
・MySQL エンジンで稼働しているデータベースに対して実行されたときの、Amazon Relational Database Service (RDS) のクエリ結果
今回は別AWSアカウントのS3からデータを読み込んでみたいと思います。
1.S3の準備
最初に別アカウントのS3にAmazon Machine Learningのアカウントからアクセス出来るようにバケットポリシーを変更します。
1{2 "Version": "2012-10-17",3 "Statement": [4 {5 "Sid": "S3Action",6 "Effect": "Allow",7 "Principal": {8 "Service": "machinelearning.amazonaws.com"9 },10 "Action": [11 "s3:GetObject",12 "s3:ListBucket"13 ],14 "Resource": [15 "arn:aws:s3::: バケット名/*",16 "arn:aws:s3::: バケット名"17 ]18 },19 {20 "Sid": "S3Action",21 "Effect": "Allow",22 "Principal": {23 "AWS": "arn:aws:iam:: アカウントID:root"24 },25 "Action": [26 "s3:GetObject",27 "s3:ListBucket"28 ],29 "Resource": [30 "arn:aws:s3::: バケット名/*",31 "arn:aws:s3::: バケット名"32 ]33 }34 ]35}2.Datasourceの作成
続いてDatasourceを作成していきます。
Amazon Machine Learningのメニューから「Create a new datasource」をクリックします。
次にサンプルのCSVデータをダウンロードして別アカウントのS3にアップしておきます。
今回は上記のサンプルを利用します。
データの場所と名前を設定していきます。
設定後に「Verify」をクリックします。
成功すると次のような画面が表示されます。
正しくSchemaとして表示されているのがわかります。