m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

AWS App Runnerのチュートリアルをやってみた

このチュートリアルです

github.com

元はこれらしい

www.apprunnerworkshop.com

で、App Runnerって何なの?

aws.amazon.com

ふむ、要はECSとかをわざわざ準備しないで簡易的なデプロイ環境を準備してくれるって感じかな ECRとgithubの2つしかないのが難点とかかね

とりあえず、やってみました。

準備

ソースリポジトリgithub

https://github.com/mshige1979/simple-express-app

※時間が経ったら消すと思います

手順

ローカルで動作検証するためにdockerを用意

# FROM
FROM node:12.22

# 環境変数
ENV TZ Asia/Tokyo
ENV LANG C.UTF-8

# 開発用パッケージインストール
RUN apt-get update -qq && \
    apt-get clean && \
    rm -rf /var/cache/apt

# 作業ディレクトリ
WORKDIR /app

# コピー
COPY . /app

# npm install
RUN cd /app && \
    npm install

# ポート
EXPOSE 5000

# パラメータ未指定時の起動コマンド
CMD bash -c "npm install && node index.js"

package.json

{
  "name": "apprunner_example",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "express": "^4.17.1"
  },
  "devDependencies": {},
  "author": "",
  "license": "ISC"
}

index.js

const express = require("express");
const app = express();
const port = 5000;

app.get("/", (req, res) => {
  res.send("Hello World!");
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});

ローカル環境で動作することを確認

AWS App runnerで「サービスを作成」を選択

「ソースリポジトリ」を選択し、「新規追加」を行う

↓ 認証する

↓ 接続名を設定し、新しい接続をセットアップする

↓ アカウントまたは組織を選択する

↓ 対象リポジトリを指定

↓ 次へ

リポジトリやブランチを設定して次へ

初期設定パラメータなどを設定し、次へ

サービス情報を定義

設定情報を確認し、デプロイ実施

5-10分くらい待つ

自動デプロイ用にコードを書き換えてプッシュ

index.js

const express = require("express");
const app = express();
const port = 5000;

app.get("/", (req, res) => {
  res.send("Hello World! App Runner Test");
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});

デプロイ時間はこんな感じ

所感

ある程度自動でやってくれるところはありがたい
きちんと全部自前のサービスの細かいところを制御したい場合は自前になるのかも

ネットワーク環境とかがApp runner内で制御されているけどVPCを設定してなんかできそうか試してみる RDSに繋げないとかだとほとんど使い道なさそうなんで・・・