LoginSignup
5
8

More than 1 year has passed since last update.

超簡単!Dockerを使ってサクッとAWS ECR + AppRunnerにPython + Flask環境

Posted at

タイトルは昔の記事をパクりました。以下の記事でプロニチをGCP(Cloud Run)からAWS(App Runner)に移行するにあたりApp Runner周りをまとめてみました。所々、固有名詞でpronichiとなっていますが私のプロジェクト名になるので参考にする方は任意で変更してください。

事前準備

  1. AWS Command Line 導入
  2. DockerイメージとFlask作成

AWS Command Line 導入

既に導入済だと思いますが念の為記載
AWS Command Line をインストール・更新

$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
$ sudo installer -pkg AWSCLIV2.pkg -target /

AWS Command Line 初期設定
予めIAMでユーザー作成しキーを取得してください。

$ aws configure --profile pronichi
AWS Access Key ID [None]: 
AWS Secret Access Key [None]: 
Default region name [None]: ap-northeast-1
Default output format [None]: json

Dockerfileイメージ作成、起動
DockerfileとFlask関連は以下を参照くださいませ。

$ docker build -t pronichi .
$ docker run --name pronichi -p 8080:8080 -v ~/Sites/pronichi/:/app -it --rm pronichi

Amazon ECR リポジトリ作成、プッシュ

ECRリポジトリ作成

$ aws ecr create-repository \
    --repository-name pronichi \
    --image-scanning-configuration scanOnPush=true \
    --region ap-northeast-1 \
    --profile pronichi

認証

$ aws ecr get-login-password --region ap-northeast-1 --profile pronichi | docker login --username AWS --password-stdin 758610380088.dkr.ecr.ap-northeast-1.amazonaws.com
Login Succeeded

リポジトリにイメージをプッシュ

$ docker tag pronichi:latest 758610380088.dkr.ecr.ap-northeast-1.amazonaws.com/pronichi:latest
$ docker push 758610380088.dkr.ecr.ap-northeast-1.amazonaws.com/pronichi:latest

スクリーンショット_2022-01-09_15.34.33.png

AppRunner作成・デプロイ

本当はCUIでやりたかったが、GUIで一旦

アップロードしたコンテナイメージ選択、他はデフォルト
確認画面にて「作成とデプロイ」ボタンを押すと初回のデプロイが開始

スクリーンショット_2022-01-09_15.59.17.png

デプロイ完了はログで確認

スクリーンショット_2022-01-09_17.02.20.png
スクリーンショット_2022-01-09_17.02.32.png

デプロイは初回は6分程度、2回目は5分程度かかっていた
GCPのCloud Runだともっと早い気がしたが正確に測っていないのでまた計測したいと思う。

デフォルトドメインにアクセスするとページが表示されることを確認

$ curl https://p6drxqx7ku.ap-northeast-1.awsapprunner.com/
TEST

以上

5
8
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
5
8