Bitbucket is getting a new navigation

We’re rolling out these changes, so the documentation may not match your experience in the Bitbucket Cloud app. Read about the new Bitbucket navigation

Elastic Beanstalk を使用して AWS にデプロイする

Elastic Beanstalk を使用すると、アプリケーションを実行するインフラストラクチャについて心配することなく、AWS Cloud でアプリケーションを迅速にデプロイおよび管理できます。Elastic Beanstalk は、選択肢や管理性を制限することなく、管理の複雑さを軽減します。アプリケーションをアップロードするだけで、Elastic Beanstalk は容量のプロビジョニング、ロード バランシング、拡張、およびアプリケーションの健康状態の監視の詳細を自動的に処理します。

始める前に

  • アプリケーションへのデプロイや S3 バケットへのアーティファクトのアップロードを行うための十分な権限が構成されている IAM ユーザー。

  • Elastic Beanstalk アプリケーションと環境が構成されていること。

  • デプロイメント アーティファクトがコピーされる S3 バケットをセットアップしていること。S3 バケットの名前は次のようになります: 
    "<application name>-elasticbeanstalk-deployment" となります。ここで <application name> は Elastic Beanstalk アプリケーションの名前です。

手順

  1. Clone the Elastic Beanstalk pipe example repository

  2. AWS 資格情報を Bitbucket Pipelines に追加します。リポジトリで [設定] に移動し、[パイプライン] で [リポジトリ変数] を選択し、次の変数を追加します。

    基本的な用途のための変数 

    • AWS_ACCESS_KEY_ID (*): ご使用の AWS アクセス キー。

    • AWS_SECRET_ACCESS_KEY (*): ご使用の AWS 秘密アクセス キー。セキュアな変数として保存されている必要があります。

    • AWS_DEFAULT_REGION (*):  The AWS region code (us-east-1, us-west-2, etc.) of the region containing the AWS resource(s). For more information, The AWS region code (us-east-1, us-west-2, etc.) of the region containing the AWS resource(s). For more information, see Regions and Endpoints.

    • APPLICATION_NAME (*): Elastic Beanstalk アプリケーションの名前。

    • ENVIRONMENT_NAME (*): 環境名。

    • ZIP_FILE (*): デプロイするアプリケーション ソース バンドル (zip、jar、war)。

    • (*) = 必須の変数。

    image: atlassian/default-image:2 pipelines: default: - step: name: "Build and Test" script: - pytest test/test.py - zip application.zip Dockerfile application.py cron.yaml Dockerrun.aws.json # Define an artifact to pass the zip file to the next step artifacts: - application.zip - step: name: "Deploy to Production" # Track production environments builds using deployments. deployment: production script: - pipe: atlassian/aws-elasticbeanstalk-deploy:0.5.0 variables: AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION: "us-east-1" APPLICATION_NAME: "application-test" ENVIRONMENT_NAME: 'production' ZIP_FILE: "application.zip"

既定では、新しいアプリケーション リビジョンにバージョン ラベルが設定されます。

"<アプリケーション名>-<bitbucket ビルド番号>-<短いコミット ハッシュ>" ただし、この内容は VERSION_LABEL 変数を使用して変更できます。

結果

これで、新しいバージョンのアプリケーションを Elastic Beanstalk にデプロイするようにセットアップできました。

高度な使用

高度なユース ケースでは、build once and deploy many アプローチをおすすめします。複数の環境がある場合、COMMAND 変数を使用して、CI/CD ワークフローを別の操作/パイプに分割します。

  • COMMAND: 'upload-only': アーティファクトをアップロードし、Elastic Beanstalk にバージョンをリリースします。

  • COMMAND: 'deploy-only': 指定したバージョンを対象の環境にデプロイします。

Upload-only 用の変数

  • AWS_ACCESS_KEY_ID (*): ご利用の AWS アクセス キー。

  • AWS_SECRET_ACCESS_KEY (*): ご使用の AWS 秘密アクセス キー。 

  • AWS_DEFAULT_REGION (*):  The AWS region code (us-east-1, us-west-2, etc.) of the region containing the AWS resource(s). For more information, see Regions and Endpoints.

  • APPLICATION_NAME (*): Elastic Beanstalk アプリケーションの名前。

  • COMMAND (*): デプロイ中に実行されるコマンド。有効なオプションは allupload-onlydeploy-only です。既定: all

  • ZIP_FILE (*): デプロイするアプリケーション ソース バンドル (zip、jar、war)。

  • S3_BUCKET: アーティファクトを格納するために Elastic Beanstalk によって使用されるバケット名。既定: ${APPLICATION_NAME}-elasticbeanstalk-deployment}

  • VERSION_LABEL: 新しいアプリ リビジョンのバージョン ラべル。既定: ${ENVIRONMENT_NAME}_${BITBUCKET_COMMIT:0:8}_YYYY-mm-dd_HHMMSS)

  • DESCRIPTION: 新しいアプリケーション リビジョンの説明。既定: パイプラインの結果ページを示す URL。

  • DEBUG: 追加のデバッグ情報を有効化します。既定: false

    (*) = required variable.

アーティファクト application.zip, をアップロードし、Elastic Beanstalk でバージョン deploy-$BITBUCKET_BUILD_NUMBER-multiple を作成します。

pipe: atlassian/aws-elasticbeanstalk-deploy:0.5.0 variables: AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION APPLICATION_NAME: 'application-test' COMMAND: 'upload-only' ZIP_FILE: 'application.zip' S3_BUCKET: 'application-test-bucket' VERSION_LABEL: 'deploy-$BITBUCKET_BUILD_NUMBER-multiple'


Deploy-only 用の変数

  • AWS_ACCESS_KEY_ID (*): ご利用の AWS アクセス キー。

  • AWS_SECRET_ACCESS_KEY (*): ご使用の AWS 秘密アクセス キー。 

  • AWS_DEFAULT_REGION (*):  The AWS region code (us-east-1, us-west-2, etc.) of the region containing the AWS resource(s). For more information, see Regions and Endpoints.

  • APPLICATION_NAME (*): Elastic Beanstalk アプリケーションの名前。

  • COMMAND (*): デプロイ中に実行されるコマンド。有効なオプションは allupload-onlydeploy-only です。既定: all

  • ENVIRONMENT_NAME (*): 環境名。

  • ZIP_FILE (*): デプロイするアプリケーション ソース バンドル (zip、jar、war)。

  • S3_BUCKET: アーティファクトを格納するために Elastic Beanstalk によって使用されるバケット名。既定: ${APPLICATION_NAME}-elasticbeanstalk-deployment}

  • VERSION_LABEL: 新しいアプリ リビジョンのバージョン ラべル。既定: ${ENVIRONMENT_NAME}_${BITBUCKET_COMMIT:0:8}_YYYY-mm-dd_HHMMSS)

  • WAIT: デプロイの完了を待機します。既定: false

  • WAIT_INTERVAL: デプロイの完了までの間のポーリング間の待機時間 (秒単位)。既定: 10

  • DEBUG: 追加のデバッグ情報を有効化します。既定: false

    (*) = required variable.

バージョン deploy-$BITBUCKET_BUILD_NUMBER-multiple を環境 production にデプロイし、デプロイが完了するまで待ちます。

- pipe: atlassian/aws-elasticbeanstalk-deploy:0.5.0 variables: AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION APPLICATION_NAME: 'application-test' COMMAND: 'deploy-only' VERSION_LABEL: 'deploy-$BITBUCKET_BUILD_NUMBER-multiple' ENVIRONMENT_NAME: 'production' WAIT: 'true'

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。