2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

 こんにちは。タイトルのとおり、App Runnerを使ってみた記事になります。
 App Runnerがどういったサービスなのかざっくり言うと、VPCなどのインフラ側の構成をAWS側でいい感じにやってくれて、アプリケーションの構築とデプロイができるサービスです。
 もし、EC2やEKSでアプリケーションを構築する場合、VPCやサブネット、セキュリティグループなどネットワーク関係の構築は必須ですが、App Runnerではネットワーク関係をAWS側でやってくれます!なんて便利!!そんなサービスになります。詳細は、公式ドキュメントをご確認ください。 

構築手順

 早速ですが、App Runnerの構築手順を紹介します。大まかな流れは下記になります。あくまでも「とりあえず動かしてみた。」のレベルになりますのでご留意ください。

  • ECR作成
  • Cloud9構築 (今回はイメージ作成をCloud9から行います。)
  • Cloud9からイメージをプッシュ
  • App Runner構築

 ※当たり前ですが、何かの案件などで用いる場合は、可用性、セキュリティなど要件を満たすように注意しましょう。

ECR作成

 ECRのサービス画面に接続し、プライベートリポジトリを作成します。検証のテストのため、基本的にデフォルト値で大丈夫です。
image.png

Cloud9構築

 今回は、イメージ作成のためにCloud9を利用します。目的はECRにイメージを作ることなので、Cloud9を使わずにイメージを作成しても大丈夫です。
image.png
image.png

Cloud9からイメージをプッシュ

 Cloud9の環境に接続して下記ファイルを作成します。

  • app.js
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

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

app.listen(port, () => {
  console.log(`App running on port ${port}`);
});
  • package.json
{
  "name": "aws-app-runner-demo",
  "version": "1.0.0",
  "description": "A simple Node.js app for AWS App Runner",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "^4.17.1"
  },
  "engines": {
    "node": ">=14.0.0"
  }
}
  • Dockerfile
# Use the official Node.js image from the Docker Hub
FROM node:14

# Create and change to the app directory
WORKDIR /usr/src/app

# Copy application dependency manifests to the container image.
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy local code to the container image.
COPY . .

# Run the web service on container startup.
CMD [ "npm", "start" ]

# Expose the port the app runs on
EXPOSE 3000

 各ファイルの作成後、Cloud9のターミナルで以下コマンドを実行します。コマンドは作成したECRの「プッシュコマンドを表示」から確認することもできます。

$ aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin [AWSのアカウント番号].dkr.ecr.ap-northeast-1.amazonaws.com
$ docker build -t [ECRのリポジトリ名] .
$ docker tag qiita_test:latest [ECRのURI]:latest
$ docker push [ECRのURI]:latest

 コマンド実施後、ECRにイメージがあることを確認しましょう。
image.png

App Runner構築

 先ほど作成したECRを選択します。ソースコードリポジトリとしてGitHubを選択することもできます。
image.png

 App Runnerで構築されるコンテナの詳細を設定します。作成したコードに合わせて「ポート」は「3000」を設定します。
image.png

image.png

image.png

image.png

 最後に設定した内容を確認し、問題なければ、「作成とデプロイ」をクリックします。下記は正常にデプロイされたApp Runnerの画面です。

image.png

 作成された「デフォルトドメイン」にGoogleChromeやEdgeなどブラウザで接続します。下記画面が表示されたら成功です。
image.png

最後に

 いかがでしたでしょうか。VPCなどインフラ周りの構築なしでここまで構築できるのは、非常にラクですね!色々触ってみると、カスタムVPCにApp Runnerをデプロイしたり、WAFを関連付けできるなど、色々と機能がありそうです。その他の機能については、また別のタイミングで紹介できればと思います。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?