2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS環境でGPUサーバーを安く、安全に使うためにやったこと

Posted at

前提

この記事はCloud CIRCUS Meetup #1【2022/5/25(水)】 - connpassに登壇した際のスライドを転記したものになります。

本記事の目的

GPUを使ってサービスを運用する場合、費用的に都合が合わないことが多いです。
もし予算に余裕があるとしてもコスト削減は価格競争力にも繋がるので参考になるかと思います。
image.png
そこで性能を担保しつつ(安全に)、サーバー費用を下げる(安く)に弊社で実施した対策についてご紹介します。

MOSYA

理解を促すための事例ですが、弊社の3Dモデル作成サービスである「MOSYA」を提供しています。
リクエストごとにGPU処理が行われるので、リクエストに比例して費用が増加してしまいます。
image.png

安く

1. 必要なサーバースペックを確認

当たり前のことではありますが、処理にフィットしたサーバースペックを選びましょう。
費用に対して実際処理パフォーマンスが改善されるのか確認するのがポイントです。
image.png

2. 安いインスタンスを使う

SPOTインスタンスを使えば非常に安い料金でインスタンスが使用できます。
( AWS G3シリーズは大体70%安い )
image.png
SPOTインスタンスはクラウド上未使用状態のインスタンスを使用する仕組みになりまして、
リージョン内のインスタンス使用量増える場合、インスタンスが終了される可能性があるので終了に対するシステムの対策が必要になります。

3. GPUが必要なタスクを分ける

GPUで処理を行う場合でも一部CPUを使って処理できるところもあるかと思います。(データの準備など)
CPUで処理が可能な部分はCPUで処理をするようにしましょう。

効果として以下が期待できます。

  1. GPUの処理量が減る
  2. CPU処理の間GPUのウォーミングアップができる(エラーがある場合はGPUを立ち上げないこともできる)

image.png

実装方法としてはQueueを使用しCPUとGPUの処理を分けることが理想かと思います。
弊社ではタスクを連続的に処理するために状態管理方を採用しております。
image.png

安全に

1.予測されない処理の停止に対応

GPU処理は一般的な処理に比べ処理量や処理時間が長く、再実行コストが高めになります。
なので再実行時でも処理を途中から継続できるようにし、手戻りを少なくする必要があります。
image.png

2.インスタンスプールを確保する

SPOTインスタンスにより、インスタンスが使用できない場合、
他のタイプを代わりに使ってサーバー数を維持することができます。
image.png
もし特定インスタンスを常時起動させる必要があったり、少しでもサーバーの不在状態を作りたくないのであれば一部のインスタンスはOnDemandを使うこともいいと思います。

3.問題がないかモンタリングする

インフラからアプリケーションまで問題が散財しているので、問題の監視対策と改善が必要になります。
image.png

まとめ

image.png

最後に

image.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?