EC2 Image Builder 파이프라인을 업데이트하는 방법

EC2 Image Builder란?



AMI 작성을 자동화해 주는 툴(패키지 인스톨등을 해 준다).

Developers.IO: EC2의 이미지 생성을 극적으로 효율화하는 EC2 Image Builder가 발표되었습니다! #reinvent
Qiita : EC2 Image Builder를 만져 보았습니다.

파이프라인을 업데이트할 수 없음



조속히 사용해 보았지만,
AMI 작성용 파이프라인(Image pipelines)을 만든 후 콘솔을 봐도 패키지(빌드 컴포넌트)를 추가하는 방법을 몰랐다.
나중에 추가하고 싶은 패키지가 늘어나면 어떨까요?
정확하게 말하면, 레시피의 New Version은 만들 수 있지만 파이프라인에 반영할 수 없다(뭐야).

파이프라인 업데이트 가능



콘솔 뿐이라면 할 수 없어, AWS CLI라고 할 수 있는 것이 판명 1

update-image-pipeline
get-image-pipeline

<순서>

업데이트 전에는 이런 느낌

  • 우선 콘솔로부터 레시피의 New Version을 만든다.
    Image Builder 콘솔 → Recipes

    원하는 레시피를 선택하고 Actions → Create New Version

    설정을 해 간다. ※「Version」의 입력을 잊지 않도록.

    레시피의 작성이 끝난 곳.

  • AWS CLI에서 "Image pipelines"설정을 가져옵니다.
    aws imagebuilder get-image-pipeline \
    --image-pipeline-arn \
    <Image pipelinesのARN> \
    --query 'imagePipeline.{imageRecipeArn:imageRecipeArn,infrastructureConfigurationArn:infrastructureConfigurationArn}'
    
    {
        "imageRecipeArn": "arn:aws:imagebuilder:<Region>:<accountID>:image-recipe/<RecipeName>/1.0.0",
        "infrastructureConfigurationArn": "arn:aws:imagebuilder:<Region>:<accountID>:infrastructure-configuration/<PipelineName>-infrastructureconfiguration-xxxxxxxxxxxx"
    }
    
    # エラーが出たら、AWS CLIのバージョンが低いかも(コマンドが存在しないのでエラーになる)。  
    usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
    To see help text, you can run:
    
      aws help
      aws <command> help
      aws <command> <subcommand> help
    aws: error: argument command: Invalid choice, valid choices are:
    
    # 少なくとも 1.16.302 で動く事を確認。
    $ aws --version
    aws-cli/1.16.302 Python/3.7.4 Linux/5.3.12-1-MANJARO botocore/1.13.38
    $ aws imagebuilder help
    IMAGEBUILDER()                                                  IMAGEBUILDER()
    
    NAME
           imagebuilder -
    
    DESCRIPTION
           Amazon  Elastic Compute Cloud Image Builder provides a one-stop-shop to
           automate the image management processes.  You  configure  an  automated 
    

  • AWS CLI에서 "Image pipelines"레시피를 업데이트합니다.
    aws imagebuilder update-image-pipeline \
    --image-pipeline-arn \
    <Image pipelinesのARN> \
    --infrastructure-configuration-arn \
    <2.で取得した"infrastructureConfigurationArn"> \
    --image-recipe-arn \
    <1.で新しく作ったRecipesのARN>
    
    {
     "requestId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    }
    

  • AWS CLI에서 Image pipelines 설정을 확인합니다(2.와 동일한 명령).
    aws imagebuilder get-image-pipeline \
    --image-pipeline-arn \
    <Image pipelinesのARN> \
    --query 'imagePipeline. 
    {imageRecipeArn:imageRecipeArn,infrastructureConfigurationArn:infrastructureConfigurationArn}'
    
    {
        "imageRecipeArn": "arn:aws:imagebuilder:<Region>:<accountID>:image-recipe/<RecipeName>/1.0.1",
        "infrastructureConfigurationArn": "arn:aws:imagebuilder:<Region>:<accountID>:infrastructure-configuration/<PipelineName>-infrastructureconfiguration-xxxxxxxxxxxx"
    }
    

    ※imageRecipeArn의 말미의 버젼이 오르고 있다

  • 콘솔에서도 업데이트 할 수 있는지 확인!




    AWS 지원에 문의한 결과 API는 있지만 현시점(2019/12/03)에서 콘솔에서 조작할 수 없다는 것(이런 패턴은 드물게 자주 있다).

    좋은 웹페이지 즐겨찾기