概要
AWSを利用してアプリケーションを開発する際に、コンテナとサーバレスを使い分ける際の判断基準が曖昧だったので、この機会に色々調べてまとめてみました。
下記のリストのいずれかの問いに対して、Yesとなる場合はコンテナでの開発が向いています。
コンテナが向いている場合
- プラットフォームのランタイム管理を望んでいる
- タスクの実行時間が15分以上
- メモリが10GB以上必須
- ARM,GPUなど特殊なハードウェアが必要
- ステートレス処理でない
- lambdaバースト制限外
AWSを利用したコンテナ開発の構成は、下記のような感じになると思います。
CDN | 静的コンテンツ | WEBサーバ | LB | AP | DB |
cloudfront | S3 | EC2 | ELB | EC2 | RDS |
サーバレスが向いている場合
上記に全てNoとなる場合は、サーバレスでの開発が向いています。
AWSを利用したサーバレスでのよくある構成としては、下記のような感じです。
CDN | 静的コンテンツ | WEBサーバ | APサーバ | DB |
cloudfront | S3 | API gateway | lambda | dynamoDB |
参考サイト
AWS Black Belt Online Seminarの記事が非常に参考になったので、記載しておきます。
・コンテナとサーバレスの使い分け
コメント