AWS Startup ブログ

【週刊 Ask An Expert #23】既存システムをサーバーレス化!どう移行すればいい? 先週の #AWSLoft で受けた質問10選

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

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

宣伝2: 来週の AWS Dev Day Tokyo 2019 は参加登録しましたか?満席のセッションも増えてきておりますので、お早めにどうぞ!

さて、このブログ記事では週刊 Ask An Expert 第23回目をお届けします。「参考になった」「いい内容だ」と思っていただけたら、ぜひハッシュタグ #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 #23 (2019/09/17 – 09/20)

この週の対応者は SA: 岩野・荒木・矢ヶ崎・岡本・水馬・濵・小田桐 CSE: 古野・嶋本でした。

Q1: Amazon EKS のメトリクスを詳細に見たい場合どうすればいいか?

Amazon CloudWatch Container Insights をご紹介しました。

Q2: AWS IoT で扱うデータの可視化を考えている。AWS IoT Analytics が使えそう?

IoT Analytics はデータ分析機能を提供するのが主な役目なので、可視化には IoT Analytics と Amazon QuickSight との連携利用をご検討ください。
なお、それ以外のやり方としては Amazon Elasticsearch Service にデータを登録し、Kibana で確認するなども考えられます。

Q3: Amazon EC2 で GitHub からの git clone が出来ない。

~/.ssh/config の記述に起因するエラーが出ていたので、該当部分をコメントアウトしていただいたところ動くようになりました。

Q4: AWS CodeDeploy を使用し、EC2 へ Brue/Green デプロイの設定を行ったが、再ルーティングの際に時間が掛かる。

Application Load Balancer (ALB) の設定を見た所、登録解除の遅延がデフォルトの300秒となっていました。
こちらの時間が影響するので、必要に応じて少ない値にするなどご確認いただくようにお願いしました。

Q5: AWS CodeDeploy を使用した EC2 への Brue/Green デプロイで、新環境に対する動作確認はどうすればよいか。

Bure/Green デプロイでは ELB 登録前に直接インスタンスにアクセスして新環境を確認できるので、そちらを利用ください。
また、デプロイ後に、すぐ新環境に切り替えるか、手動で切り替えるかを設定することができます。

Q6: Amazon ECS の CI/CD 環境を構築したいが参考になるページはないか。

こちらのチュートリアル(CodePipeline を使用した継続的なデプロイ)が参考になると思います。

Q7: AWS Fargate を使う場合、オートスケーリングはどう設定すればよいか。

サービスのオートスケーリングをご利用ください。また、以下のブログ記事もご案内しました。

スタートアップのためのコンテナ入門 – 導入編 | AWS Startup ブログ
スタートアップのためのコンテナ入門 – AWS Fargate 編 | AWS Startup ブログ

Q8: 会社で DR 対策をしたいという話が出ている。どう考えはじめればよいのか。

まずは、どこまでの対応をどれぐらいの時間とお金をかけてやるべきかなどを考えていただいたほうが良さそうである点をお伝えしました。
例えば、マルチリージョン化すれば可用性が高くなる可能性がありますが、システムは複雑化し、管理工数が増える場合があります。
どの規模の障害を想定するのか、どの程度のコストを払うのかまずはご検討頂きたい点をお伝えしました。

また、例えばまずは Muliti-AZ 化が出来ているか確認し、その上でマルチリージョン対応が必要であるか、どのサービスの何が必要化などご検討頂くとよいのではという話をしました。

参考:AWS Well-Architected Framework の「信頼性の柱」もぜひご参照ください。

Q9: Amazon S3 にアップロードされる大きなファイル(10GB)を Google Drive に連携する仕組みを作りたい。可能な限りコストを抑えたいので、EC2 を常に起動しておくような形にはしたくない。

Google Driveがストリーミングファイルアップロードに対応していないこともあり、ファイルを転送する何らかのサーバで腹持ちする必要がありそうです。
処理的には非同期で問題ないとのことなので、AWS Step Fuctions や CloudWatch Events でエラーハンドリングなどを制御する上で、AWS Batchで対象のデータを Google Drive にアップロードする方法をお試しいただくことになりました。

Q10: 既存システムの サーバーレス化を考えており以下の構成を考えている。
Amazon API Gateway -> AWS Lambda -> Amazon DynamoDB
既存システムは RDBMS を使っているのだが、移行のベストプラクティスなどあるか。

NoSQL と RDBMS は異なる特性を待ったものである為、まずは DynadmoDB へ移行すること自体が適切かという判断をしてもらったほうがいいかもしれません。

参考:Amazon DynamoDB がニーズに合うかどうかを判断し、移行を計画する方法 | Amazon Web Services ブログ

もし、RDBMS の方が良いという場合、例えば以下のような構成が考えられるかと思います。

- ALB -> AWS Fargate -> Amazon RDS
- Amazon API Gateway -> AWS Lambda -> Amazon DynamoDB -> DynamoDB Streams -> AWS Lambda -> Amazon RDS


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

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

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

このブログの著者

中武 優樹(Yuki Nakatake)
Blockchain、Database、Zabbix が好きなスタートアップ ソリューションアーキテクトです。