AWS Startup ブログ

【週刊 Ask An Expert #08】AWS Glue の Python shell ジョブはいつ Python 3 に対応する? AWS Loft Tokyo で受けた質問まとめ #AWSLoft

こんにちは、ソリューションアーキテクトの針原 (Twitter: @_hariby) です。

関東甲信地方は梅雨入りしましたが、いかがお過ごしでしょうか。タイトルにある AWS Glue の Python shell ジョブは、ちょうど先週 Python 3.6 に対応しました。そんなやり取りがある週刊 Ask An Expert 第8回目をお届けしたいと思います。「参考になった!」「いい内容だ!」と思っていただけたら、ぜひハッシュタグ #AWSLoft を付けてシェアしてください。もちろん、改善点・ご要望もお待ちしております。
なお今週は AWS Summit Tokyo のため、Ask an Expert は 6/12-14 の終日クローズとなります。かわりに、AWS Summit Tokyo 会場では Ask The Technology Experts というコーナーがあるので期間中にご質問をお持ちの際にはそちらにお越し下さい。

Ask An Expert ?

さて、皆さん AWS Loft Tokyo はご存知でしょうか?
目黒セントラルスクエア17Fにある、AWS を利用中のスタートアップとデベロッパーのためのコワーキングおよびイベントスペースです。その中に、AWS のエキスパート – Solutions Architect や Cloud Support Engineer といった中の人に技術的な質問ができる、Ask An Expert カウンターがあります。そこでは毎月、来場者の方から100件以上にものぼるご相談をお受けしています。

ある日の Ask An Expert (Cloud Support Engineer 榎本)

この連載では、我々 AWS のエンジニアが Ask An Expert でどのような質問を受け、どんな感じで対応しているのか、 *非常にざっくりと* ご紹介していく「週刊 Ask An Expert」をお届けしていきます。他の AWS Loft 利用者がどんな質問をしているのか、自分が知らなかった新しいトピックはないか、Ask An Expert ってどんなところなのか、一緒に見ていきましょう!
※ 似たご質問をまとめたり、ざっくりまとめにくいご質問を省いたりしているため、実際のご質問件数・内容とは異なる部分があります。


週刊 Ask An Expert #8 (2019/06/03 – 06/07)

この週の対応者は SA:桶谷、塚越、内田、CSE:榎本、古野、福島、嶋本 でした。

Q: Amazon Lightsail 上に WordPress を構築したが、テーマのアップロードでエラーが出る。

ssh で対象のサーバーに入ってエラーログを見るなど、WordPress としてのトラブルシューティングを試してみて下さい。

Q: Amazon EC2 上で PHP が動きません。

EC2 でやる場合はこちらにチュートリアルがあります [docs]。

Q: Amazon EC2 インスタンスに ssh できません。

トラブルシューティングはこちらをご覧ください [docs]。一緒にお調べしたところ、今回はセキュリティグループに、お使いの IP アドレスからのインバウンドトラフィックが許可されていませんでした。

Q: Amazon Virtual Private Cloud (Amazon VPC) は自分で作る必要がありますか?

デフォルトで1個作られます。それ以上作るかはネットワーク・セキュリティ要件によります。個人利用で特段の理由がなければデフォルト VPC をお使い頂けばいいのではないでしょうか。

Q: 会議室の予約管理システムを作っています。Amazon DynamoDB に書き込まれたデータを REST APIで連携可能な 3rd パーティーサービスに連携させたいが、そこでは月イチで数時間のメンテナンスが起きたりします。Amazon Simple Queue Service (SQS) も連携させようと思っています。レコードの設計について教えて下さい。

トリガー (Amazon DynamoDB ストリーム内のイベントに自動的に応答する AWS Lambda 関数) [docs] で 3rd パーティーサービスに書いて無理なら Amazon SQS に書く、または一旦 Amazon SQS に書く、のいずれでも良さそうです。途中のレコードでエラーが出たときのケアが必要となるでしょう。レコードは、会議室の ID を Partition Key、時間を Sort Key、2つで Primary Key として一意性を保証し、重複したらエラーにするような仕組みをトランザクションで実現するのはいかがでしょう。

Q: Amazon Lightsail 上の WordPress からメールを送る、お問い合わせフォームを作りたいです。

メールサーバーがないのなら Amazon Simple Email Service (Amazon SES) を使うと良さそうです。WordPress 連携の記事などもあります。ヒアリングしていくと既存構成でメール送信はできている、とのことだったのでそれを SMTP に設定すればいいのでは、ということで試していただくことになりました。

Q: Amazon RDS for MySQL → AWS Database Migration Service (DMS) → Amazon Aurora → Embulk → Amazon S3, Amazon RDS for MySQL → AWS DMS → Amazon Kinesis Data Streams → AWS Lambda → Amazon S3 という連携を考えています。 Aurora だとパフォーマンスは出るか、Kinesis のシャードはどれぐらいが良いかアドバイスを下さい。

RDB に関してはそれぞれエンジンを検証してもらうのが良いと思います。Amazon RDS for MySQL から Amazon Aurora の連携は ReadReplica Cluster 使ったほうが良いです [docs]。Amazon Kinesis と AWS Lambda を連携させる際は IteratorAge が増えすぎないように注意して下さい [docs]。シャードの計算方法はドキュメントをご覧ください [docs]。

Q: 同じ実装で AWS Lambda 関数を複数上げ、呼び出す Handler を変えることで別の挙動をする関数を実現しているが、AWS Lambda レイヤー を使うなどしたほうが良いでしょうか?その場合、AWS CodeBuild でのテストはどうすればよいですか?

あまり見ない使い方です。新規にプロジェクトに参画される人などに Lambda 関数の構造が分かりにくく、想定しない使われ方をされるなどの懸念が考えられます。AWS Lambda レイヤーを使ったほうが良さそうです。ビルド時は、AWS Lambda レイヤー部分のソースコードを別途ダウンロードして読み込むという対応が必要になります。

Q: ソーシャルゲームの API サーバとして、Amazon Elastic Container Service (Amazon ECS) で Amazon EC2 と AWS Fargate を比較検討しています。
1. AWS Fargate は便利そうですが、制限とかありますか?
2. ブルー/グリーンデプロイ時には、一時的にリソースが 2 倍になりますか?
3. ECS(EC2 タイプ)だとクラスタのスケールイン時にドレイニングするなどの考慮が必要だが [blog]、これをマネージドで対応できるような新機能はないですか?

1. はい。例えば、EC2 同様、同時実行数の制限があるため、必要に応じて上限緩和申請をお願いします [docs]。あとは使用できる CPU 数とメモリ数に上限があり、これ以上のスペックが必要な場合は AWS Fargate はお使い頂けません。詳細はドキュメントを御覧ください。
2. はい。旧環境の desiredCount [docs] を減らしたり、ローリングアップデート [docs] にすると、必要なリソースを減らせます。
3. 今のところないです。よりマネージドなものをお求めであれば、 Fargate をお勧めします。

Q: EC2 タイプで起動している ECS 上に構築した Web アプリのレイテンシが高く、ブラウザからアクセスすると 300 ms ぐらいかかります。。EC2 に Docker を入れて同じサービスを動かしたら、100ms 以下でした。

状況をヒアリングさせて頂きました。インスタンスタイプが違った (ECS の方が高性能なものをお使い)。ALB は共通。クライアントは AWS 外からのアクセス。サブネットまたぎのオーバーヘッドも考えたが、そこまで違いは出なさそうです。インスタンスタイプを揃えた上で、サポートケースを起票するようお願いしました。

Q: AWS サーバーレスアプリケーションモデル (AWS SAM) で API キーを定義する方法を教えて下さい。

AWS::ApiGateway::ApiKey です [docs]。API のメソッドでも API キーを必須にする設定が必要です。

Q: AWS AppSync のサブスクリプションで条件を指定したいです。

サブスクリプション引数を渡すことができます [docs]。

Q: S3 に動画を置いたら、AWS Lambda を起動して AWS Elemental MediaConvert を呼びたいが、Lambda が動かない。

CloudWatch Logs を見たところ、Python の SyntaxError でした。CloudWatch Logs を確認しつつデバッグしていただくように案内しました。

Q: AWS 認定資格 (SA アソシエイト) の模擬試験のわからないところを質問させて下さい。

ネットワーク ACL [docs] とセキュリティグループ [docs]、Amazon ECS IAM ロール [docs]、AWS Key Management Service (KMS) [FAQ]、Amazon EBS ボリュームの種類 [docs]、Amazon EC2 Dedicated Host [FAQ]、Amazon EMR [FAQ]、Amazon Kinesis などについてご説明しました。

Q: AWS Glue の Python shell ジョブは Python 2.7 しかサポートされていないと思います。いつになったら Python 3 に対応するのでしょうか?

ちょうどこの週 Python 3.6 に対応しました!! [post]

Q: Amazon RDS スケールアップの際のダウンタイムについて教えて下さい。

Multi-AZ 環境であれば、スタンバイデータベースが最初にアップグレードされた後で、新しくサイズの変更されたデータベースでフェイルオーバーが発生するため、スケールアップする場合のダウンタイムは最小限に抑えられます [blog]。

Q: SES の送信ログが AWS CloudTrail に残らないのですが。

Amazon SES は、管理イベントだけを CloudTrail に配信するため、以下のイベントは CloudTrail に記録されません [docs]。

SendEmail
SendRawEmail
SendTemplatedEmail
SendBulkTemplatedEmail
SendCustomVerificationEmail

Q: Amazon EC2 上にウェブページ (WordPress) を作りたい。お名前.com でドメインをとって、Amazon Route 53 を設定してみたがうまくいかない

設定されている A レコードの名前解決が出来ない状況だったので、一度お名前.com との連携 (NSレコードの設定など) を依頼しました。

Q: (続き) AWS でホームページを作るような場合どのような方法がありますか?

静的サイトであれば S3 でも可能です。ただし、WordPress のような動的サイトの場合、Amazon EC2 / Amazon Lightsail などが必要です。

Q: モバイルアプリの作成を考えています。ログイン機能などはなく、ユーザーごとのログ情報を取りたいのでフェデレーテッドアイデンティティの認証されていないユーザーは使えますか?

要件次第ですが、仮に1ユーザーが複数端末でアプリを操作する場合に1ユーザーとして扱いたいのであれば何らかの認証が必要になるため、ゲストアクセスだけでは実現できないと思われます。また、フェデレーテッドアイデンティティが未認証ユーザーに発行する Identity ID は変更されうるものなので、それが許容できない場合は認証を追加したほうがよいでしょう。

Q: UserPool の属性を使わず、RDS / DynamoDB などでユーザーの情報を持ちたい。Cognito フェデレーテッドアイデンティティと UserPool を使い、Federated Identity では Google や Facebook の認証を使う場合、Federated Idenity の IdenityId をキーに使えば良いですか?

はい。フェデレーテッドアイデンティティで UserPool 以外を使うとなるとフェデレーテッドアイデンティティの IdentityId がキー情報となるかと思います。

Q: 名前解決について教えて欲しいです。

名前解決の一般的な話と、今回設定しようとされている A レコードとは何かという一般的な話をしました。

Q: AWS CloudTrail を一つのアカウントに集約したいと考えています。また、最終的に CloudTrail のログは Amazon Elasticsearch Service に入れたいです。今は CloudWatch Logs → Lambda を使っているのですが CloudWatch Logs の値段が気になります。

CloudTrail のログは設定で、一つのアカウントの保有するバケットに集約可能です [docs]。

また、CloudWatch Logs の値段を抑えることに関しては、収集 (データの取り込み) か、保存 (アーカイブ) か、どちらを気にするかによって対策が異なります。
収集が気になる場合、CloudWatch Logs を使わないことも選択肢に入るでしょう。例えば、CloudWatch Logs を使わず、S3 の Put を契機に Lambda を起動して、Elasticsearch Service に登録することが可能です。

  1. CloudWatch Logs → Kinesis Data Firehose → Elasticsearch Service (コード不要)
  2. CloudWatch Logs → Lambda → Elasticsearch Service (コンソールにより自動生成)
  3. S3 → Lambda か何か → Elasticsearch Service (自前実装されるパターン)

といった構成が考えられ、それぞれメリットデメリットがあるので要件によって適切なものをお選び下さい。

あるいは、保存が気になる場合、CloudWatch Logs の保存期間を変更することで対処可能です。

Q: EBS で AWS KMS を使用した暗号化を有効化したときのパーフォマンス影響は?

ハードウェアの機能を使って暗号化・復号しているので影響は最小限です [slides]。

Q: プッシュ通知をメインにしたモバイルアプリを開発したいので、一番楽に構築する方法を教えて欲しいです。

push されてる画面をデモとして見せたいだけとのことでしたので、(AWSは関係なく) ローカルプッシュについてご紹介しました。その後、実際のプロダクトを作る際の手段として AWS Amplify や Amazon Pinpoint をご紹介。

Q: AWS AppSync の認証方式として、フロントエンドからはユーザープール、バックエンドからは IAM で認証をしたいのですが、どうすればいいでしょう?

AppSync Multi-Auth をご紹介。
@aws_api_key : API Keyによる認証でのアクセスを許可する
@aws_iam : AWS IAMによる認証でのアクセスを許可する
@aws_oidc : OpenID Connectによる認証でのアクセスを許可する
@aws_cognito_user_pools : Amazon Cognito User Poolsによる認証でのアクセスを許可する

Q: リクエストのスパイクが想定される場合に CloudFront を使う上での注意点は何でしょうか?

CloudFront の limit の話 [docs] とBlack Belt [slides] をご紹介しました。

Q: サーバーのコールドスタンバイみたいなことを Elastic Load Balancing を使ってやる方法はありますか?

コールドスタンバイにしたい理由を伺ったところ、オンプレ的な思想だったため The 12-Factor App についてお話ししました。Log agent の概念や pull 型のデプロイの紹介と合わせて、AWS 開発者用ツール (AWS CodeCommit, AWS CodePipeline, AWS CodeBuild, AWS CodeDeploy) [web] や Amazon CloudWatch を紹介しました。

Q: モバイルアプリケーション開発について質問させて下さい。ユーザ登録をして、そのユーザ情報を管理画面で参照させるようなモバイルアプリケーションを新規で開発したいです。サインアップのときから DynamoDB にユーザ情報を登録して参照もそこから、という検討をしているがどうでしょうか?

サインアップからサインインの管理に Cognito を適用して、副次的な情報を DynamoDB で取り扱うパターンをご紹介。

Q: EC2 のインスタンスタイプを変えたら IP アドレスが変わってしまった。戻すことはできないですか?

IP アドレスに依存せず名前でインスタンスを解決できるよう設計するか、どうしても IP アドレスを固定する必要がある場合は ElasticIP の利用をご検討ください。

Q: Amazon Echo と IoT デバイスを連携させて、温度・湿度センサーの閾値を超えた場合に通知 (Echoが話しだす) を実装したいです。

Alexa のプロアクティブイベント API をご紹介 [docs]。ただしいきなり Echo が話し出すのではなく、通知を送りその通知をユーザーが確認する「Alexa、通知ある?」という形となるため UX/VX は考える必要があります。

Q: リソースを消したはずなのに請求が発生しているようです。何が残っているのかわからないので助けて下さい。

請求コンソールで、Elastic IP や RDS のスナップショットなどが残っていたことを確認しました。(Elastic IP は EC2 インスタンスにアタッチされていない場合、料金が発生します。)

Q: e-コマースサイトを作成しようとしているがどんな構成が良いか教えて下さい。

標準的な3層構造アーキテクチャ (CloudFront, ALB, EC2, RDS) をご紹介。

Q: Fargate のタスク定義をアプリケーションユーザごとにスケールさせたいです。

アプリケーションの詳細をお聞きした上で、iOS アプリから Container をスケールさせる、ユーザごとの Container 利用状況を管理するモジュールを作成しそこに任せる、などのアプリケーション側対応案をディスカッションしました。

Q: DynamoDB のコストが予想外に高かったのですが、原因や改善させる方法はありますか?

お話を伺ったところキャパシティユニットが高めにプロビジョニングされており消費できていませんでした。そこで、オンデマンドキャパシティモードとプロビジョニング済みキャパシティモードの使い方・使い分けをご紹介しました。

Q: スマホを通信手段としたIoTセンサーデータの収集システムを検討していてサーバーレスで考えているがアドバイスがほしいです。

収集するデータの要件 (タイミングなど)、収集したデータの分析要件 (分析タイミング、リアルタイム性など) をヒアリングした上で、ラムダアーキテクチャ + データレイクをご紹介しました。

Q: スペックが低い RDB に対する負荷軽減のためのキューイングに SQS を利用することを検討しているが問題ないでしょうか?

問題ないです。

Q: (続き) キューごとに複数枚の画像に対する処理、動画のサムネイル作成処理、を Lambda で実装しようと考えているが問題ないでしょうか?

Lambdaの制限 (実行時間、ペイロードサイズなど) を超える場合はコンテナや EC2 を検討すること、水平スケール (同時実行) させすぎると RDB が耐えれなくなる可能性があるため、キューに対してシングルスレッドで処理を行うなどの考慮が必要です。とはいえキューのメッセージ数がずっと増加している場合は処理性能が足りていないので水平スケールと RDB の負荷を考慮しながら落とし所を見つける形がいいのではないでしょうか。

また、RDB 以外の選択肢も考慮に入れて頂くと設計の幅が広がります。サーバーレスアプリケーションに対する DB 設計は、こちらの資料もオススメです。

Q: Push 通知の仕組みを実装したいと考えているが Amazon Pinpoint を使うべきか、Amazon Simple Notification Service (SNS) を使うべきか、どちらがオススメでしょうか。またメール配信はどうすべきでしょうか。

今から Push 通知やるなら Pinpoint を使いましょう。キャンペーンなどユーザーエンゲージメントでEメール配信する場合も Pinpoint が利用できます。

Q: モバイル端末側で緯度経度情報を1秒ごとに収集し、1分間隔で AWS に送信しようと考えています。リアルタイムデータは モバイル端末 → S3 → Lambda → DynamoDB というフローで出力する想定です。更に、S3 に出力されたデータを1分、10分間隔で Lambda Function で集計し、異なる S3 バケットや DynamoDB に格納します。これに加えて、夜間処理で Fargate の Task を700多重で呼び出して集計処理を行いたいと考えています。

S3 で一次受けするのではなく、Kinesis Data Firehose をご利用いただくことを提案しました。1分間隔、10分間隔のデータ集計を Kinesis Data Analytics で行うことで、集計結果を Lambda 経由でダイレクトに DynamoDB に格納することもでき、スケーラビリティを確保しつつシンプルなアーキテクチャーとなります。夜間の集計処理については、お聞きしてみると Apache Spark のマネージドサービスで代替できそうだったので、AWS Glue / Amazon EMR のジョブ内でまとめて分析を行うことをお勧めしました。

Q: Amazon Lightsail のスナップショットを定期的に取得するソリューション [GitHub] を使用しようとしているが、deploy に失敗します。

[issue] に Hit していたことを確認できたため、回避策を適用いただき無事環境構築が完了しました。

Q: アフィリエイトなどの効果測定に用いる API を API Gateway や Lambda 使って構築しています。バックエンドのデータベース選定や集計処理について相談したいです。

データ整合性の確保が必要な更新処理については、DynamoDB Transaction もしくは Aurora Serverless Data API をご利用いただけることをお伝えしました。集計処理は比較的シンプルなものであったため、Glue などの ETL ツールは使わず、DynamoDB や Aurora 上のデータを直接集計いただくことをご案内いたしました。

Q: EC2/ECS のログを CloudWatch Logs に送信、Subscription Filter で Error を含むログを Lambda Function に連携し、カスタムアラートを SNS 経由で通知する仕組みを考えています。デッドレターキュー も Lambda Function に設定することで可能な限り処理の取りこぼしが無いようにしていますが、他に改善するポイントはありますか?

DynamoDB で Error 種類ごとに通知先の SNS トピックを管理されているなど、今後の要件追加にも対応可能な構成になっており、作りこみとしては十分に見えました。監視処理そのものの問題を検出するために、Lambda Function の Errors メトリクスを監視し、問題が発生時には Lambda Function のログから原因分析を行うフローを整えておくこと、エラー発生時に処理できなかったログメッセージを残すなど、遡って再処理できるような仕組みを予め入れておくことを提案しました。また、別のアプローチとして Elasticsearch Service の Alert 機能も候補として合わせて紹介いたしました。

Q: 2アカウント間 (アカウントA, アカウントB) でVPC Peering をはった後に、アカウントA からアカウントB に対してSSH (SFTP) を行いたいがうまくできないので助けて下さい。

VPC Peering 自体の設定はできていました。アカウントA、アカウントB それぞれのルートテーブル、セキュリティグループの設定を見直し、双方通信ができるように設定変更しました。

Q: AWS Certificate Manager (ACM) の Private CA は日割料金ですか?

はい。日割り計算となります。

Q: ECS で実行されるコンテナは Amazon Linux にするべきでしょうか。Amazon Linux にすることでサポートレベルは上がりますか?

推奨されるコンテナといったものはありません。コンテナによってサポートレベルが変わるものでもありません。要件に沿ったものをご利用ください。

Q: ECS の事例について教えてほしいです。

豊富にありますので “ECS” “事例” などのキーワードでお調べください。

Q: CodeBuild の Github トークン、1つ設定したら全ての Project で同じものが使われるように見える。Project 毎に分けたいがどうすればいいのか

下記の制約にヒットしていたため、CodePipeline からのご利用をご提案しました。

CodeBuild でビルドプロジェクトを作成する [docs]

個人用アクセストークンは、一回のみ入力して保存する必要があります。CodeBuild では、以降のすべてのプロジェクトにこのトークンを使用します。

 

GitHub の認証を設定する [docs]

CodePipeline は、GitHub OAuth トークンと個人用のアクセストークンを使用して GitHub リポジトリにアクセスし、最新の変更を取得します。GitHub で認証を設定するには、2 つの方法があります。

  • コンソールを使用してパイプラインを作成または更新すると、AWS はデフォルトの AWS 管理の OAuth トークンを作成します。
  • 独自の顧客生成の個人アクセストークンを作成して管理することができます。CLI、SDK、または AWS CloudFormation を使用してパイプラインを作成または更新する場合は、個人アクセストークンが必要です。

Q: Public/Private サブネットはどのように分割すればいいですか?

インターネット経由で直接アクセスされるリソースは Public Subnet で、そうでないものは Private Subnet へ配置することをご案内させていただきました。同一サブネット上のリソース間の通信制御はセキュリティグループをご利用いただくことをご提案しました。

Q: db.m1.large の RDS があり、db.m4.large などに移行したいと考えています。移行に際して、どのような懸念事項があるか確認させて下さい。

EC2-Classic 環境であるか VPC 環境であるかによって選択可能なインスタンスクラスや今後の対応の流れが異なるため、まずは環境をご確認いただくことをお願いしました。

Q: 異なる環境に存在する既存システムのデータを活用して検索エンジンを作成したいと考えています。外部環境から SQS にメッセージを送信し、ワーカーの Lambda が SQS からデータを取得し、SQS メッセージの内容を元に既存システムからデータを取得、ELK Stack にデータを送信する構成となっています。ELK Stack とは別に、別の集計処理を行う目的でデータベースにデータを格納したいため RDS を検討していますがアンチパターンと聞いています。他にどのような方法がありますか?

Elastic Stack を既にご利用なのであれば、予算的に問題が無ければ Elastic Stack に入れてしまうのがよいと判断しました。Elasticsearch には SQL Plugin があるため、RDS を使わずとも集計処理を実現できるのではないか、とお伝えしました。

Q: (続き) ELB のログを PV 集計などに使いたいです。どのような基盤でログを分析したらよいでしょうか?

Amazon Athena などを使う方法も考えられますが、ELK Stack をご利用いただいているのでそちらにログを投げ込んで Kibana で分析するのが素直では、という話をしました。分析処理の頻度が低いようなデータについては、無理に ELK Stack に入れず必要な場合のみ Athena で集計するのがリーズナブルではないか、とお伝えしました。

Q: 1分間に一度の定期実行ジョブを動かしたい場合、AWSではどのように実現可能か知りたいです。

以下の2つをご案内しました:
1) Step Functionsでジョブを定義して、Step FunctionsのAPI経由で定期的にジョブ実行する
2) Lambdaを設定して、API Gateway経由で定期的にキックする


週刊 Ask An Expert まとめ、今回はここまで

最後までお読み頂きありがとうございます!
冒頭に書いたように、似たご質問をまとめたり、端的にまとめづらいご質問を省いているためそっくりこのままやり取りが行われているわけではありませんが、様々なご相談をいただいていることが伝わっていれば嬉しいです。実際の Ask An Expert カウンターでは、より詳細なご案内・議論が行われています。
それではまた次回をお楽しみに!

このブログの著者


針原佳貴 (Yoshitaka Haribara)

スタートアップソリューションアーキテクト。好きなサービスは Amazon SageMaker、趣味はドラム。