【AWS】ECRにRailsのdockerイメージをpushする方法

aws

こんにちは!

エンジニアのオオイシ(@mako_0705)です!

今回は、dockerで作ったRuby on Railsの環境をAmazon ECS + AWS Fargate へデプロイする方法を試したので紹介していきたいと思います。

Amazon ECS(Amazon Elastic Container Service)とは、dockerコンテナの実行や停止、スケールなどを管理するためのサービスです。

AWS Fargateとは、サーバーやクラスタが不要ないわゆるサーバーレス環境のことです。

これらを組み合わせることで、インフラのリソースを気にしなくても、dockerのコンテナ単位で簡単にスケールさせることができます。

今回は、サーバーレスRails環境を整えるためのECR作成編です。

ECR(Amazon Elastic Container Registry)とは、コンテナイメージを保存するためのリポジトリで Docke Hub のAWS版です。

AWSのコンテナサービスについては、Black Belt で詳しいスライドがあるので、ぜひ、確認してみてください。

DockerでRails環境を構築する

dokerを使ったローカル開発環境とコンテナの作り方はこちらの記事を参照してください。

Amazon ECR(Elastic Container Registry)にdockerイメージを保存する

ECRとは、dockerイメージを保存するための、プラベートリポジトリサービスです。

今回はRuby on Railsのdockerイメージを保存します。

ECRリポジトリを作成する

リポジトリ名を my_rails_app と入力して「リポジトリの作成」をクリックします。

このように、リポジトリが作成できました。

docker イメージをECRへプッシュする

はじめに、dockerイメージをビルドしておきます。

ECRへdockerイメージをpushする為に、

  1. 先ほど作成したECRリポジトリのURI名でタグづけし、
  2. awsコマンドを実行し、ECRへのログインコマンド(docker login)が得られるのでコピペで実行
  3. docker push する

と言った流れになります。

タグづけ:

profileの作成(初回):

aws docker ecr get-login:

コピペで実行してLogin Succeededと出れば成功です。

docker push:

このようにイメージが登録されれば成功です。

次回は、ECS + Fargate でサーバーレス環境を構築していく方法について紹介していきます!

お楽しみに!