Help us understand the problem. What is going on with this article?

[JAWS-UG CLI]Amazon AppStream 2.0 入門 (5) FleetおよびStackの更新

More than 3 years have passed since last update.

この記事について

JAWS-UG CLI専門支部 #76 AppStream 2.0入門で実施するハンズオン用の手順書です。

前提条件

必要な権限

作業にあたっては、以下の権限を有したIAMユーザもしくはIAMロールを利用してください。

  • AppStream(2.0)のフルコントロール権限
  • EC2のフルコントロール権限
  • CloudFormationの関するフルコントロール権限
  • IAMの関するフルコントロール権限

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     ****************QSAA         iam-role
secret_key     ****************c1xY         iam-role
    region                us-west-2              env    AWS_DEFAULT_REGION

0.3. バージョン確認

コマンド
aws --version
結果
aws-cli/1.11.35 Python/2.7.12 Linux/4.4.35-33.55.amzn1.x86_64 botocore/1.4.92

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

コマンド
sudo pip install -U awscli

1. Fleetの更新

1.1. 新しいCompute Capacityの指定

Compute Capacityの指定

コマンド
COMPUTE_CAPACITY_2="2"
COMPUTE_CAPACITY_FILE_NAME_2="compute_capacity_2.json"
コマンド
cat << EOF > ${COMPUTE_CAPACITY_FILE_NAME_2}
{
    "DesiredInstances": ${COMPUTE_CAPACITY_2}
}
EOF

cat ${COMPUTE_CAPACITY_FILE_NAME_2}
結果
{
    "DesiredInstances": 2
}
コマンド
jsonlint -q ${COMPUTE_CAPACITY_FILE_NAME_2}

変数の確認

コマンド
cat << ETX

    FLEET_NAME: ${FLEET_NAME}
    COMPUTE_CAPACITY_FILE_NAME_2: ${COMPUTE_CAPACITY_FILE_NAME_2}

ETX
結果
    FLEET_NAME: FLEET_JAWSUG_CLI
    COMPUTE_CAPACITY_FILE_NAME_2: compute_capacity_2.json

Fleetの更新

一旦Availableが0になり、Fleetが追加されるようです。(時間かかるため、Fleetが完全に利用できるようになる前に削除の手順に進みます。)

コマンド
aws appstream update-fleet \
    --name ${FLEET_NAME} \
    --compute-capacity file://${COMPUTE_CAPACITY_FILE_NAME_2}
結果
{
    "Fleet": {
        "ComputeCapacityStatus": {
            "Available": 1,
            "Desired": 2,
            "Running": 1,
            "InUse": 0
        },
        "DisplayName": "JAWSUG_CLI",
        "Name": "JAWSUG_CLI",
        "VpcConfig": {
            "SubnetIds": [
                "subnet-6bfc381d",
                "subnet-d0071089"
            ]
        },
        "FleetErrors": [],
        "DisconnectTimeoutInSeconds": 900,
        "State": "RUNNING",
        "ImageName": "Amazon-AppStream2-Sample-Image-12-15-2016",
        "CreatedTime": 1483117639.89,
        "MaxUserDurationInSeconds": 3600,
        "InstanceType": "stream.standard.medium",
        "Arn": "arn:aws:appstream:ap-northeast-1:788063364413:fleet/JAWSUG_CLI",
        "Description": "A fleet for test at jaws-ug"
    }
}

2. Stackの更新

2.1. 新しいStack表示名および詳細の指定

Stack表示名および詳細の指定

コマンド
STACK_DESCRIPTION_2="A stack for test at jaws-ug cli"
STACK_DISPLAY_NAME_2="JAWSUG_CLI_2"

変数の確認

コマンド
cat << ETX

    STACK_DISPLAY_NAME_2: ${STACK_DISPLAY_NAME_2}
    STACK_DESCRIPTION_2: ${STACK_DESCRIPTION_2}
    STACK_NAME: ${STACK_NAME}

ETX
結果
    STACK_DISPLAY_NAME_2: JAWSUG_CLI_2
    STACK_DESCRIPTION_2: A stack for test at jaws-ug cli
    STACK_NAME: STACK_JAWSUG_CLI

Stackの更新

コマンド
aws appstream update-stack \
    --display-name ${STACK_DISPLAY_NAME_2} \
    --description "${STACK_DESCRIPTION_2}" \
    --name ${STACK_NAME}
結果
{
    "Stack": {
        "CreatedTime": 1483115244.642,
        "DisplayName": "JAWSUG_CLI_2",
        "Name": "JAWSUG_CLI",
        "Arn": "arn:aws:appstream:ap-northeast-1:788063364413:stack/JAWSUG_CLI",
        "Description": "A stack for test at jaws-ug cli"
    }
}

以上

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away