概要
AWS Glueを試してみた際の備忘録です
手順は、以下の通り
1. AWSアカウントを作成する
2. IAM ロールを設定する
3. AWSアクセスキーを作成する
4. S3バケットを作成する
5. ETLジョブを作成する
★2024/02/11 時点の情報です
1. AWSアカウントを作成する
2. IAM ロールを設定する
作成手順
1. AWS Management Console にサインインして、IAM コンソールを開く
2. 左ペインの「ロール」を選択する
3. 「ロールを作成」を選択する
4. 信頼されたエンティティタイプ「AWSのサービス」、ユースケース「Glue」を選択して「次へ」
5. 許可ポリシーで「AWSGlueServiceRole」「AmazonS3FullAccess」をチェックして「次へ」
6. ロール名を入力して「ロールを作成」を押下する
7. 完成
3. AWSアクセスキーを作成する
作成手順
1. AWS Management Console にサインインして、IAM コンソールを開く
2. 左ペインの「ユーザー」を選択する
3. 「ユーザーの作成」を押下する
4. ユーザー名を入力して「次へ」
5. 「ポリシーを直接アタッチする」を選択し、許可ポリシーで「AWSGlueServiceRole」「AmazonS3FullAccess」をチェックして「次へ」
6. 「ユーザーの作成」を押下する
7. 作成したユーザを選択して「アクセスキーを作成」を押下する
8. ユースケースを選択し、「上記のレコメンデーションを理解し、アクセスキーを作成します。」をチェックして「次へ」
9. 必要ならタグを入力し、「アクセスキーを作成」を押下する
10. csvファイルをダウンロードして「完了」を押下する
4. S3 バケットを作成する
準備
テストデータを作成する
id,name,birthday
1,佐藤 太郎,1987/03/14
2,鈴木 次郎,1990/01/05
3,高橋 三郎,1997/10/03
4,田中 四郎,2000/05/08
5,伊藤 五郎,1979/06/30
作成手順
1. AWS Management Console にサインインして、Amazon S3 コンソールを開く
2. 「バケットを作成」を押下する
3. AWS リージョンを選択し、バケット名を入力、その他はデフォルトのままにして「バケットを作成」を押下する
4. もうひとつバケットを作成しておく
5. ひとつめのバケットにテストデータcsvをアップロードしておく
「アップロード」を押下する

![]()
「ファイルを追加」を押下する

![]()
ファイル選択ダイアログでファイルを選択する

![]()
「アップロード」を押下する
5. ETLジョブを作成する
作成手順
1. AWS Management Console にサインインして、AWS Glue コンソールを開く
2. 左ペインの「ETL jobs」を選択する
3. 「Script editor」を押下する
今回は「Visual ETL」ではなく、「Script editor」で作成します❕
4. 「Python shell」「Start fresh」を選択して「Create script」を押下する
5. S3のcsvを取得して、別のS3にアップロードするPythonコードを実装する
from io import StringIO
import boto3
import pandas as pd
IAM_ACCESS_KEY = "「3. AWSアクセスキーを作成する」で取得したアクセスキー"
IAM_SECRET_KEY = "「3. AWSアクセスキーを作成する」で取得したシークレットキー"
print("start")
# s3インスタンス
s3 = boto3.client("s3",
aws_access_key_id = IAM_ACCESS_KEY,
aws_secret_access_key = IAM_SECRET_KEY)
# csv読み込み
csv = s3.get_object(Bucket="gorogoromogumogu-bucket-1", Key="testdata.csv")
csv_body = csv["Body"].read().decode("utf-8")
df = pd.read_csv(StringIO(csv_body))
print("read_csv OK")
# s3にアップロード
upload_buf = StringIO()
upload_csv = df.to_csv(upload_buf, header=True, index=False)
print("to_csv OK")
s3.put_object(Bucket = "gorogoromogumogu-bucket-2", Body=upload_buf.getvalue(), Key="upload.csv")
print("end")
バケット名が「S3 バケットを作成する」から変わってますが、
gorogoromogumogu-bucket-1 → gorogoromogumogu-bucket-a
gorogoromogumogu-bucket-2 → gorogoromogumogu-bucket-b
と読み替えてください。
6. job名を入力し、IAM Rollを選択して「Save」を押下する
7. 「Run」を押下し、「Runs」タブを開と、ジョブの結果が表示される
補足. printで出力したログの確認手順
「Runs」タブの下にある「Run details」タブを開き、「Output logs」を選択する
8. アップロード先のS3バケットを確認する
参考URL
アクセスキーの管理 (コンソール)
AWS Glue の IAM アクセス許可の設定
ステップ 1: 最初の S3 バケットを作成する
AWS Glue Studio でビジュアル ETL ジョブを作成する



























