AWS Elastic Beanstalk
開発者ガイド

AWS CodeCommit での EB CLI の使用

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

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

注記

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

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

前提条件

AWS Elastic Beanstalk で CodeCommit を使用するには、CodeCommit を使用する権限を 1 つ以上コミットしたローカル Git リポジトリ (ユーザーがすでに持っているものまたは新しく作成したもの) と、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 で CodeCommit リポジトリを作成する

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

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

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

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

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

EB CLI で 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 オプションをデプロイすると、スタンダードデプロイが実行され、CodeCommit をバイパスします。

追加ブランチと環境設定

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

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

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

    ~/my-app$ eb use test-env --source my-app/test
  2. 新しいブランチと環境を作成するには、新しいブランチをチェックアウトして、それを 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. 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. CodeCommit 統合を無効にするには、eb codesource local を使用します。

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

既存 CodeCommit リポジトリの使用

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

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

  1. 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) cn-northwest-1 : 中国 (寧夏) 14) us-east-2 : 米国東部 (オハイオ) 15) ca-central-1 : カナダ (中部) 16) eu-west-2 : 欧州 (ロンドン) 17) eu-west-3 : EU (パリ) (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 の設定」を参照してください。