JAWS-UG AWS CLI カンファレンス 2016 ミニハンズオン

  • 18
    Like
  • 3
    Comment

概要

AWS CLIを使い、Docker on Elastic Beanstalkで簡単にアプリケーションを公開するまでの流れを体感して頂きます。

Dockerについては、詳しく解説しません。

前提条件

  • AWS CLIを実行する環境構築が完了していること(インストールおよび認証情報の設定など)
  • 本日のハンズオン手順は、以下の権限を有している認証情報で動作確認を行いました。
    • EC2のフルコントロール権限
    • S3のフルコントロール権限
    • Elastic Beanstalkのフルコントロール権限
    • stsのフルコントロール権限
  • 本日のハンズオン手順は、以下の条件で検証しました。
    • Amazon Linux上で操作すること(Macであれば同じ手順で実行できるはずです)
    • 東京リージョンを指定(Elastic Beanstalkをサポートしている他のリージョンでも動作するはずです)
    • Default VPCが存在する
    • Internet facingなサブネット(Pubic Subnet)がDefault VPCに構成されている

作業環境が整っていない場合は、JAWS-UG CLI 総合案内をご確認ください。

0. 準備

0.1. リージョンを指定

コマンド
export AWS_DEFAULT_REGION='ap-northeast-1'

0.2. 資格情報を確認

コマンド
aws configure list

インスタンスプロファイルを設定したEC2インスタンスでアクセスキーを設定せずに実行した場合、以下のようになります。

結果
Name                    Value             Type    Location
----                    -----             ----    --------
profile                <not set>             None    None
access_key     ****************RDPA         iam-role
secret_key     ****************9GA8         iam-role
region           ap-northeast-1              env    AWS_DEFAULT_REGION

0.3. バージョン確認

コマンド
aws --version
結果
aws-cli/1.10.46 Python/2.7.10 Linux/4.4.14-24.50.amzn1.x86_64 botocore/1.4.36

0.4. バージョンアップ(必要に応じて)

コマンド
sudo pip install -U awscli

1. アプリケーションの作成

1.1. アプリケーション名の決定

コマンド
EB_APP_NAME="AWS CLI Conf Elastic Beanstalk Application 20160718"

1.2. アプリケーションの不存在確認 (describe-applications)

コマンド
aws elasticbeanstalk describe-applications \
    --application-names "${EB_APP_NAME}"
結果
{
    "Applications": []
}

※以降の手順では、手順を再利用しやすいように変数を利用しています。

1.3. アプリケーション作成

変数の確認

コマンド
cat << ETX

    EB_APP_NAME: "${EB_APP_NAME}"

ETX
結果

    EB_APP_NAME: "AWS CLI Conf Elastic Beanstalk Application"

アプリケーションの作成

コマンド
aws elasticbeanstalk create-application \
    --application-name "${EB_APP_NAME}"
結果
{
    "Application": {
        "ApplicationName": "AWS CLI Conf Elastic Beanstalk Application",
        "ConfigurationTemplates": [],
        "DateUpdated": "2016-06-25T09:10:37.175Z",
        "DateCreated": "2016-06-25T09:10:37.175Z"
    }
}

1.4. イベント確認

Elastic Beanstalkに対する操作によって発生したイベントを確認することができます。

コマンド
aws elasticbeanstalk describe-events \
    --application-name "${EB_APP_NAME}"
結果
    (略)

2. アプリケーションバージョンの作成

デプロイするアプリケーションを定義します。
ここでは、サンプルアプリケーションを指定します。(特にソースを指定しない場合、サンプルアプリケーションが指定されます。)

2.1. 最初のversion名の決定

コマンド
EB_VER_LABEL="Sample Application"

2.2. アプリケーションバージョンの不存在を確認

コマンド
aws elasticbeanstalk describe-application-versions \
    --application-name "${EB_APP_NAME}"
結果
{
    "ApplicationVersions": []
}

2.3. アプリケーションバージョンの作成

変数の確認

コマンド
cat << ETX

    EB_APP_NAME: "${EB_APP_NAME}"
    EB_VER_LABEL: "${EB_VER_LABEL}"

ETX
結果

    EB_APP_NAME: "AWS CLI Conf Elastic Beanstalk Application"
    EB_VER_LABEL: "Sample Application"

アプリケーションバージョンの作成

コマンド
aws elasticbeanstalk create-application-version \
    --application-name "${EB_APP_NAME}" \
    --version-label "${EB_VER_LABEL}"
結果
{
    "ApplicationVersion": {
        "ApplicationName": "AWS CLI Conf Elastic Beanstalk Application",
        "Status": "UNPROCESSED",
        "VersionLabel": "Sample Application",
        "DateCreated": "2016-06-25T09:25:23.840Z",
        "DateUpdated": "2016-06-25T09:25:23.840Z",
        "SourceBundle": {
            "S3Bucket": "elasticbeanstalk-ap-northeast-1",
            "S3Key": "GenericSampleApplication"
        }
    }
}

3. 環境の作成

アプリケーションが実際に動作する環境を作成します。

3.1. environment名の決定

コマンド
EB_ENV_NAME="Default-Environment"

3.2. Solution Stackの一覧確認

コマンド
aws elasticbeanstalk list-available-solution-stacks \
    --query 'SolutionStacks[]'
結果
[
    (略)
    "64bit Amazon Linux 2016.03 v2.1.0 running Docker 1.9.1",
    "64bit Amazon Linux 2015.09 v2.0.6 running Docker 1.7.1",
    "64bit Amazon Linux 2015.03 v1.4.6 running Docker 1.6.2",
    "64bit Amazon Linux 2016.03 v2.1.1 running Multi-container Docker 1.9.1 (Generic)",
    "64bit Amazon Linux 2015.03 v1.4.6 running Multi-container Docker 1.6.2 (Generic)",
    "64bit Debian jessie v2.1.0 running GlassFish 4.1 Java 8 (Preconfigured - Docker)",
    "64bit Debian jessie v2.1.0 running GlassFish 4.0 Java 7 (Preconfigured - Docker)",
    "64bit Debian jessie v1.4.6 running GlassFish 4.1 Java 8 (Preconfigured - Docker)",
    "64bit Debian jessie v1.4.6 running GlassFish 4.0 Java 7 (Preconfigured - Docker)",
    "64bit Debian jessie v2.1.0 running Go 1.4 (Preconfigured - Docker)",
    "64bit Debian jessie v2.1.0 running Go 1.3 (Preconfigured - Docker)",
    "64bit Debian jessie v1.4.6 running Go 1.4 (Preconfigured - Docker)",
    "64bit Debian jessie v1.4.6 running Go 1.3 (Preconfigured - Docker)",
    "64bit Debian jessie v2.1.0 running Python 3.4 (Preconfigured - Docker)",
    "64bit Debian jessie v1.4.6 running Python 3.4 (Preconfigured - Docker)",
    (略)
]

3.3. Solution Stackの決定

このハンズオンでは、トレンディーなDockerを使います。

コマンド
EB_ENV_SOL='64bit Amazon Linux 2016.03 v2.1.3 running Docker 1.11.1'

3.4. Solution Stackの内容確認

コマンド
aws elasticbeanstalk describe-configuration-options \
    --solution-stack-name "${EB_ENV_SOL}"
結果
    (略)

3.5. Environmentの不存在を確認

コマンド
aws elasticbeanstalk describe-environments \
    --application-name "${EB_APP_NAME}" \
    --environment-names "${EB_ENV_NAME}"
結果
{
    "Environments": []
}

3.6. environmentの起動

変数の確認

コマンド
cat << ETX

    EB_APP_NAME: "${EB_APP_NAME}"
    EB_ENV_NAME: ${EB_ENV_NAME}
    EB_VER_LABEL: "${EB_VER_LABEL}"
    EB_ENV_SOL: "${EB_ENV_SOL}"

ETX
結果

    EB_APP_NAME: "AWS CLI Conf Elastic Beanstalk Application"
    EB_ENV_NAME: Default-Environment
    EB_VER_LABEL: "Sample Application"
    EB_ENV_SOL: "64bit Amazon Linux 2016.03 v2.1.0 running Docker 1.9.1"

Environmentの作成

コマンド
aws elasticbeanstalk create-environment \
    --application-name "${EB_APP_NAME}" \
    --environment-name ${EB_ENV_NAME} \
    --version-label "${EB_VER_LABEL}" \
    --solution-stack-name "${EB_ENV_SOL}"
結果
{
    "ApplicationName": "AWS CLI Conf Elastic Beanstalk Application",
    "EnvironmentName": "Default-Environment",
    "VersionLabel": "Sample Application",
    "Status": "Launching",
    "EnvironmentId": "e-9rv4qkn3bn",
    "SolutionStackName": "64bit Amazon Linux 2016.03 v2.1.0 running Docker 1.9.1",
    "Health": "Grey",
    "Tier": {
        "Version": " ",
        "Type": "Standard",
        "Name": "WebServer"
    },
    "DateUpdated": "2016-06-25T09:32:11.470Z",
    "DateCreated": "2016-06-25T09:32:11.470Z"
}

3.7. Environment IDの取得

コマンド
EB_ENV_ID=$(aws elasticbeanstalk describe-environments \
    --application-name "${EB_APP_NAME}" \
    --environment-names "${EB_ENV_NAME}" \
    --query Environments[?EnvironmentName==\'${EB_ENV_NAME}\'].EnvironmentId \
    --output text) \
&& echo ${EB_ENV_ID}
結果
e-**********

3.8. Environmentのステータス確認

コマンド
aws elasticbeanstalk describe-environments \
    --application-name "${EB_APP_NAME}" \
    --environment-ids "${EB_ENV_ID}" \
    --query Environments[?EnvironmentName==\'${EB_ENV_NAME}\'].Status \
    --output text
結果
Ready

Readyになるまで、おおむね5分程度かかるようです。

余裕があれば、「1.4. イベント確認」のコマンドで、処理の進捗を確認しましょう。

3.9. URLの取得

コマンド
aws elasticbeanstalk describe-environments \
    --application-name "${EB_APP_NAME}" \
    --environment-names "${EB_ENV_NAME}" \
    --query Environments[?EnvironmentName==\'${EB_ENV_NAME}\'].CNAME \
    --output text
結果
Default-Environment.**********.elasticbeanstalk.com

3.10. アクセス確認

ブラウザでアクセスして、アプリケーションが表示されることを確認しましょう。

3.11. configuration-settingsの確認

ソリューションスタックの既定値に基づいて環境が構成されています。

コマンド
aws elasticbeanstalk describe-configuration-settings \
    --application-name "${EB_APP_NAME}" \
    --environment-name "${EB_ENV_NAME}"
結果
    (略)

3.12. Environmentのリソース確認

環境の作成によって、実際に作成されたリソース(EC2インスタンス、ELB、AutoScalingGroup、LaunchConfigurationなど)を確認します。

コマンド
aws elasticbeanstalk describe-environment-resources \
    --environment-id ${EB_ENV_ID}
結果
{
    "EnvironmentResources": {
        "EnvironmentName": "Default-Environment",
        "AutoScalingGroups": [
            {
                "Name": "awseb-e-9rv4qkn3bn-stack-AWSEBAutoScalingGroup-1************"
            }
        ],
        "Triggers": [],
        "LoadBalancers": [
            {
                "Name": "awseb-e-9-AWSEBLoa-************"
            }
        ],
        "Queues": [],
        "Instances": [
            {
                "Id": "i-0****************"
            }
        ],
        "LaunchConfigurations": [
            {
                "Name": "awseb-e-9rv4qkn3bn-stack-AWSEBAutoScalingLaunchConfiguration-************"
            }
        ]
    }
}

4. Environmentの更新(アプリケーションバージョンの入れ替え)

4.1. S3バケットの確認

アプリケーションのソースの配置先として、S3を利用します。
Beanstalkのアプリケーションを作成した際に、Beanstalkを初めて利用する場合にはデフォルトのS3バケットが作成されます。
今回は、そのバケットを利用します。

AWS IDの確認

コマンド
AWS_ID=`aws sts get-caller-identity \
    --query Account --output text` \
&& echo ${AWS_ID}
結果
************

デフォルトのバケット名の指定

コマンド
S3_BUCKET_NAME="elasticbeanstalk-${AWS_DEFAULT_REGION}-${AWS_ID}" \
&& echo ${S3_BUCKET_NAME}
結果
elasticbeanstalk-ap-northeast-1-************

バケットのコンテンツを確認

コマンド
aws s3 ls s3://${S3_BUCKET_NAME}
結果

                           PRE resources/
2016-06-09 10:22:15          0 .elasticbeanstalk

4.2. 新しいアプリケーションバージョン名の指定

コマンド
EB_VER_LABEL="Sample Application Second Version"

4.3. 新しいアプリケーションバージョンのソースコードを生成

Dockerfileの名前を指定

コマンド
DOCKER_FILE_NAME="Dockerfile"

Dockerfileを生成

もし、動作させてみたいDockerfileがあれば、以下のヒアドキュメントで生成する内容を置き換えてみてください。

コマンド
cat << EOF > ${DOCKER_FILE_NAME}
FROM centos:6
RUN yum -y install httpd
RUN chkconfig httpd off

EXPOSE 80

CMD ["/usr/sbin/apachectl", "-DFOREGROUND"]

EOF

cat ${DOCKER_FILE_NAME}

Dockerfileを圧縮

コマンド
zip ${DOCKER_FILE_NAME}.zip ${DOCKER_FILE_NAME}
結果
  adding: Dockerfile (deflated 5%)

4.4. ソースコードのS3バケットへの転送

コマンド
S3_OBJECT_NAME=${DOCKER_FILE_NAME}.zip
コマンド
aws s3 cp ${S3_OBJECT_NAME} s3://${S3_BUCKET_NAME}/${S3_OBJECT_NAME}
結果
upload: ./Dockerfile.zip to s3://elasticbeanstalk-ap-northeast-1-************/Dockerfile.zip

4.5. アプリケーションバージョンの不存在を確認

コマンド
aws elasticbeanstalk describe-application-versions \
    --application-name "${EB_APP_NAME}" \
    --version-labels "${EB_VER_LABEL}"
結果
{
    "ApplicationVersions": []
}

4.6. 新しいアプリケーションバージョンの作成

変数の確認

コマンド
cat << ETX

      EB_APP_NAME:    "${EB_APP_NAME}"
      EB_VER_LABEL:   "${EB_VER_LABEL}"
      S3_BUCKET_NAME: ${S3_BUCKET_NAME}
      S3_OBJECT_NAME: ${S3_OBJECT_NAME}

ETX
結果

      EB_APP_NAME:    "AWS CLI Conf Elastic Beanstalk Application"
      EB_VER_LABEL:   "Sample Application Second Version"
      S3_BUCKET_NAME: elasticbeanstalk-ap-northeast-1-************
      S3_OBJECT_NAME: Dockerfile.zip

アプリケーションバージョンの作成

コマンド
aws elasticbeanstalk create-application-version \
    --application-name "${EB_APP_NAME}" \
    --version-label "${EB_VER_LABEL}" \
    --source-bundle "S3Bucket=${S3_BUCKET_NAME},S3Key=${S3_OBJECT_NAME}"
結果
{
    "ApplicationVersion": {
        "ApplicationName": "AWS CLI Conf Elastic Beanstalk Application",
        "Status": "UNPROCESSED",
        "VersionLabel": "Sample Application Second Version",
        "DateCreated": "2016-06-25T10:54:51.343Z",
        "DateUpdated": "2016-06-25T10:54:51.343Z",
        "SourceBundle": {
            "S3Bucket": "elasticbeanstalk-ap-northeast-1-************",
            "S3Key": "Dockerfile.zip"
        }
    }
}

4.7. Environmentの内容確認

この時点では、VersionLabelがSample Applicationです。

コマンド
aws elasticbeanstalk describe-environments \
    --application-name "${EB_APP_NAME}" \
    --environment-names "${EB_ENV_NAME}"
結果
{
    "Environments": [
        {
            "ApplicationName": "AWS CLI Conf Elastic Beanstalk Application",
            "EnvironmentName": "Default-Environment",
            "VersionLabel": "Sample Application",
            "Status": "Ready",
            "EnvironmentLinks": [],
            "EnvironmentId": "e-9rv4qkn3bn",
            "EndpointURL": "awseb-e-9-AWSEBLoa-CDOQ0ZQN2970-242230098.ap-northeast-1.elb.amazonaws.com",
            "SolutionStackName": "64bit Amazon Linux 2016.03 v2.1.0 running Docker 1.9.1",
            "CNAME": "Default-Environment.uksxxctdpr.ap-northeast-1.elasticbeanstalk.com",
            "Health": "Green",
            "AbortableOperationInProgress": false,
            "Tier": {
                "Version": " ",
                "Type": "Standard",
                "Name": "WebServer"
            },
            "DateUpdated": "2016-06-25T09:38:55.277Z",
            "DateCreated": "2016-06-25T09:32:11.440Z"
        }
    ]
}

4.8. Environmentの更新

変数の確認

コマンド
cat << ETX

    EB_ENV_ID:     ${EB_ENV_ID}
    EB_VER_LABEL: "${EB_VER_LABEL}"

ETX
結果

    EB_ENV_ID:     e-**********
    EB_VER_LABEL: "Sample Application Second Version"

更新

VersionLabelがSample Application Second Versionになっています。

コマンド
aws elasticbeanstalk update-environment \
    --environment-id ${EB_ENV_ID} \
    --version-label "${EB_VER_LABEL}"
結果
{
    "ApplicationName": "AWS CLI Conf Elastic Beanstalk Application",
    "EnvironmentName": "Default-Environment",
    "VersionLabel": "Sample Application Second Version",
    "Status": "Updating",
    "EnvironmentId": "e-**********",
    "EndpointURL": "awseb-e-9-AWSEBLoa-CDOQ0ZQN2970-*********.ap-northeast-1.elb.amazonaws.com",
    "SolutionStackName": "64bit Amazon Linux 2016.03 v2.1.0 running Docker 1.9.1",
    "CNAME": "Default-Environment.**********.ap-northeast-1.elasticbeanstalk.com",
    "Health": "Grey",
    "AbortableOperationInProgress": true,
    "Tier": {
        "Version": " ",
        "Type": "Standard",
        "Name": "WebServer"
    },
    "DateUpdated": "2016-06-25T11:00:03.588Z",
    "DateCreated": "2016-06-25T09:32:11.440Z"
}

更新が完了するまで、5分ほどお待ちください。

4.9. Environmentのステータス確認

コマンド
aws elasticbeanstalk describe-environments \
    --application-name "${EB_APP_NAME}" \
    --environment-ids "${EB_ENV_ID}" \
    --query Environments[?EnvironmentName==\'${EB_ENV_NAME}\'].Status \
    --output text
結果
Ready

4.10. アクセス確認

ブラウザでアクセスして、アプリケーションが表示されることを確認しましょう。
(URLは同じです。)

ノート: キャッシュによって旧コンテンツが見えている場合があります。その場合 は、キャッシュをクリアしてみてください。

5. Environmentの削除

5.1. Environmentの削除

変数の確認

コマンド
cat << ETX

    EB_ENV_ID:  ${EB_ENV_ID}

ETX
結果

    EB_ENV_ID:  e-**********

存在確認

コマンド
aws elasticbeanstalk describe-environments \
    --environment-id ${EB_ENV_ID}
結果
{
    "Environments": [
        {
            "ApplicationName": "AWS CLI Conf Elastic Beanstalk Application",
            "EnvironmentName": "Default-Environment",
            "VersionLabel": "Sample Application Second Version",
            "Status": "Terminating",
            "EnvironmentLinks": [],
            "EnvironmentId": "e-***********",
            "EndpointURL": "awseb-e-f-AWSEBLoa-1AMGFW79TIGSY-**********.ap-northeast-1.elb.amazonaws.com",
            "SolutionStackName": "64bit Amazon Linux 2016.03 v2.1.0 running Docker 1.9.1",
            "CNAME": "Default-Environment.**********.ap-northeast-1.elasticbeanstalk.com",
            "Health": "Grey",
            "AbortableOperationInProgress": false,
            "Tier": {
                "Version": " ",
                "Type": "Standard",
                "Name": "WebServer"
            },
            "DateUpdated": "2016-07-10T11:37:03.706Z",
            "DateCreated": "2016-07-10T11:19:06.883Z"
        }
    ]
}

削除

コマンド
aws elasticbeanstalk terminate-environment \
    --environment-id ${EB_ENV_ID}
結果
{
    "ApplicationName": "AWS CLI Conf Elastic Beanstalk Application",
    "EnvironmentName": "Default-Environment",
    "Status": "Terminating",
    "EnvironmentId": "e-**********",
    "EndpointURL": "awseb-e-p-AWSEBLoa-1P5VW8W5KAVPV-*********.ap-northeast-1.elb.amazonaws.com",
    "SolutionStackName": "64bit Amazon Linux 2016.03 v2.1.0 running Docker 1.9.1",
    "CNAME": "Default-Environment.**********.ap-northeast-1.elasticbeanstalk.com",
    "Health": "Grey",
    "AbortableOperationInProgress": false,
    "Tier": {
        "Version": " ",
        "Type": "Standard",
        "Name": "WebServer"
    },
    "DateUpdated": "2016-06-26T10:15:49.149Z",
    "DateCreated": "2016-06-26T09:44:21.137Z"
}

削除が完了するまで、5分程度かかります。

5.2. Environmentのステータス確認

コマンド
aws elasticbeanstalk describe-environments \
    --application-name "${EB_APP_NAME}" \
    --environment-ids "${EB_ENV_ID}" \
    --query Environments[?EnvironmentName==\'${EB_ENV_NAME}\'].Status \
    --output text
結果
Terminated

5.3. Environmentのリソース確認

コマンド
aws elasticbeanstalk describe-environment-resources \
    --environment-name "${EB_ENV_NAME}"
結果
A client error (InvalidParameterValue) occurred when calling the DescribeEnvironmentResources operation: No Environment found for EnvironmentName = 'Default-Environment'.

6.アプリケーションバージョンの削除

不要になった過去のバージョンを削除します。

6.1. アプリケーションバージョンの一覧取得

コマンド
aws elasticbeanstalk describe-application-versions \
    --application-name "${EB_APP_NAME}" \
    --query ApplicationVersions[].VersionLabel
結果
[
    "Sample Application Second Version",
    "Sample Application"
]

6.2. アプリケーションバージョンの指定(1)

コマンド
EB_VER_LABEL="Sample Application"

6.3. アプリケーションバージョンの削除(1)

変数の確認

コマンド
cat << ETX

    EB_APP_NAME:  "${EB_APP_NAME}"
    EB_VER_LABEL: "${EB_VER_LABEL}"

ETX
結果

    EB_APP_NAME:  "AWS CLI Conf Elastic Beanstalk Application"
    EB_VER_LABEL: "Sample Application"

存在確認

コマンド
aws elasticbeanstalk describe-application-versions \
    --application-name "${EB_APP_NAME}" \
    --version-label "${EB_VER_LABEL}"
結果
{
    "ApplicationVersions": [
        {
            "ApplicationName": "AWS CLI Conf Elastic Beanstalk Application",
            "Status": "UNPROCESSED",
            "VersionLabel": "Sample Application",
            "DateCreated": "2016-07-10T11:18:00.683Z",
            "DateUpdated": "2016-07-10T11:18:00.683Z",
            "SourceBundle": {
                "S3Bucket": "elasticbeanstalk-ap-northeast-1",
                "S3Key": "GenericSampleApplication"
            }
        }
    ]
}

削除

コマンド
aws elasticbeanstalk delete-application-version \
    --application-name "${EB_APP_NAME}" \
    --version-label "${EB_VER_LABEL}"
結果
    (戻り値なし)

6.4. アプリケーションバージョンの指定(2)

コマンド
EB_VER_LABEL="Sample Application Second Version"

6.5. アプリケーションバージョンの削除(2)

変数の確認

コマンド
cat << ETX

    EB_APP_NAME:  "${EB_APP_NAME}"
    EB_VER_LABEL: "${EB_VER_LABEL}"

ETX
結果

    EB_APP_NAME:  "AWS CLI Conf Elastic Beanstalk Application"
    EB_VER_LABEL: "Sample Application Second Version"

存在確認

コマンド
aws elasticbeanstalk describe-application-versions \
    --application-name "${EB_APP_NAME}" \
    --version-label "${EB_VER_LABEL}"
結果
{
    "ApplicationVersions": [
        {
            "ApplicationName": "AWS CLI Conf Elastic Beanstalk Application",
            "Status": "UNPROCESSED",
            "VersionLabel": "Sample Application Second Version",
            "DateCreated": "2016-07-10T11:30:28.221Z",
            "DateUpdated": "2016-07-10T11:30:28.221Z",
            "SourceBundle": {
                "S3Bucket": "elasticbeanstalk-ap-northeast-1-************",
                "S3Key": "Dockerfile.zip"
            }
        }
    ]
}

削除

コマンド
aws elasticbeanstalk delete-application-version \
    --application-name "${EB_APP_NAME}" \
    --version-label "${EB_VER_LABEL}"
結果
    (戻り値なし)

6.6. アプリケーションバージョンの不存在を確認

コマンド
aws elasticbeanstalk describe-application-versions \
    --application-name "${EB_APP_NAME}" \
    --query ApplicationVersions[].VersionLabel
結果
[]

6.7. Dockerfileの削除

変数の確認

コマンド
cat << ETX

    S3_BUCKET_NAME: "${S3_BUCKET_NAME}"
    S3_OBJECT_NAME: "${S3_OBJECT_NAME}"

ETX
結果

    S3_BUCKET_NAME: "elasticbeanstalk-ap-northeast-1-************"
    S3_OBJECT_NAME: "Dockerfile.zip"

存在確認

コマンド
aws s3 ls s3://${S3_BUCKET_NAME}/${S3_OBJECT_NAME}
結果
2016-07-10 11:46:30        283 Dockerfile.zip

削除

コマンド
aws s3 rm s3://${S3_BUCKET_NAME}/${S3_OBJECT_NAME}
結果
delete: s3://elasticbeanstalk-ap-northeast-1-************/Dockerfile.zip

6.8. Dockerfileの不存在を確認

コマンド
aws s3 ls s3://${S3_BUCKET_NAME}/${S3_OBJECT_NAME}
結果
    (戻り値なし)

7.アプリケーションの削除

7.1. アプリケーションの削除

変数の確認

コマンド
cat << ETX

    EB_APP_NAME: "${EB_APP_NAME}"

ETX
結果

    EB_APP_NAME: "AWS CLI Conf Elastic Beanstalk Application"

存在確認

コマンド
aws elasticbeanstalk describe-applications \
    --application-name "${EB_APP_NAME}"
結果
{
    "Applications": [
        {
            "ApplicationName": "AWS CLI Conf Elastic Beanstalk Application",
            "ConfigurationTemplates": [],
            "DateUpdated": "2016-07-10T11:15:43.891Z",
            "DateCreated": "2016-07-10T11:15:43.891Z"
        }
    ]
}

削除

コマンド
aws elasticbeanstalk delete-application \
    --application-name "${EB_APP_NAME}"
結果
    (戻り値なし)

7.2. アプリケーションの不存在を確認

コマンド
aws elasticbeanstalk describe-applications \
    --application-name "${EB_APP_NAME}"
結果
{
    "Applications": []
}

以上です。

お疲れ様でした。