この記事について
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"
}
}
以上