LoginSignup
0
0

More than 5 years have passed since last update.

baenstalk single dockerでflaskを動かす

Posted at

動機

たまに動かす画像処理サーバを建てる必要があり
- 瞬間的にそこそこCPU欲しい
- 継続的には動かさない
- autoscaleしたい
- メモリはほとんど使わない
となり

  • ECS
    EC2とdockerの管理したく無い

  • fargate
    高い

  • Beanstalk
    t3.micro or t3.small unlimited を常時2台くらい並べるのが、しゅごいコスパな気がする。い。

docker 作る

docker image

docker run -p 80:80 で、80番ポートでflask起動するdocker imageを作っておく。
ちなみにflaskでもrailsでもtomcatでも、docker runで80番ポートで起動するようにしたら、何でもいける。
別に80番じゃなくてもいいけど。

ECRにpushしておく

push push!!

beanstalk設定

awsebcli入れて、新規ebアプリを作る
```
pip install awsebcli

eb init hoge
```

eb 環境作成

cliから作ると初期設定関係で色々とはまったので、consoleから作った。
ブラウザからaws consoleを表示し、新規環境構築。

  • 環境名 hoge-env
  • VPCとサブネットを選択する
  • NAT使わない場合は、インスタンスにpublic ipを振る

IAMにECR権限あたえる

aws-elasticbeanstalk-ec2-roleへ、AmazonEC2ContainerRegistryReadOnlyを与えておく

デプロイ

eb use hoge-env

# 設定ファイル作る
touch Dockerrun.aws.json
Dockerrun.aws.json
{
    "AWSEBDockerrunVersion": "1",
    "Image": {
      "Name": "99999999999.dkr.ecr.ap-northeast-1.amazonaws.com/your-dockername:latest",
      "Update": "true"
    },
    "Ports": [
      {
        "ContainerPort": "80"
      }
    ]
  }
# deployコマンドで起動する
eb deploy

INFO: New application version was deployed to running EC2 instances.
INFO: Environment update completed successfully.     

成功!!

0
0
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
0
0