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 アプリケーションの名前です。
手順
Elastic Beanstalk パイプのサンプル リポジトリのクローンを作成します。
AWS 資格情報を Bitbucket Pipelines に追加します。リポジトリで [設定] に移動し、[パイプライン] で [リポジトリ変数] を選択し、次の変数を追加します。
基本的な用途のための変数
AWS_ACCESS_KEY_ID (*): ご使用の AWS アクセス キー。
AWS_SECRET_ACCESS_KEY (*): ご使用の AWS 秘密アクセス キー。セキュアな変数として保存されている必要があります。
AWS_DEFAULT_REGION (*): AWS リソースを含むリージョンの AWS リージョン コード (us-east-1、us-west-2 など)。詳細については、AWS リソースを含むリージョンの AWS リージョン コード (us-east-1、us-west-2 など) を参照してください。詳細については「リージョンとエンドポイント」を確認してください。
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 にデプロイするようにセットアップできました。
高度な使用
For advanced use cases It's recommended the build once and deploy many approach. If you have multiple environments, use COMMAND
variable to separate your CI/CD workflow into different operations/pipes:
COMMAND: 'upload-only': アーティファクトをアップロードし、Elastic Beanstalk にバージョンをリリースします。
COMMAND: 'deploy-only': 指定したバージョンを対象の環境にデプロイします。
Upload-only 用の変数
AWS_ACCESS_KEY_ID (*): Your AWS access key.
AWS_SECRET_ACCESS_KEY (*): ご使用の AWS 秘密アクセス キー。
AWS_DEFAULT_REGION (*): AWS リソースを含むリージョンの AWS リージョン コード (us-east-1、us-west-2 など)。詳細については「リージョンとエンドポイント」を確認してください。
APPLICATION_NAME (*): Elastic Beanstalk アプリケーションの名前。
COMMAND (*): Command to be executed during the deployment. Valid options are
all
,upload-only
,deploy-only
. Default:all
.ZIP_FILE (*): デプロイするアプリケーション ソース バンドル (zip、jar、war)。
S3_BUCKET: Bucket name used by Elastic Beanstalk to store artifacts. Default:
${APPLICATION_NAME}-elasticbeanstalk-deployment}
VERSION_LABEL: Version label for the new application revision. Default:
${ENVIRONMENT_NAME}_${BITBUCKET_COMMIT:0:8}_YYYY-mm-dd_HHMMSS)
.DESCRIPTION: 新しいアプリケーション リビジョンの説明。既定: パイプラインの結果ページを示す URL。
DEBUG: Turn on extra debug information. Default:
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 (*): Your AWS access key.
AWS_SECRET_ACCESS_KEY (*): ご使用の AWS 秘密アクセス キー。
AWS_DEFAULT_REGION (*): AWS リソースを含むリージョンの AWS リージョン コード (us-east-1、us-west-2 など)。詳細については「リージョンとエンドポイント」を確認してください。
APPLICATION_NAME (*): Elastic Beanstalk アプリケーションの名前。
COMMAND (*): Command to be executed during the deployment. Valid options are
all
,upload-only
,deploy-only
. Default:all
.ENVIRONMENT_NAME (*): 環境名。
ZIP_FILE (*): デプロイするアプリケーション ソース バンドル (zip、jar、war)。
S3_BUCKET: Bucket name used by Elastic Beanstalk to store artifacts. Default:
${APPLICATION_NAME}-elasticbeanstalk-deployment}
VERSION_LABEL: Version label for the new application revision. Default:
${ENVIRONMENT_NAME}_${BITBUCKET_COMMIT:0:8}_YYYY-mm-dd_HHMMSS)
.WAIT: Wait for deployment to complete. Default:
false
.WAIT_INTERVAL: Time to wait between polling for deployment to complete (in seconds). Default:
10
.DEBUG: Turn on extra debug information. Default:
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'
この内容はお役に立ちましたか?