プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • AWS
  • 【AWS】App Runnnerについて
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【AWS】App Runnnerについて

10.09

  • miyabisan2
  • コメントを書く

この記事は3分で読めます

App Runnerとは?

フルマネージド型のコンテナアプリケーションサービスです。

インフラやコンテナの経験がなくてもコンテナ化されたWebアプリケーションやAPIサービスを構築、デプロイ、実行することが可能です。

特徴

  • ECRにコンテナイメージをプッシュ or GitHubにソースコードをpushするとそれを検知してApp Runnerがコンテナをデプロイする。
  • コンテナがデプロイされるとApp Runnerがマネージドのロードバランサを設定してくれる。
  • VPC周り、Auto Scaling、CodeBuild等をApp Runnerがまとめて隠蔽して提供してくれる。

イメージ

特に強力なのは「Github」などのソースコードから直接コンテナイメージをビルドしてデプロイしてくれる機能と言えるでしょう。コンテナをはじめインフラのことが全くわからないソースコードだけ保持しているという状況でも簡単にインフラ構築ができます。

ソースコードからコンテナイメージのビルドする際のサポートランタイム

現在サポートされているランタイムは以下です。

  • Python
  • Java
  • Node.js

もちろんこれら以外の言語でも事前にコンテナイメージをビルドしてECRなどのレポジトリに格納する形を取れば普通に使用することが可能です。

開発者が意識すること

基本的な細かいインフラ設定(ロードバランサーやオートスケールなど)は隠蔽されています。

開発者が唯一意識することとしては「コンテナインスタンスの集合」のみになります。

手順

  • IAMユーザーを作成する。
  • AWS CLIでユーザーを登録する。
  • デプロイ

デプロイ

以下のような形式のデフォルトドメインが自動生成されます。

1
https://xxxxxxx.<region>.awsapprunner.com

もちろん任意のドメインでも設定が可能です。(カスタムドメイン)

自動デプロイ

ソースコードやソースイメージの変更を検知して自動でダウンタイムなくデプロイが可能です。以下のようなツールを利用しなくても勝手にAppRunnerがデプロイを自動的にやってくれます。

  • CodePipeline
  • CodeDeploy
  • サードパーティ製品

内部的には「ブルーグリーンデプロイ」を自動でやってくれる感じです。

オートスケール

トラフィックサイズに応じてオートスケールしてくれる。閾値とコンテナの最小/最大数を決めます。

以下のような挙動になります。

  • トラフィックが増えるとコンテナの台数を増やす。
  • トラフィックが減るとコンテナの台数を減らす。

ログ

ログとメトリクスを自動で収集してくれます。アプリ内で出力した標準出力、標準エラー出力それぞれ出力してくれることになります。AppRunnerコンソールから確認可能です。

メトリクス

  • CPU使用率
  • HTTPのリクエストカウント

また、最近のアップデートで「AWS X-Ray」との統合によりトレースデータのモニタリングも可能になりました。

セキュリティ

TLSを自動で設定します。各コンテナは独立した環境で実行されます。デフォルトドメインがHTTPSになっていてこれはTLSを自動で設定してくれているからの挙動になります。

各コンテナは独立した環境で実行されるので他のコンテナからの影響は受けないような作りになります。

VPCサポート

VPCコネクターを設定することで自身のVPC内にあるリソース(RDS、ElastiCacheなど)に接続が可能になります。

VPCも基本的に開発者が独自に設定するVPCとは独立した存在になっているので、接続したいVPCネットワークに対してネットワークインターフェース(Elastic network interface)をはやすことで接続が可能になります。

App Runnerのユースケース

基本的にはスタートアップとか新規事業とかのプロダクトの立ち上げ期に有効ですが、それ以外の場合でも使えます。インフラよりもプロダクト開発に集中したいようなシチュエーションで使えたりします。

モノリスアプリケーション

バックエンドとフロントエンドが一緒になったアプリケーション

モバイルバックエンド

モバイルアプリケーションのバックエンド

マイクロサービス/API

マイクロサービスやAPI

アプリ開発の機能

設定値を環境変数として管理できる機能があります。

スポンサーリンク
  • 2023 10.09
  • miyabisan2
  • コメントを書く
  • AWS
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2020 06.16

    【AWS】「CloudFront」の設定など

  2. 2020 07.11

    【AWS】「RDS」の冗長化、リードレプリカの活用事例

  3. 2021 11.20

    【AWS】「ElasticCache」、「DynamoDB」、「RDS」、その他サービスの違い

  4. 2020 06.15

    【AWS】WebサーバーにWordPressをインストールする。

  5. 2021 01.11

    【AWS】「AWS CLI」、初期設定、コマンドの基本、環境別設定(prod、dev)

  6. 2021 01.01

    【AWS】「AWS Well-Architected Framework」とは?

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【VSCode】devContainer

【Laravel】Windowsの環境構築

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー