2020/7/30 ウェビナー「活用パターンから学ぶ!AWSコスト最適化ウェビナー」の Q&A を公開します

2020/7/30 ウェビナー「活用パターンから学ぶ!AWSコスト最適化ウェビナー」の Q&A を公開します

Clock Icon2020.07.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

2020/7/30 クラスメソッド株式会社主催「活用パターンから学ぶ!AWSコスト最適化ウェビナー」にご参加頂いた方から頂戴した質問と、その回答を公開します。

https://dev.classmethod.jp/news/200730-aws-cost-webinar/

Q&A

Q. コスト最適化キャンペーンの申込方法について教えてください

A. キャンペーンをご希望の際は、以下のキャンペーンページよりお問い合わせください。
https://classmethod.jp/m/cost-optimization/

Q. RDSの一般ログをcloudWatchに取り込んで保存させています。cloudWatchのコストが高くなっているので、下げる方法があれば教えてください。

A. RDSはCloudWatchLogsに取り込まれるため、取り込み時の利用料は発生してしまいます。改善点としては、開発/検証で不要なログがでていないか(Auditなど)、ロググループの保存期間が設定されているかをまず確認いただければと思います。

Q. コンテナのログをCloudWatchに転送しています。CloudWatchのコストが高くなっているので、下げる方法があれば教えてください。

A. デフォルトではCloudWatch Logsに出力がされますが、FireLensをお使いいただくと出力先をカスタマイズが可能になります。ログ出力先をS3に変更することでコスト削減が期待できます。
以下のブログをご参考にしていただければと思います。

https://dev.classmethod.jp/articles/ecs-firelens/

Q. 本番運用時のコストに関して、検証環境は開発環境はどのくらいコストを抑えて運用するのが良いか目安があれば教えて頂きたいです。

A. 開発環境や検証環境の役割によって変わります。開発は機能テストのみであればリソースサイズは小さく日中のみ、検証環境は本番を相当してリソースサイズは同じでなど、役割合わせて最適化を検討ください。

Q. ウェブサービスを提供していますが、Webサーバーについてはコスト削減の方法はある程度判るのですが、非同期ジョブのようなものをオンデマンドで実行することによってコストの最適化を図りたいと思っているのですが、その場合はどのような構成にするのがよいのか教えていただけますでしょうか。</h3>

A. システムごとに求められる要件や制限が異なりますので、決まってベストな構成はございません。
EC2上で非同期なジョブを実行しており、改善されたいという前提のもと、回答させていただきます。

まず、EC2でコストの発生元を確認ください。ネットワーク転送でコストが発生している場合、NAT Gatewayを経由しないようにするなどが考えます。また、インスタンスの稼働時間をへらすことができる場合は、opswitchなどで自動停止/起動を考えます。
構成の変更が必要な場合、決まった構成はなくジョブの特性によって考えていく必要があります。特性ごとに例をあげさせていただきます。

短時間で完了しユーザー単位などの小さい処理の場合、Lmabdaを使うことで大きなコスト削減が期待できます。

ジョブの増減が求められ、変更頻度が高い場合、ECSタスクを検討します。
インスタンスタイプに制限がない場合、インフラコストを減らせる ECS on Fargate を考えます。Fargate Spotをあわせて活用いただくことによって、オンデマンドFargate使用時にに比べて7割引で利用可能です。
特定のインスタンスタイプを使う必要がる場合、ECS on EC2をスポットインスタンスを含めて使用ください。

https://dev.classmethod.jp/articles/fargate-spot-detail/
https://dev.classmethod.jp/articles/spotinstances-with-ecs-on-ec2/

複数のジョブが関連し、ジョブ間の依存関係が求められるようなバッチ処理の場合は、AWS Batchを検討します。

https://dev.classmethod.jp/articles/relay_looking_back_aws-batch/

CodeBuildを使う方法もあります。Lambdaと比較して、シェルコマンドや特定の実行環境が求められる場合に使用が考えられます。また、ECSのように複数同時にコンテナの起動が不要な場合に、簡単に実装できるCodeBuildを選択肢にしていただくこともできます。ただしアップデートによって、CodeBuild上で並列実行と逐次実行がサポートされ、ECSやAWS Batchのように使われるようになりましたので、今後はこれらのサービスと比較しながら検討することになります。

https://dev.classmethod.jp/articles/aws-codebuild-now-supports-parallel-and-coordinated-executions-of-a-build-project/

より限定されたケースとなりますが、データレイクとして使用するS3に対して、ETLや分析するジョブを使用している場合、AWS GlueAWSやAmazon Athenaを利用いただいたけます。

EC2から変更せずにコストを最適化するには、最初に述べましたように稼働しない時間帯の停止や、スポットインスタンスの利用を検討します。

ジョブの特性上とくに制約などない場合、Lambda > ECS タスク > EC2 の優先度で検討いただければと思います。

回答は以上になります。
なお、クラスメソッドメンバーズのサービス仕様、ご契約に関わる項目につきましては、個別にご回答させて頂きます。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.