Slide 1

Slide 1 text

第7回 雲勉LT【オンライン︓初⼼者向け】 サーバレスコンテナサービス Lambda, App Runner, Fargateの特徴、違いを解説 2023/01/10

Slide 2

Slide 2 text

0.講師⾃⼰紹介 2 n 鈴⽊健⽃ 所属 クラウドインテグレーション事業部 構築第四セクション 経歴 • アイレットに2020年新卒で⼊社 • 新卒 3 年⽬(エンジニア歴 = 社会⼈歴) • 2022 APN ALL AWS Certifications Engineer • 2022 APN AWS Top Engineer • 2022年はJAWS-UGで 14 回登壇 @k_suzuki_pnx

Slide 3

Slide 3 text

アジェンダ 3 0. ⾃⼰紹介 1. 今回のLTの概要 2. コンテナの利便性 3. AWSのコンテナサービス - AWS Lambda - AWS App Runner - AWS Fargate 4. それぞれのサービスを⽐較 5. まとめ 6. 参考

Slide 4

Slide 4 text

1. 本LTの概要 4

Slide 5

Slide 5 text

1.本LTの概要 5 本LTは昨年 2022/11/28 〜 12/2 に開催された re:Innvent 2022 のセッション 「 Build your application easily & efficiently with serverless containers (CON309) 」 の内容を⽇本語で解説したものとなります。 動画︓https://www.youtube.com/watch?v=MqPxzWqttJs

Slide 6

Slide 6 text

1.本LTの概要 6 話すこと ・コンテナがなぜ便利なのか ・Lambda, App Runner, Fargate の概要 ・コンテナという⽂脈における、それぞれのサービス⽐較 話さないこと ・サービスの詳細な解説

Slide 7

Slide 7 text

2.コンテナの利便性 7

Slide 8

Slide 8 text

2.コンテナの利便性 8 ソフトウェア作成では 適切なビジネススケール/タイミング で、適切なツール選ぶ ことが必要 植物に例えると ・苗⽊に熊⼿を使うと、苗がダメになる ・⽊にジョウロで⽔をやっても意味がない

Slide 9

Slide 9 text

2.コンテナの利便性 9 今回は 効率性 と 簡易性 を考慮 ・効率性 費⽤に対するコンピューティング能⼒、システムに適しているか ・簡易性 簡単にシステムを構築できる、容易に習得できる

Slide 10

Slide 10 text

2.コンテナの利便性 10 簡易性 と 効率性 を考慮した際、 ビジネス規模によって柔軟にシステム変更が可能なツール そこで選ばれたのは… コンテナ

Slide 11

Slide 11 text

2.コンテナの利便性 11 新規プロジェクトのフェーズにおけるコンテナのメリット ・ビルド済みのコンテナイメージを使ってすぐに開発を始められる ・ツールの選定や環境構築に時間をかけなくていい 既存プロジェクトにおけるコンテナのメリット ・標準化されたフォーマット ・⾼額なVMを多く抱える必要がない ・ロールバックが簡単にできるので、デプロイの信頼性と再現性を担保できる

Slide 12

Slide 12 text

3. AWSのコンテナサービス 12

Slide 13

Slide 13 text

3. AWSのコンテナサービス 13 n AWSのサーバレスコンテナのサービス AWS Lambda AWS App Runner AWS Fargate

Slide 14

Slide 14 text

AWS Lambda サーバーをプロビジョニングしたり管理しなくてもコードを実⾏できるコンピューティングサービス 3. AWSのコンテナサービス 14 特徴 ・初回実⾏には時間がかかる(Cold start) ・1度実⾏されれば連続実⾏では Cold start 発⽣なし ・並列実⾏の場合はCold startが発⽣ ・料⾦はコードが実⾏された時間のみ

Slide 15

Slide 15 text

AWS App Runner フルマネージド型のコンテナアプリケーションサービス インフラ、コンテナの経験がなくても、コンテナ化されたウェブアプリケーションや API サービスを構築、デプロイ、実⾏できる 3. AWSのコンテナサービス 15 特徴 ・ロードバランシングはAWSがやってくれる ・インスタンスに対する同時接続数を制御できる ・設定したCPU, メモリに対して1分単位で課⾦ ・業務時間中だけ稼働するアプリに向いてる

Slide 16

Slide 16 text

AWS Fargate サーバーレスで従量制料⾦のコンピューティングエンジン 3. AWSのコンテナサービス 16 特徴 ・ロードバランシングは料⾦が分離 ・オーケストレーションはECS, EKSを使う ・インバウンドの通信にはELB, API Gateway ・確保されてるCPU, メモリに料⾦が発⽣ →トラフィックが0でも料⾦がかかる

Slide 17

Slide 17 text

4.それぞれのサービスを⽐較 17

Slide 18

Slide 18 text

4.それぞれのサービスを⽐較 18 n 料⾦ Lambda ・メモリサイズに基づくミリ秒単位の起動に対して課⾦ ・同時にLambdaが実⾏される場合、別々に課⾦ ・リクエストが届いた後に次のリクエストが届くまでの 数秒から数ミリ秒の間に発⽣するコストをゼロに App Runner ・ CPUとメモリサイズに基づいて、秒単位の課⾦ ・トラフィックが無い場合、メモリに対してのみ課⾦ ・トラフィックが発⽣した場合は、CPUに⼀律で課⾦ ・アプリケーションインスタンスが起動するたびに最低1分間起動 Fargate ・トラフィックの有無に関係なく、CPUとメモリに対して秒単位で⼀定の課⾦ ・他のリソースと組み合わせると別途課⾦が発⽣

Slide 19

Slide 19 text

4.それぞれのサービスを⽐較 19 n スケーリング Lambda ・インスタンスの起動は⾮常に早い →スパイクに対して迅速に対応 App Runner ・インスタンスを追加すると同時実⾏可能な容量が⼀気に増える ・応答が遅くなる可能性あり ・急激なスパイクがない限りはトラフィックを維持することが可能 Fargate ・スケーリングは⼀切組み込まれていない ・ユーザは⾃⾝の最適なスケーリングルールを設定する必要がある

Slide 20

Slide 20 text

4.それぞれのサービスを⽐較 20 n インバウンドのWEBトラフィック Lambda ・Lambda function URL (無料) か API Gateway (リクエスト単位で課⾦) App Runner ・内臓されており料⾦も意識する必要はない Fargate ・⼀切内蔵されていない ・API GatewayやALBを使う必要あり (トラフィックが少ない場合はAPI Gateway,トラフィックが多い場合はALB)

Slide 21

Slide 21 text

5.まとめ 21

Slide 22

Slide 22 text

5.まとめ 22 n 効率性 • 右に⾏くほどアクセスが安定 (左に⾏くほどスパイクが発⽣) • 上に⾏くほどリクエスト数が多い Lambdaはスパイクが発⽣したり リクエストの少ないシステム App Runnerはアクセスが多く ⼀定の間リクエストが 発⽣しない期間が存在するシステム Fargateはアクセスが多く安定したシステム 適したシステム

Slide 23

Slide 23 text

5.まとめ 23 n 簡易性 • 左に⾏くほど多くの制御が可能だが、少し複雑で多くの項⽬を設定する必要がある • 右に⾏くほど⾮常に簡単に設定することができ、AWSで完全に管理されている Lambdaはアプリケーションコードを 簡単に実⾏したい App Runnerはコンテナアプリケーションを 簡単に実⾏したい Fargateはロードバランシングや オートスケーリングなど コンテナ以外の設定も制御したい 適したケース

Slide 24

Slide 24 text

6. 参考 24

Slide 25

Slide 25 text

6.参考 25 ・re:Inventのセッション動画(英語) https://www.youtube.com/watch?v=MqPxzWqttJs ・私が書いた翻訳記事 (Qiita) 【re:Invent2022レポート】サーバレスコンテナを使ってより使いやすく、効率的なアプリケー ションを構築しよう (CON309)

Slide 26

Slide 26 text

26