LoginSignup
7
5

More than 5 years have passed since last update.

AWS ECS(fargate)+ECR コンテナでバッチをつくる① ※CodeBuildの設定からECRの設定まで

Last updated at Posted at 2019-02-07

ECSでバッチを実行するシステムをつくります。
※今回の記事では、ECRにイメージファイルを登録するところまで

構成図 

aa.PNG

①CodeCommitにソースを登録する。

CodeBuildeで必要となる、buildspec.yml(ビルドの指示書)が必要となります。

https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/sample-docker.html

CC1.PNG

buildspec.yml
version: 0.2

phases:
  pre_build:
    commands:
      - echo Logging in to Amazon ECR...
      - $(aws ecr get-login --no-include-email --region $AWS_DEFAULT_REGION)
  build:
    commands:
      - echo Build started on `date`
      - echo Building the Docker image...          
      - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
      - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG      
  post_build:
    commands:
      - echo Build completed on `date`
      - echo Pushing the Docker image...
      - docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG

⇒内容は、ビルドをして、ビルド結果のイメージファイルをECRに登録するとなっています。

Dockerfile
FROM python:3.6.8-alpine3.8
WORKDIR /temp
COPY ./test.py .
CMD [ "python", "./test.py" ]
test.py
print("batch execute")

⇒文字列"batch execute"を出力するだけ

②ECRにリポジトリを登録する

リポジトリを登録(test)
ECR1.PNG
パーミッションの設定
(CodeBuildからイメージファイルを登録できるように)
※IAMでしばることもできますが、全員に指定のアクションを許可するようにしています。
ECR3.PNG
ECR4.PNG
ECR5.PNG

③CodeBuildでビルドし、イメージファイルをECRに保存する。

ビルドプロジェクト作成
※ソースは、CodeCommitで登録したものを設定
※環境変数は、buildspec.ymlに設定した変数の値を設定します。
 [AWS_DEFAULT_REGION] ※ECRリポジトリのリージョン
 [IMAGE_REPO_NAME ] ※ECRリポジトリ名
 [IMAGE_TAG ] ※ECRリポジトリのタグ名(ver)
 [AWS_ACCOUNT_ID ] ※AWSのアカウントID

CB1.PNG
CB2.PNG
CB3.PNG
CB4.PNG
CB5.PNG
CB7.PNG
CB8.PNG
CB6.PNG
ビルドプロジェクトに設定したサービスロールにECRへの操作権限を付与
IAM1.PNG
ビルドを実行すると、ECRにイメージファイルが登録されます。
CBS2.PNG
ECR6.PNG

↓↓↓
今回はここまでとします。

▼次の記事へ
AWS ECS(fargate)+ECR コンテナでバッチをつくる② ※ECSの設定からバッチ実行まで

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