AWS Startup ブログ

【週刊 Ask An Expert #35】Amazon SageMaker Studio プレビュー開始!先週の #AWSLoft で受けた質問10選

こんにちは、スタートアップ ソリューションアーキテクトの松田 (Twitter: @mats16k) です。

re:Invent では多くの新サービス・新機能が発表されましたが、気になる・注目しているサービスはありましたか?私はついにリリースされた AWS Fargate の Amazon EKS 対応に特に注目しています!

さて、このブログ記事では週刊 Ask An Expert 第35回目をお届けします。「参考になった」「いい内容だ」と思っていただけたら、ぜひハッシュタグ #AWSLoft を付けてシェアしてください。改善点・ご要望もお待ちしております。

Ask An Expert ?

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

この連載「週刊 Ask An Expert」では、多くのご相談を中から我々スタートアップソリューションアーキテクトが 独断で面白かった質問を 10 個選び紹介していきます。他の AWS Loft 利用者がどんな質問をしているのか、自分が知らなかった新しいトピックはないか、Ask An Expert ってどんなところなのか、一緒に見ていきましょう。Let’s ask an expert!

週刊 Ask An Expert #35 (2019/12/09 – 12/13)

この週の対応者は SA: 岩井・小川・石本・原田・笹木・八木・成尾・中谷・岩野・大井・石橋・丹羽・山崎・桐山・松本・志村・大松、 CSE: 榎本でした。

Q1: S3 EventsAWS Lambda を発火する際に、ちゃんと処理されたことを監視したい。また、AWS Lambda の前に Amazon SQS を挟むべきかどうか

たとえば /todo に Put された際に Lambda を発火するように設定したとき、処理後にファイルを /processed に移動することで、/todo にファイルが残っているかで未処理か処理済みかを容易に判断することが出来ます。また、ファイルを再度 Put することで再処理も容易に行うことが出来ます。(Path 名は任意のもので代替可能です。あるいは、末尾に .processed をつけるなど、リネームでも代替可能です。)

また、SQS を間に挟むことは、Lambda の同時実行数をコントロールする点で有用とお伝えしました。

 

Q2: AWS Lambda から AWS KMS にアクセスできない

確認したところ、インターネットアクセスの無い VPC が設定された Lambda だったため、NAT Gateway を設定してインターネットアクセスを可能にするか、 KMS の VPC エンドポイントの作成をご案内しました。

 

Q3: 現在、self-hosted な Kubernetes で BtoB で提供している API を、取引先に譲渡することを考えている。その場合、Amazon EKS or Amazon ECS のどちらがおすすめか

できるだけサーバの運用負荷が少ない方が良さそうとのことと、カーネルパラメータのチューニングやディスクのマウントなどの要件がなかったため、AWS Fargate をご紹介しました。

また、カスタムリソースオペレータパターンなどの利用も無いとのことだったので、機能的には EKS, ECS どちらでも問題無さそうでした。コスト的にはコントロールプレーンの利用料がかからない ECS の方が優位なものの、最終的には実際に運用する方次第ではあるので以上のことを踏まえて再度ディスカッションをすることをご提案しました。

 

Q4: Amazon ECS の環境を構築する AWS CloudFormation の書き方について

下記を参考にご説明しました。
https://github.com/awslabs/aws-cloudformation-templates/blob/master/aws/services/ECS/EC2LaunchType/clusters/public-vpc.yml
https://github.com/awslabs/aws-cloudformation-templates/blob/master/aws/services/ECS/EC2LaunchType/services/public-service.yml。

 

Q5: Amazon S3 + Amazon CloudFront で www.example.com を example.com にリダイレクトさせたい

S3 バケットによりホストされたウェブサイトへのリクエストを別のホストにリダイレクトする方法」を参考に、S3 の静的 Web Hosting でリダイレクトを有効化し、CloudFront のオリジンとして登録する方法をご紹介しました。

 

Q6: 現在、静的コンテンツを Amazon CloudFrontAmazon S3、動的コンテンツを Amazon API Gateway としているが、社内から CloudFront に対する知見や実績がないので CloudFront ではなく ALB を使ったほうがいいという指摘があったが正しいかどうか確認したい

対障害性やコスト的な観点からは現在の CloudFront の構成が好ましく、特に ALB を使うべき理由が他に見当たらなかったため、そのようにお伝えしました。

 

Q7: 上記の CloudFront + S3 で静的コンテンツを配信している部分を、 S3 のみに置き換えてはダメなのでしょうか

独自ドメインを使う場合、S3 の静的 Web Hosting だと https を利用することが出来なくなるため今回の場合は難しいとご案内しました。また、S3 のみでも高い可用性を有していますが、高トラフィックを捌く際は CloudFront を利用することをおすすめします。コストの観点でもボリュームディスカウント(配信料に応じて GB 単価が低くなります)の効く CloudFront の方がおすすめです。

 

Q8: 災害時など、オンプレミスの NAS にアクセスできないときに、S3 のバックアップを利用したい。想定ユーザは総務などの非エンジニアで、数百GB程度の容量。権限も同じように引き継ぎたい

現状、権限の制御を Active Directory で行っていることもあり、S3 を非エンジニアの方に利用いただくことは難しいとお話しました。Amazon FSx for Windows ファイルサーバー や AWS Storage Gateway などの代替案もありますが、RTO/RPO によって取りうる構成が大きく変わるので、機能的な差異をお伝えした上で再度検討いただくようご案内しました。

 

Q9: Amazon Athena で分析可能にするために、S3 のファイルを AWS Glue で ETL 処理している。AWS Glue で行っている ETL 処理をもっと楽にやりたい

お話を伺ったところ、Glue Crawler に時間かかる、Job の処理の依存関係の管理の煩雑さがモチベーションとのことでした。行っている処理的には AWS Step Functions + AWS Athena で問題無さそうであったため、「ジョブステータスのポーリング (Lambda、AWS Batch)」を参考に具体的な実装方法についてご案内しました。

 

Q10: Amazon SageMaker Studio がプレビュー中らしいが、使い方がわからない。

ブログ記事およびドキュメントを参照いただくようお願いしました。また、オハイオリージョン (us-east-2) のみで利用可能となっております。

 

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

最後までお読み頂きありがとうございます。冒頭に書いたように、執筆者の独断により興味深かった質問を選び、かつざっくり要約して記載しています。実際にはより具体的な質問をより多く頂いていますが、様々なご相談があることが伝わっていれば幸いです。まだ Ask An Expert カウンターをご利用になったことがない方も、AWS Loft Tokyo をご利用の際はぜひお気軽にご質問ください。
※Ask An Expert が混雑してお待ちいただく場合、またはエキスパートが不在の場合がございます。何卒ご容赦ください。

 

このブログの著者

Kazuki matsuda松田 和樹 (Kazuki Matsuda) @mats16k

コンテナやビッグデータが得意分野なスタートアップソリューションアーキテクト。好きなサービスは AWS FargateAWS Chalice 。最近は AWS Amplify が好きです。

最近のヒット作は「スタートアップのためのコンテナ入門 – Kubernetes 編」です。