メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

AWS CodeCommit での EB CLI の使用

EB CLI を使用して、AWS CodeCommit リポジトリからアプリケーションを直接デプロイすることができます。AWS CodeCommit では、プロジェクト全体をアップロードする代わりにデプロイする場合、リポジトリに対する変更のみをアップロードできます。これにより、大規模なプロジェクトまたは制限付きインターネット接続がある場合に、時間と帯域幅を節約できます。EB CLI はローカルルートをプッシュし、eb create または eb deploy を使用する際にそれらを使用してアプリケーションバージョンを作成します。

変更をデプロイするには、AWS CodeCommit 統合で変更をコミット最初に必要があります。ただし、開発またはデバッグで、動作することを確認していない変更をプッシュしたくない場合もあります。ステージングと eb deploy --staged を使用することで (標準デプロイを実行)、変更のコミットを回避できます。または変更をコミットして開発するか、ブランチを最初にテストして、コードの準備ができたときにのみ、マスターブランチに統合します。eb use を使うと、EB CLI を設定して開発ブランチから 1 つの環境にデプロイして、マスターブランチから別の環境にデプロイできます。

注記

一部リージョンでは、AWS CodeCommit を使用できない場合があります。これらのリージョンでは、Elastic Beanstalk と AWS CodeCommit の統合を行うことはできません。

各リージョンで提供されている AWS サービスの詳細については、「リージョンテーブル」を参照してください。

前提条件

AWS Elastic Beanstalk で AWS CodeCommit を使用するには、AWS CodeCommit を使用する権限を 1 つ以上コミットしたローカル Git リポジトリ (ユーザーがすでに持っているものまたは新しく作成したもの) と、AWS CodeCommit がサポートするリージョンで Elastic Beanstalk 環境が必要になります。環境およびリポジトリは同じリージョンにある必要があります。

Git リポジトリを初期化するには

  1. プロジェクトフォルダーで git init を実行します。

    ~/my-app$ git init
  2. プロジェクトファイルを git add でステージングします。

    ~/my-app$ git add .
  3. git commit で変更をコミットします。

    ~/my-app$ git commit -m "Elastic Beanstalk application"

EB CLI での AWS CodeCommit リポジトリを作成する

AWS CodeCommit で開始するには、eb init を実行します。リポジトリ設定中に、EB CLI は AWS CodeCommit を使用してコードを保存してデプロイを高速化するよう求められます。前に eb init プロジェクトを設定している場合でも、再度それを実行して AWS CodeCommit を設定できます。

EB CLI で AWS CodeCommit リポジトリを作成するには

  1. プロジェクトフォルダーで eb init を実行します。設定中に、EB CLI は AWS CodeCommit を使用してコードを保存してデプロイを高速化するかを尋ねます。前に eb init プロジェクトを設定している場合でも、再度それを実行して AWS CodeCommit を設定できます。プロンプトが表示されたら、「y」を入力して AWS CodeCommit をセットアップします。

    ~/my-app$ eb init
    Note: Elastic Beanstalk now supports AWS CodeCommit; a fully-managed source control service. To learn more, see Docs: https://aws.amazon.com/codecommit/
    Do you wish to continue with CodeCommit? (y/n)(default is n): y
  2. [Create new Repository] を選択します。

    Select a repository
    1) my-repo
    2) [ Create new Repository ]
    (default is 2): 2
  3. リポジトリの名前を入力するか、または Enter キーを押してデフォルト名を受け入れます。

    Enter Repository Name
    (default is "codecommit-origin"): my-app
    Successfully created repository: my-app
  4. コミット用の既存のブランチを選択するか、または EB CLI を使用して新しいブランチを作成します。

    Enter Branch Name
    ***** Must have at least one commit to create a new branch with CodeCommit *****
    (default is "master"): ENTER
    Successfully created branch: master

AWS CodeCommit リポジトリからのデプロイ

EB CLI リポジトリで AWS CodeCommit を構成すると、EB CLI はリポジトリのコンテンツを使用してソースバンドルを作成します。eb deploy または eb create を実行すると、EB CLI が新しいコミットをプッシュし、ブランチの HEAD リビジョンを使用して、環境内の EC2 インスタンスにデプロイするアーカイブを作成します。

EB CLI で AWS CodeCommit 統合を使用するには

  1. eb create で新しい環境を作成します。

    ~/my-app$ eb create my-app-env
    Starting environment deployment via CodeCommit
    --- Waiting for application versions to be pre-processed ---
    Finished processing application version app-ac1ea-161010_201918
    Setting up default branch
    Environment details for: my-app-env
      Application name: my-app
      Region: us-east-2
      Deployed Version: app-ac1ea-161010_201918
      Environment ID: e-pm5mvvkfnd
      Platform: 64bit Amazon Linux 2016.03 v2.1.6 running Java 8
      Tier: WebServer-Standard
      CNAME: UNKNOWN
      Updated: 2016-10-10 20:20:29.725000+00:00
    Printing Status:
    INFO: createEnvironment is starting.
    ...

    EB CLI は追跡されるブランチで最新のコミットを使用して、環境にデプロイするアプリケーションバージョンを作成します。

  2. 新しいローカルコミットがある場合、eb deploy を使用して環境にコミットを直接プッシュします。

    ~/my-app$ eb deploy
    Starting environment deployment via CodeCommit
    INFO: Environment update is starting.
    INFO: Deploying new version to instance(s).
    INFO: New application version was deployed to running EC2 instances.
    INFO: Environment update completed successfully.
  3. それらをコミットする前に変更をテストするには、--staged オプションを使用して、git add でステージング領域に追加する変更をデプロイします。

    ~/my-app$ git add new-file
    ~/my-app$ eb deploy --staged

    --staged オプションをデプロイすると、スタンダードデプロイが実行され、AWS CodeCommit をバイパスします。

追加ブランチと環境設定

AWS CodeCommit 設定は、1 つのブランチに適用されます。eb use および eb codesource を使用して追加ブランチを設定するか、または現在のブランチの設定を変更できます。

EB CLI で AWS CodeCommit 統合を設定するには

  1. リモートブランチを変更するには、eb use コマンドの --source オプションを使用します。

    ~/my-app$ eb use test-env --source my-app/test
  2. 新しいブランチと環境を作成するには、新しいブランチをチェックアウトして、それを AWS CodeCommit にプッシュし、環境を作成してから、eb use を使用してローカルブランチ、リモートブランチ、環境に接続します。

    ~/my-app$ git checkout -b production
    ~/my-app$ git push --set-upstream production
    ~/my-app$ eb create production-env
    ~/my-app$ eb use --source my-app/production production-env
  3. AWS CodeCommit を設定するには、インタラクティブに eb codesource codecommit を使用します。

    ~/my-app$ eb codesource codecommit
    Current CodeCommit setup:
      Repository: my-app
      Branch: test
    Do you wish to continue (y/n): y
    
    Select a repository
    1) my-repo
    2) my-app
    3) [ Create new Repository ]
    (default is 2): 2
    
    Select a branch
    1) master
    2) test
    3) [ Create new Branch with local HEAD ]
    (default is 1): 1
  4. AWS CodeCommit 統合を無効にするには、eb codesource local を使用します。

    ~/my-app$ eb codesource local
    Current CodeCommit setup:
      Repository: my-app
      Branch: master
    Default set to use local sources

既存 AWS CodeCommit リポジトリの使用

すでに AWS CodeCommit リポジトリがあり、Elastic Beanstalk でこれを使用するには、ローカル Git リポジトリのルートで eb init を実行します。

EB CLI で既存の AWS CodeCommit リポジトリを使用するには

  1. AWS CodeCommit リポジトリのクローンを作成します。

    ~$ git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/my-app
  2. ブランチをチェックアウトしてプッシュし、Elastic Beanstalk 環境で使用します。

    ~/my-app$ git checkout -b dev-env
    ~/my-app$ git push --set-upstream origin dev-env
  3. eb init を実行します。現在使用しているものと同じリージョン、リポジトリ、ブランチの名前を付けます。

    ~/my-app$ eb init
    Select a default region
    1) us-east-1 : 米国東部 (バージニア西部) 2) us-west-1 : 米国西部 (北カリフォルニア) 3) us-west-2 : 米国西部 (オレゴン) 4) eu-west-1 : 欧州 (アイルランド) 5) eu-central-1 : 欧州 (フランクフルト) 6) ap-south-1 : アジアパシフィック (ムンバイ) 7) ap-southeast-1 : アジアパシフィック (シンガポール) 8) ap-southeast-2 : アジアパシフィック (シドニー) 9) ap-northeast-1 : アジアパシフィック (東京) 10) ap-northeast-2 : アジアパシフィック (ソウル) 11) sa-east-1 : 南米 (サンパウロ) 12) cn-north-1 : 中国 (北京) 13) us-east-2 : 米国東部 (コロンバス) 14) ca-central-1 : カナダ (中部) 15) eu-west-2 : 欧州 (ロンドン)
    (default is 3): 1
    ...
    Note: Elastic Beanstalk now supports AWS CodeCommit; a fully-managed source control service. To learn more, see Docs: https://aws.amazon.com/codecommit/
    Do you wish to continue with CodeCommit? (y/n)(default is n): y
    
    Select a repository
    1) my-app
    2) [ Create new Repository ]
    (default is 1): 1
    
    Select a branch
    1) master
    2) dev-env
    3) [ Create new Branch with local HEAD ]
    (default is 2): 2

eb init の使用の詳細については、「EB CLI の設定」を参照してください。