Help us understand the problem. What is going on with this article?

Docker Private Registry を AWS Elastic Beanstalk で動かす

More than 5 years have passed since last update.

現在、一部のイメージファイルのアップロードで失敗しています。
多分、ファイルサイズの大きなイメージアップロード時にコケていると思うのですが…

コイツかな?(調査中) → https://github.com/docker/docker-registry/issues/916


Docker Private Registry for AWS Elastic Beanstalk

これは何?

Docker Private Registry を AWS Elastic Beanstalk に簡単に開始できる
インストールするもの: docker/docker-registry

どんな時に使うと良い?

  • 毎回buildは面倒なので、イメージを格納する場所が欲しい
  • DockerHubにイメージ置けるけど、公開したくない内容がDockerfile始めプロジェクトに含まれる
  • DockerHubのプライベートリポジトリーを利用しようにも、オンプレでないと社内のセキュリティ部門を通せない
  • DockerHub Enterpriseもあるけど、お金が…
  • S3にイメージを置いておけば、AWS内通信であれば高速にDeployできる!?(まだやってません。その内、試す予定です。)

デプロイ方法

1. S3に接続可能なIAM Userを用意する

IAM Userの作成については、コチラを参照。
AmazonS3FullAccessなどのS3にアクセス可能なポリシーが付与されていればOK
アクセスキーを下記で使用するので、アカウント作成時に生成するようにチェックし、保存しておくこと。

2. イメージなどの情報保存先のS3 Bucketを作成

  1. S3 Management Consoleへ移動する
  2. Create Bucketを選択する
  3. 任意の名前を入力し、バケットを作成する(ここで設定したバケットネームを以下で使用します)

3. AWS Elastic Beanstalk アプリケーションの立ち上げ

  1. Elastic Beanstalk Management Consoleへアクセスする
  2. Create New Applicationを選択する
  3. アプリケーション名を入力して「次へ」
  4. Environemtn tire = Web Server, Predefined configuration = Docker を選択
    (Environment typeは何でも良いが、ここでは Single instance を選択)
    Create_Environment.png
  5. Dockerfileのアップロード
    下記の内容で、Dockerfileという名前のファイルを作成し、Amazon Elastic Beanstalk にアップロードする
Dockerfile
FROM registry

ENV SETTINGS_FLAVOR s3
ENV STORAGE_PATH /registry
ENV SEARCH_BACKEND sqlalchemy

EXPOSE 5000
CMD ["docker-registry"]

4. 環境変数の設定

etr-docker-registry-env_-_Configuration.png

  • 左メニューのConfigurationを選択
  • Software Configurationを選択
  • 下記の環境変数を入力
    • AWS_ACCESS_KEY_ID: 1.で作成したIAMアカウントのAccess Key Idを入力
    • AWS_SECRET_KEY: 1.で作成したIAMアカウントのSecret Access Keyを入力
    • AWS_BUCKET: 2.で作成したバケットの名前を入力

完了!
勝手にインスタンスの再配置が実行されます。

注意点

  • 通信状況と選択したインスタンスサイズによっては、初回起動時にタイムアウトで終了することがある
  • タイムアウトしてしまった場合は、Configuration > Updates and Deploymentsからタイムアウト時間を伸ばして再度Deploy

使ってみよう

イメージのpushの方法はコチラのQiita記事を参照

参考

mikoto
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away