AWS App Runnerとは?特徴とFargateとの違い、料金について解説

AWSなどクラウドに関するお役立ち情報やイベント情報などをNTT東日本のクラソルメールマガジンにて毎週配信しております。ぜひご登録いただき、今後のクラウド活用の参考にしていただければと思います。
AWSが提供するサービスの一つであるAWS App Runnerとは、コンテナ化されたWebアプリケーションやAPIを、開発者が簡単にデプロイできるフルマネージドサービスです。
本記事では、AWS App Runnerの概要や、混同しやすいサービスであるAWS Fargateについて、4つの観点からの違いを解説します。AWS App Runnerの料金体系についても述べているため、本記事を読めば、AWS App Runnerについて理解できるでしょう。
1.AWS App Runnerとは?
AWS App Runner(アプリランナー)とは、AWS(Amazon Web Services)が提供するフルマネージドサービスで、コンテナ化されたWebアプリケーションやAPIを、開発者が簡単かつ迅速にデプロイできる特徴を持っています。
コンテナ化とは、アプリケーションを「コンテナ」と呼ばれる環境にパッケージ化し、コンテナエンジン上で動かす仮想化技術のひとつで、貨物列車や船に積まれ、貨物を輸送するための入れ物を想像してもらうとよいかもしれません。
コンテナ化は、VMなどのサーバー仮想化と異なりホストOSを共有するため、アプリケーションを高速かつ軽量に起動することが可能です。また、コンテナエンジンがインストールされた環境であれば同じ動きをするため、場所を選ぶことなくアプリケーションを起動できます。
コンテナ化の導入により、開発者はアプリケーションを迅速かつ安全に、作成およびデプロイが可能です。アプリケーションを一度作成すればどこでも実行できるコンテナ化は、障害の分離や管理のしやすさ、情報セキュリティ対策の簡素化など、多くのメリットが見込まれるでしょう。
AWSなどクラウドに関するお役立ち情報やイベント情報などをNTT東日本のクラソルメールマガジンにて毎週配信しております。ぜひご登録いただき、今後のクラウド活用の参考にしていただければと思います。
2.AWS App RunnerとAWS Fargateの違い
AWSが提供するAWS App Runnerの概要について解説しましたが、同じくAWSのサービスである「AWS Fargate(ファーゲート)」と混同してしまう方もいるのではないでしょうか。AWS Fargateとは、AWS Elastic Container Service(ECS)とAWS Elastic Kubernetes Service(EKS)で動作する、ホストマシンを意識せずにコンテナを実行する環境のことです。
AWS Fargateを利用すれば、「コンテナ」と「コンテナの実行環境」それぞれを管理する必要がなくなるため、コンテナ向けのサーバーレスコンピューティングといえるでしょう。AWS App RunnerとAWS Fargateとの違いは、以下の観点から解説します。
- インフラストラクチャの観点
- デプロイの観点
- スケーリングの観点
- コストの観点
4つの観点について、順番に見ていきましょう。
2-1.インフラストラクチャの観点
AWS App RunnerとAWS Fargateの違いとしてはまず、インフラストラクチャの観点が挙げられます。インフラストラクチャはインフラとも略され、組織内でソフトウェアアプリケーションを構築、および実行するために必要な構成要素を組み合わせたものです。
AWS App Runnerはコンテナイメージの構築やデプロイ、システムの性能や処理能力を、要求される処理能力に合わせて調節するスケーリングを行えるため、インフラストラクチャの詳細な設定を行う必要はありません。一方でAWS Fargateは、コンテナイメージのビルドやタスク定義の作成、クラスタの設定をはじめ、より多くのインフラの設定を行う必要があります。
AWS Fargateはインフラストラクチャの細かい設定をすることで、よりきめ細やかな制御が可能です。しかし簡易的なWebサービスを迅速に構築したい場合は、AWS App Runnerを活用する選択肢もあるため、用途によって使い分けるとよいでしょう。
2-2.デプロイの観点
次にAWS App RunnerとAWS Fargateとの違いとして挙げられるのが、デプロイの観点です。AWS APP Runnerはコードをリポジトリに接続し、ソースコードからコンテナイメージを構築してデプロイを行います。
リポジトリとは貯蔵庫や倉庫などを表す言葉で、設計や開発に関する情報を一時的に保存する場所です。代表的なものにGitHubやBitbucket、AWS CodeCommitなどがあり、システム開発やプロジェクト管理で使われることが多く、適切に情報を管理できます。
AWS App Runnerの場合、コードをリポジトリに接続してからデプロイを行うまでのプロセスが非常に簡略化されているため、手動操作を最小限に抑えることが可能です。一方でAWS Fargateの場合は、コンテナイメージをDockerイメージとして提供しなければなりません。
またタスク定義の作成を行い、サービスとタスクを実行するための基盤であるECSクラスタにデプロイするため、手動でより細かい設定を行うことが必要です。
2-3.スケーリングの観点
スケーリングの観点も、AWS App RunnerとAWS Fargateの違いとして挙げられるポイントです。上記でも触れましたが、スケーリングとはシステムの性能や処理能力を、要求される処理能力に合わせて調節することを指します。
AWS App Runnerは自動スケーリングを採用しているため、トラフィックに応じて、アプリケーションを自動的にスケーリング可能です。スケーリングポリシーや、境界線となる値であるしきい値の設定も、容易に行えます。
AWS Fargateにおいても、自動スケーリングをサポートしていますが、設定と管理がより詳細です。AWS Fargateの場合、ECSのタスクスケジューリングを使用し、スケーリングを制御する必要があります。
AWS FargateはAWS App Runnerと比較して、より高度なスケーリング制御が可能となりますが、設定に手間がかかる点は、違いとして知っておきたいポイントといえるでしょう。
2-4.コストの観点
最後にAWS App RunnerとAWS Fargateの違いとして挙げられるのは、コストの観点です。AWS App Runnerの詳しい料金体系については後述しますが、AWS App Runnerは、アプリケーションの実行時間に応じて課金されます。
一方でAWS Fargateの場合、タスクの実行時間やリソースの使用時間に対して課金される仕組みです。使用したCPUやメモリ、ネットワークトラフィックに応じて料金が発生します。
AWS App RunnerとAWS Fargateのさまざまな観点の違いについて見ていきましたが、AWS Fargateの詳しい概要や利用メリット、ユースケースなどは、以下の記事で詳しく解説しています。ECSの違いと関係性や、料金体系についても記載していますので、ぜひ読んでみてください。
3.AWS App Runnerの料金
前述しましたが、AWS App Runnerは、アプリケーションで使用されるコンピューティングおよび、メモリリソースに対して課金される方式です。「コンテナインスタンス」が起動している時間と、割り当てられている「vCPU」、「メモリ」分の料金が発生し、AWSのサービスで多く取り入れられている従量課金制ではないことは、注意しておきましょう。
公式ページの「AWS App Runnerの料金(AWS)」によると、2023年12月現在で設定されている東京リージョンの料金は、以下の通りです。
| プロビジョニングされたコンテナインスタンス | 0.009USD/GB時 |
|---|---|
| アクティブなコンテナインスタンス |
0.081USD/vCPU時 0.009USD/GB時 |
※2023年12月時点の料金です。
アプリケーションのデプロイ時には、プロビジョニングされたメモリに対して料金が発生します。
アプリケーションがリクエストを処理する際に、プロビジョニングされたコンテナインスタンスからアクティブなコンテナインスタンスに切り替わり、アクティブなコンテナインスタンスは、メモリリソースとコンピューティングリソースの両方を消費します。
プロビジョニングされたコンテナインスタンスによって、割り当てられたメモリを超えるコンピューティングおよび追加メモリの消費分の料金は、ユーザーの負担となりますが、アクティブなコンテナインスタンスの数に上限を設定することもできるため、予算を超えないように設定しておくとよいでしょう。
また、上記は東京リージョンの料金ですが、リージョンにより料金は異なります。公式ページには米国東部(バージニア北部)および米国東部(オハイオ)、米国西武(オレゴン)、欧州(アイルランド)リージョンの料金が大きく記載されているため、他リージョンを設定している場合は、間違えないようにしてください。
またデプロイにかかった時間単位の費用や、自動デプロイオプションなどの費用も発生します。料金は変わる可能性もあるため、AWS App Runnerを利用する際は、公式ページで利用時の費用を確認してから利用してください。
AWSなどクラウドに関するお役立ち情報やイベント情報などをNTT東日本のクラソルメールマガジンにて毎週配信しております。ぜひご登録いただき、今後のクラウド活用の参考にしていただければと思います。
4. 実際に構築してみた
では、ここからは実際の構築の仕方を具体的に解説していきます。

AWSにしては珍しく、ダッシュボード画面に料金が表示されています。
デプロイ1回につき$1で構築は分単位で課金されるみたいです。ビルドが長くなる、ファイルの配置に時間がかかるとコストが増していくようです。

「App Runner サービスを作成」を押下したらこの画面になりました。
リポジトリタイプは2種類あり、コンテナレジストリとソースコードリポジトリから選択できるようです。コンテナレジストリECRのみ。Docker Hubは選択できません。

ソースコードはBitbucketとGitHubのみです。CodeCommitは対応してないのですね。
ECRからイメージを作成するのは、想像がつくのですがソースコードレポジトリの場合はどうなるのでしょうか。Dockerfileを読み取って一式ビルドしてくれるのでしょうか。ソースコードリポジトリの方が興味深いので今回はこちらを試してみたいと思います。

上記の設定をします。GitHubのリポジトリ指定が必要です。

このように設定しました。上記リポジトリはまだ何も入っていません。

一旦手動で設定します。

「次へ」ボタン押下で上記の画面になりました。
設定ファイルを使用できるのですが、CircleCI等のサービスに似ていますね。

ランタイムが選択できるのですが、Lambdaみたいに出力さえ設定すれば勝手にHTTPにしてくれるのでしょうか。

ランタイムを選択したら上記画面になりました。
なるほど、流石にそうですよね。

上記のように設定しました。

「次へ」ボタンを押下したところ、設定値がいくつか出てきました。今回は動作確認なので最小構成で進めたいと思います。

デフォルト設定を下記のようにしました。

全て1です。

ヘルスチェックも出来るだけ大きくしました。

WAFが設定できるのは素晴らしいですね。今回は設定しませんが、WAFが設定できるとIP制限やメンテナンス画面が出力できるようになりますので、助かります。

ネットワーク設定で、AWS内での閉域が設定できます。業務アプリにも展開出来るのは素晴らしいと思います。ガバナンスで制限されている組織にも嬉しい機能です。カスタムVPCはRDSとの接続に使用します。

上記の設定はデフォルトのまま進めます。

「次へ」ボタンを押下したところ、確認画面と作成とデプロイになったのですが、リポジトリに何も入ってないのでリポジトリの中身を作成したいと思います。ちなみにこの画面から移動してしまうと、それまでの設定は無かったことになります。先にリポジトリを作るのをお勧めします。

ヘルスチェックに無茶苦茶な値を入れたところエラーになりました。20以下で設定しなおしました。

デプロイを開始したところ上記画面になりました。

アプリケーションログも参照できました。私の設定が間違っており0.0.0.0で起動したいので修正したいのですが、

グレーアウトされたままになっており、まだ編集できないようです。
この間も

となっており、課金時間として計上されているのでしょうか。
非常に不安です。

一時停止もグレーアウトしており、停止する手段がありません。

適当に設定したヘルスチェックのせいで、19秒でタイムアウトをするのを20秒の間隔で20回失敗しないと操作出来ないのかもしれません。
ダメ元でCLIを試します。

CLIの表示としてはCREATE_FAILEDになっていました。

削除コマンドを受け付けたようです。

Web側では上記のようになりました。CLIが効いてよかったです。ちょっと冷や汗をかきました。
再度サービスを作り直していきます。

ヘルスチェックは上記のようにすぐに失敗を検知できるようにしました。


4分程度でデプロイが完了しました。
が、URLにアクセスしてもアクセス出来ません。
思い当たる節はポートです。80に変更して実行してみます。

ログに表示してくれるのは非常に有難いです。

Hello worldが表示されました!これは便利ですね。
そして、一番試したかった機能、自動デプロイです。こちらを試したいと思います。

を

にしました。

を

に変更し、pushしました。
ログの更新ボタンを何度か押していたら検知しました。


しばらく待ったところ表示されました。

11:16:53にpull
11:19:36にヘルスチェックがOKになりルーティングが開始された模様です。
5. AWS App Runnerを利用した開発ならぜひNTT東日本にご相談ください
コンテナベースのアプリケーションを素早くデプロイできる「AWS App Runner」は、2021年の5月に公開された、まだ新しいサービスです。App Runnerは同じくコンテナを実行できるサービスであるAWS Fargateと比較しても、操作や設定が簡単であるため、今後より多くの企業で取り入れられていくことが想定されます。
ただし、まだ新しいサービスであるため、いまいち使い方がわからず戸惑ってしまう場合もあるのではないでしょうか。そのような時はぜひ、NTT東日本のクラウドに関するご相談やお問い合わせフォームをご活用ください。
AWSをはじめ、Azureや数々のクラウドサービスの知識を豊富に持つクラウドのプロが、あなたのお悩みや疑問に応えます。相談方法は、フォームに必要事項を記載して、「送信する」ボタンを押すだけです。
悩んでインターネットを検索して、また迷って、を繰り返すのではなく、私達にお任せください。お問い合わせフォームは下記ページに設置していますので、ぜひお問い合わせをお待ちしています。
6. まとめ
AWS App Runnerは、AWSが提供するサービスのひとつで、コンテナ化されたWebアプリケーションやAPIを、簡単かつ迅速にデプロイできるフルマネージドサービスです。一度アプリケーションを作成してしまえば、どの環境でも実行できるAWS App Runnerは、これから多くの企業で取り入れられていくことでしょう。
しかしまだ2021年と新たにリリースされたサービスであるため、未だ知識不足や活用方法について悩む方も少なくありません。AWS App Runnerについてお悩みがあれば、ぜひNTT東日本のクラウドに関するご相談・お問い合わせフォームをご利用ください。
お問い合わせをいただければ、クラウドについて知識豊富なクラウド担当者が、お悩みの解決に向けて徹底的にサポートします。下記ページよりお問い合わせを承っていますので、ぜひ一度ご覧ください。
面倒でお困りのあなたへ
クラウドのご相談できます!
オンライン相談窓口
NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!
NTT東日本が選ばれる5つの理由
- クラウド導入を
0からワンストップでサポート可能! - 全体最適におけるコスト効率・業務効率の改善を
中立的にご提案 - クラウド環境に問題がないか、
第3者目線でチェック
してもらいたい - 安心の24時間・365日の対応・保守
- NTT東日本が保有する豊富なサービスの組み合わせで
”課題解決”と”コスト軽減”を両立
特に以下に当てはまる方はお気軽に
ご相談ください。
- さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
- オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
- オンプレミスとクラウド移行した際のコスト比較を行いたい
- AWSとAzure、どちらのクラウドが自社に適切かわからない
- クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
- クラウド利用中、ネットワークの速度が遅くて業務に支障がでている
クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。




