AWS Lambdaの導入効果をレビューでご紹介
株式会社Insight Edge / rixiaterurun
テックリード / テックリード / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
ツールの利用開始時期 | 事業形態 |
---|---|
2024年 | B to B |
ツールの利用開始時期 | 2024年 |
---|---|
事業形態 | B to B |
アーキテクチャ

導入の背景・解決したかった問題
導入背景
ツール導入前の課題
当社のとある実証実験プロジェクトでは、遺伝的アルゴリズムを用いた最適化計算を行っていました。しかし、単一のバッチサーバで実行すると処理時間が約10時間かかってしまい、実験の反復性や運用時の利便性に大きな課題がありました。 特に実験段階においてはパラメータ調整を何度も繰り返す必要があり、この待機時間が大きなボトルネックとなっていました。
どのような状態を目指していたか
- 拡張性の高い並列分散処理の仕組みにより処理を高速化
- いつでも実行可能な状態で待機しつつも、インフラ維持費用を抑制
上記の課題を解決するために、AWS Lambdaによる並列分散処理を検討し実装しました。
比較検討したサービス
Amazon ECS, Amazon EKS
- 待機状態のインフラを維持するだけでもコストがかかります。
- バッチ処理の実行頻度は高くなく計算資源を必要としない時間も多いため、コスト効率が悪いです。
比較した軸
運用・保守性
アプリおよびインフラリソースの管理・運用が容易かつ必要作業が少ないこと
コスト効率
常時待機が必要ながらも不定期・低頻度な実行という前提において、待機時間に余計なコストがかからず低コストで運用できること
選定理由
スケーラビリティ
数十〜数百単位の関数実行を容易に並列化できる。
コスト効率
処理実行時のみ課金され、待機時間に対するコストが発生しない。
短期導入の容易さ
既存の Python コードから並列化したい箇所だけを部分的に移植可能。
導入の成果
実際にこの実装を適用して実行時間を測定したところ、以下のような改善効果が得られました。
実行時間の比較
- 単一のバッチサーバのみ: 10.8時間
- 親バッチサーバ+Lambda並列処理: 2.5時間
これにより得られた成果
- これまで1日1回しかできなかった精度検証が、業務時間内で複数回実行することが可能になり、評価関数やハイパーパラメータの探索効率が向上。
- アプリ利用時に結果が早く得られるため、エンドユーザの利便性や利用価値が向上。
導入時の苦労・悩み
遺伝的アルゴリズムの処理の一部分(評価関数)を並列化しているため、分散処理による高速化が望める一方で、ネットワーク経由による並列化によりオーバーヘッドも大きくなります。 並列数や1実行あたりのメモリ量などをチューニングしながら、処理時間や計算コストを実験比較して最適な条件を探しました。
導入に向けた社内への説明
上長・チームへの説明
本記事で挙げた観点に加え、最適化処理実行により発生するインフラコストを試算して説明しました。
Lambdaを利用することで、コンピューティングそのものにかかるコストはEC2やFargateより高くなるものの、処理が実行されない待機時間のコストがなくなることによりトータルでのインフラ費用が削減できるため、想定利用頻度に対するインフラコストが削減できることを強調しました。
活用方法
よく使う機能
コンテナイメージを使用したLambda関数の作成
関数のコードではなくコンテナイメージをデプロイすることで、Lambdaのランタイムへの依存を減らし、環境移植性を高める。 https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images-create.html
予約済み同時実行数の設定
特定の関数の同時実行数をあらかじめ予約することで、他の関数が多く実行されることによる呼び出し失敗を防止しています。 https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-concurrency.html
ツールの良い点
- 実際の処理時間に対する従量課金のため、トラフィックの少ないサービスの運用コストを削減可能
- 情報が豊富で学習が容易
ツールの課題点
- コールドスタートが発生することがあり、レスポンスが一時的に遅くなることがあります。
- 15分の処理タイムアウトがあり、利用可能な用途が限定されています。
ツールを検討されている方へ
AWS Lambdaは今回紹介した事例の用途だけでなく、サーバレスWebアプリや数分程度のオンラインバッチ処理など様々な用途で利用できます。
システム構成を検討する際に、常時起動のサーバだけでなく、Lambda等のサーバレスなアーキテクチャでできないか?を考えてみることで、インフラコストの最適化につながります。
株式会社Insight Edge / rixiaterurun
テックリード / テックリード / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
株式会社Insight Edge / rixiaterurun
テックリード / テックリード / 従業員規模: 51名〜100名 / エンジニア組織: 11名〜50名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法