AWS Startup ブログ

【週刊 Ask An Expert #22】Amazon ECS ってなぜ必要なの?先週の #AWSLoft で受けた質問10選

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

宣伝1: 現在、AWS Loft Tokyo では新規利用者紹介キャンペーンを実施中です(〜2019/11/30)。どしどしご紹介ください。カフェラテ無料券(S)がもらえますよ!

宣伝2: 9/30(月)に開催する Blockchain@Loft #01、 参加登録受付中です!今回は Tech 編です。ブロックチェーンに技術的にご興味をお持ちの方はぜひお越しください。

さて、このブログ記事では週刊 Ask An Expert 第22回目をお届けします。「参考になった」「いい内容だ」と思っていただけたら、ぜひハッシュタグ #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 ってどんなところなのか、一緒に見ていきましょう。Here we go!

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

この週の対応者は SA: 岩野・清水・松田でした。

Q1: Docker コンテナを使おうと思っているが、 Amazon ECS は必要なのか、何がよいのか。

そもそもコンテナオーケストレーションツールの役割や必要性などをあまり意識されていなかったので、以下のブログ記事を紹介しながらご案内しました。

Q2: AWS Fargate を利用中。ローリングアップデートと Blue/Green アップデート、どちらにすればよいか。

Amazon ECS のデプロイタイプについて詳細をご説明しました。その上でさらにお話を伺ったところ、今回はサービスの Auto Scaling を利用することを検討されていたため、Blue/Green デプロイはサービスの Auto Scaling をサポートしていないことを考慮するようご案内しました。

Q3: AWS Fargate を利用中。AWS App Mesh は必要か。

AWS App Mesh は、Envoy proxy をベースにしたサービスメッシュのマネージドサービスです。単一のクラスタやコンテナサービスを超えてログ・メトリクス・トレース情報の出力やクライアントサイドのトラフィック・ルーティングポリシーといったアプリケーションレベルのネットワークを提供し、Microservices のモニタリングや制御を容易にします。

現在の構成についてお聞きしたところ、Microservices のように複数のサービス間で相互通信をするようなアーキテクチャでもなかったため、まずは必要ないでしょう、というお話をしました。

Q4: Amazon SageMaker で、トレーニングの際にファイル転送にかかる時間を短くしたい。

ファイルモードをご利用だったため、パイプモードをお試しいただくようお願いしました。

Q5: Amazon SageMaker Ground Truth で、セマンティックセグメンテーションのデータラベリングを自動化することはできるか。

2019/08/14 にできるようになりました!

Q6: Elasticsearch を本番環境で構築するにあたり考慮することを教えてほしい。

Master nodes が3台必要な理由(Quorum や Split brain について)、Index、Alias の説明、単一 Index を更新し続ける場合 Optimize が必要になることなどなど、お話しました。
また性能要求は 500ms の応答速度とのことだったので大きな問題はなさそうでしたが、将来的に I/O バウンドになった場合は、ストレージ最適化インスタンスファミリーである I3 インスタンスなどに切り替える必要が出る可能性をお話しました。

Q7: 動画配信ソーシャルメディアサービスを開発中。コストを抑えるにはどうすればよいか。

AWS Media Services をご案内した上で、マルチデバイスやマルチビットレート対応についてご説明しました。ただ、今回はコストと開発工数最優先とのことだったので、最も簡単な方法としてクライアントアプリ側でサイズを落としてからアップロードする方法などについても議論しました。

Q8: Amazon EC2 Auto Scaling を設定したとき、スケールインの動作によりインスタンスが終了することになる。その際ログはどう扱えばよいか。

ログは常にストリーミングしておくのがベストプラクティスと言えます(参考:The Twelve-Factor App)。Amazon EC2 インスタンス上にアプリケーションを構築されていたので、CloudWatch エージェントを使って Amazon CloudWatch Logs にログを流す方法、Kinesis エージェントを使って Amazon Kinesis にログを流す方法などをご紹介しました。

以下の資料 26 ページ〜、「ログをちゃんと扱いたい」もご一読ください。

Q9: Amazon EC2 Auto Scaling を設定したとき、各インスタンスの起動時と終了時にコマンドを実行させたい。

EC2 Auto Scaling のライフサイクルフック機能を設定して Amazon CloudWatch Event を発行させ、AWS Systems Manager の Run Command を実行する方法で実現できそう、とお話しました。

Q10: Amazon CloudFront でカスタムエラーレスポンスを設定するとき、HTML で返したいケースと JSON で返したいケースがある。出し分けるにはどう設定すればよいか。

よくお話を伺うと React で開発されているとのことだったので、レスポンスの扱いは React Router に一本化することをご提案しました。


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

最後までお読み頂きありがとうございます。冒頭に書いたように、執筆者の独断により興味深かった質問 10 個を選び、且つざっくりとまとめて記載しているため、実際にはより具体的な質問をより多く頂いていますが、様々なご相談があることが伝わっていれば嬉しいです。まだ Ask An Expert カウンターをご利用になったことがない方も、AWS Loft Tokyo をご利用の際はぜひお気軽にご質問ください。

※Ask An Expert が混雑してお待ちいただく場合、またはエキスパートが不在の場合がございます。何卒ご容赦ください。

このブログの著者

塚田 朗弘 (Akihiro Tsukada)

スタートアップソリューションアーキテクト。AWS FinTech リファレンス・アーキテクチャーの作者の一人。好きなサービスは Amazon PinpointAWS Chalice。趣味は頭を触ってくる子供と遊ぶこと。