Amazon AWS にデプロイする

このガイドでは、Elastic Beanstalk、CodeDeploy および S3 を使用して AWS に Bitbucket Pipelines デプロイメントを構成する方法について説明します。

次のガイドもご参照ください:「Amazon ECS にデプロイする

次のリポジトリも参照してください。

AWS 資格情報を Bitbucket Pipelines に追加する

デプロイメントの前に、2 つの環境変数を Bitbucket Pipelines に追加して AWS アカウントとやり取りできるようにしておく必要があります。

  • AWS_ACCESS_KEY_ID: ご使用の AWS アクセス キー。
  • AWS_SECRET_ACCESS_KEY: ご使用の AWS 秘密アクセス キー。安全な場所で保管されている必要があります。

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

アプリケーションを Elastic Beanstalk 環境にデプロイするには、Elastic Beanstalk CLI を使用できます。パイプラインで使用している Docker イメージにこれがインストールされていない場合は、pip を使用して Python で簡単にインストールできます。

pip install awsebcli --upgrade

パイプラインの一部として pip をインストールする必要がある場合があります。インストールは、Node に基づいている以下の構成を複製して実行してください。

image: node:7.5.0

pipelines:
  default:
    - step:
        script:
          - apt-get update && apt-get install -y python-dev
          - curl -O https://bootstrap.pypa.io/get-pip.py
          - python get-pip.py
          - pip install awsebcli --upgrade

Now that the client is installed you just need to initialize your Elastic Beanstalk configuration and run the eb deploy command to deploy your code to your environment of choice. A complete pipeline configuration should look like the following YML.

image: node:7.5.0

pipelines:
  default:
    - step:
        script: # Modify the commands below to build your repository.
          - npm install
          - npm test
          - apt-get update && apt-get install -y python-dev
          - curl -O https://bootstrap.pypa.io/get-pip.py
          - python get-pip.py
          - pip install awsebcli --upgrade
          - eb init <Application name> -r <AWS region> -p <Application platform>
          - eb deploy <Environment name>

次の変数を AWS 構成の対応する値に置き換えます。

  • <Application name>: Name of your Elastic Beanstalk application
  • <AWS region>: Region where your application is configured
  • <Application platform>: Platform that you are using to run your application (Node, PHP, etc...)
  • <Environment name>: Name of the environment that you want to deploy to.

オンライン バリデーターを使用して bitbucket-pipelines.yml ファイルをチェックすることができます。

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

このセクションは、AWS CodeDeploy が構成済みであり、次の情報を取得していることを想定しています。

  • アプリケーション名
  • アプリケーション コードの保存場所である S3 バケット
  • アプリケーション デプロイメント グループ

Bitbucket Pipelines からのデプロイメントは、AWS CLI を使用して簡単にトリガーできます。最初にこれを使用してビルドを S3 バケットにプッシュしてから、CodeDeploy に、対応する S3 バケットからビルドを取得して新しいバージョンを本番環境にプロモートするよう指示します。

パイプラインで使用している Docker イメージに AWS CLI がインストールされていない場合は、pip を使用して Python で簡単にインストールできます。

pip install awscli

パイプラインの一部として pip をインストールする必要がある場合があります。インストールは、Node に基づいている以下の構成を複製して実行してください。

image: node:7.5.0

pipelines:
  default:
    - step:
        script:
          - apt-get update && apt-get install -y python-dev
          - curl -O https://bootstrap.pypa.io/get-pip.py
          - python get-pip.py
          - pip install awscli

以下のコードを適宜変更し、次の値を置き換えることによって CodeDeploy デプロイメントをセットアップします。

  • <Application name>: Name of your CodeDeploy application 
  • <S3 bucket>: Name of your S3 bucket
  • <S3 key>: Reference under which your build will be stored
  • <Deployment group>: Name of the deployment group your build should be deployed to.

オンライン バリデーターを使用すると、bitbucket-pipelines.yml ファイルの編集や確認ができます

 

image: node:7.5.0

pipelines:
  default:
    - step:
        script:
          - apt-get update && apt-get install -y python-dev
          - curl -O https://bootstrap.pypa.io/get-pip.py
          - python get-pip.py
          - pip install awscli
          - aws deploy push --application-name <Application name> --s3-location s3://<S3 bucket>/<S3 key> --ignore-hidden-files
          - aws deploy create-deployment --application-name <Application name> --s3-location bucket=<S3 bucket>,key=<S3 key>,bundleType=zip --deployment-group-name <Deployment group>


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

If you're hosting a static website with S3 you can use the AWS CLI to update your website with Bitbucket Pipelines with the aws s3 sync command.

パイプラインで使用している Docker イメージに AWS CLI がインストールされていない場合は、pip を使用して Python で簡単にインストールできます。

pip install awscli

パイプラインの一部として pip をインストールする必要がある場合があります。インストールは、Node に基づいている以下の構成を複製して実行してください。

image: node:7.5.0

pipelines:
  default:
    - step:
        script:
          - apt-get update && apt-get install -y python-dev
          - curl -O https://bootstrap.pypa.io/get-pip.py
          - python get-pip.py
          - pip install awscli

To update your website you just need to sync your repository with your S3 bucket. You can use the --delete flag to make sure that files that aren't needed anymore get removed from your S3 bucket. Just adapt the example below and replace <S3 bucket> with your own.

image: node:7.5.0

pipelines:
  default:
    - step:
        script:
          - apt-get update && apt-get install -y python-dev
          - curl -O https://bootstrap.pypa.io/get-pip.py
          - python get-pip.py
          - pip install awscli
          - aws s3 sync --delete . s3://<S3 bucket>

 

オンライン バリデーターを使用して bitbucket-pipelines.yml ファイルをチェックすることができます。

最終更新日 2017 年 11 月 6 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.