AWS Startup ブログ

【週刊 Ask An Expert #16】フェイルオーバーがうまくいかない!?もしかしてインスタンスエンドポイントを利用していませんか? 先週の #AWSLoft で受けた質問10選

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

8/8(木) 19:00、Amplify & Chalice のハンズオンワークショップを開催するので、アプリケーションデベロッパーの方や、楽してさくっとサービスを構築したい方はぜひ Loft にお越しください。参加登録は↓こちらから。

さくっと作ってスッとデプロイする感じのハンズオンです

さて、今回の週刊 Ask An Expert 第16回目をお届けします。「参考になったわ!」「ええ内容や!」と思っていただけたら、ぜひハッシュタグ #AWSLoft を付けてシェアしてください。もちろん、改善点・ご要望もお待ちしております。

Ask An Expert ?

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

ある日の Ask An Expert – SAの櫻田

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

週刊 Ask An Expert #16 (2019/07/29 – 08/02)

この週の対応者は SA: 桶谷・下佐粉・岡本・原・山崎・舘岡・濵・水馬と CSE: 榎本・古野・嶋本でした。

Q1: 性能要求が高いWebサービスを AWS アカウント間で移行する際に、アカウント間のレイテンシーや VPC Peering 接続時のネットワークパフォーマンスはどうなるのか。

細かい部分を深堀りしつつ、アベイラビリティーゾーン ID についてご説明しました。以前までは ap-northeast-1a のような名前のみの表記でしたが、現在は apne1-az4 のようなアベイラビリティーゾーン ID が併記されております。クロスアカウントでの利用時にアベイラビリティーゾーン間のレイテンシを考慮する必要がある場合には、こちらの ID が一致していることをご確認ください。また、 Shared VPC もご利用いただけますが、アカウント移行の要件にマッチしないため今回は不適かと思われました。(アプリケーションに必要なパフォーマンスが確保できるかについては、実際に確認いただくことが重要になります。)

Q2: Excel データを分析するような常駐プログラムを動かし、結果は Dropbox に置きたい。これらを実現する AWS サービスはあるか。

Amazon EC2 や Amazon WorkSpaces がよろしいかと思われます。(プログラムはどちらも自由に導入できます。)単純なサーバコストであれば EC2 に分がありますが、そこに正しく導入できる Microsoft Office のライセンスがあるかご確認頂く必要があります。WorkSpaces であれば、Office バンドルがあるため、利用料をお支払い頂くだけでご利用頂くことが可能です。また、 WorkSpaces には D: ドライブの自動バックアップがあります。

Q3: Amazon DynamoDB のセカンダリインデックスの射影される属性とはなんですか

ローカルセカンダリインデックス」を中心にご説明致しました。以下抜粋になります。

射影は、テーブルからセカンダリインデックスにコピーされる属性セットです。テーブルのパーティションキーとソートキーは必ずインデックスに射影されます。アプリケーションのクエリ要件をサポートするために、他の属性を射影することができます。インデックスのクエリを行うと、Amazon DynamoDB は射影内の属性に、それらの属性が独立したテーブル内にあるかのようにアクセスできます。

Q4: リストとして管理しているメールアドレスに対してセールス系のメールを送りたい。Amazon SES を使うと実現できるのか。

SES 利用の際はプログラムを書けば実現することが出来ます。しかしながら、Excel 等で管理しているリストに対して非エンジニアがメールを何度か送りたい、というユースケースのようでしたので、Amazon Pinpoint の方がマッチしそうです。画面からのアップロードや S3 のリストファイルを指定することでキャンペーンメールを送信することが可能で、開封率などの各種計測も行うことが出来ます。

Q5: Amazon CloudWatch Logs の永続化について。

マネジメントコンソール上の「次の期間経過後にイベントを失効」からログの保持期間を設定することが出来ます。

CloudWatch Logs 上の保存期間は短くして、Amazon Kinesis Data Firehose 経由で Amazon S3 に永続化するという方法もございます。

Q6: Ionic を使って Android/iOS 向けスマホアプリを作っているが、アプリのテストはどうすればいいか。

AWS DeviceFarm というサービスがあり、クラウド上で実際のモバイルデバイスを使った iOS/Android アプリのテストが可能です。サポートしているテストフレームワークについては「AWS Device Farm でのテストタイプの実行」を参照下さい。

Q7: Amazon Personalize で GetRecommendation と GetPersonalizedRanking の違いについて。

対象とするレシピが異なります。ドキュメントに記載がありますが、 GetRecommendation が userId に対してリコメンドされる itemId を返却するのに対し、 GetPersonalizedRanking は引き渡した itemId のリストを userId 応じて並び替えて返却します。詳しくは「事前定義済みレシピの使用」をご覧ください。また、実際の API の使い方については「レコメンデーションの取得」をご覧ください。

Q8: Aurora MySQL でフェイルオーバーが発生したところ、読み込みと書き込みのインスタンスが変わり、読み込み側に書き込みクエリを投げてエラーになってしまった。

インスタンスエンドポイントを指定していたことが原因だったため、クラスタエンドポイントのご利用をご案内しました。詳しくは「Aurora エンドポイントのタイプ 」をご覧ください。

Q9: Amazon API Gateway を使って動画をアップロードしたい。

動画の時間やサイズが未定という事だったので API Gateway のペイロードの上限に引っかかる可能性があるとご案内。

クライアントサイドから Javascript SDK を使って Amazon S3 に直接動画をアップロード、メタデータも Amazon DynamoDB に直接書き込み、S3 にアップロードされたら S3 Events 経由で AWS Lambda をトリガーすることでサムネイル作成、のような設計の方が今後の要件変更にも柔軟に対応できるという設計案をご案内しました。

Q10: Web アプリケーション(AWS Amplify) から Amazon S3 バケットに動画をアップロードし、 AWS Lambda でサムネイルを生成する処理を実装している。サムネイル生成処理が終わったことをクライアントで検出したい。可能であればポーリングによる処理は避けたい。

AWS AppSyncSubscriptions が適しているように思われたため、こちらを経由してクライアントへ通知することをご案内しました。外部事例にはなりますが、「サーバーレスSPAのゲームルールを変える AWS AppSync」も参考になるかと思われます。

(おまけ) Q11: Mac の容量が少なくなってきています。

※ AWS のサービス以外の質問はベストエフォートでの対応になります。が、聞いてみると何か進展があるかもしれません。

右クリックで確認してみたところ LINE フォルダ配下に多くのファイルが保存されていたため、LINE アプリで使われている可能性があるかもしれないという事をお伝えさせて頂きました。(詳細は不明ですが)
また、必要に応じてアプリのインストール・アンインストールしてもいいかもしれません。

 

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

最後までお読み頂きありがとうございます。

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

それではまた次回をお楽しみに!

このブログの著者

Kazuki matsuda松田 和樹(Kazuki Matsuda)
コンテナやビッグデータが得意分野なスタートアップソリューションアーキテクト。好きなサービスは AWS Fargate, AWS Chalice 。最近は AWS Amplify が好きです。