この記事について
JAWS-UG CLI専門支部 #73 Kinesis Firehose入門で実施するハンズオン用の手順書です。
前提条件
必要な権限
作業にあたっては、以下の権限を有したIAMユーザもしくはIAMロールを利用してください。
- Kinesis Firehoseのフルコントロール権限
- S3のフルコントロール権限
- STSの関するフルコントロール権限
- IAMの関するフルコントロール権限
- CloudWatchの関するフルコントロール権限
- CloudWatch Logsの関するフルコントロール権限
0. 準備
0.1. リージョンを指定
オレゴンリージョンで実施します。(東京マダー?)
コマンド
export AWS_DEFAULT_REGION="us-west-2"
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.24 Python/2.7.12 Linux/4.4.30-32.54.amzn1.x86_64 botocore/1.4.81
0.4. バージョンアップ(必要に応じて)
コマンド
sudo pip install -U awscli
1. EC2インスタンスの削除
変数の確認
コマンド
cat << ETX
INSTANCE_ID: ${INSTANCE_ID}
ETX
結果
INSTANCE_ID: i-0****************
削除
コマンド
aws ec2 terminate-instances \
--instance-ids ${INSTANCE_ID}
結果
{
"TerminatingInstances": [
{
"InstanceId": "i-0758452c3f6cdb188",
"CurrentState": {
"Code": 32,
"Name": "shutting-down"
},
"PreviousState": {
"Code": 16,
"Name": "running"
}
}
]
}
確認
コマンド
aws ec2 describe-instances \
--instance-ids ${INSTANCE_ID}
結果
(長いので省略)
( (4)で作成した他のリソースは別途削除をお願いします>< )
2. デリバリーストリームの削除
変数の確認
コマンド
cat << ETX
DELIVERY_STREAM_NAME: ${DELIVERY_STREAM_NAME}
ETX
結果
DELIVERY_STREAM_NAME: jawsug-cli-stream
削除
コマンド
aws firehose delete-delivery-stream \
--delivery-stream-name ${DELIVERY_STREAM_NAME}
結果
(返値無し)
確認
コマンド
aws firehose describe-delivery-stream \
--delivery-stream-name ${DELIVERY_STREAM_NAME}
結果
An error occurred (ResourceNotFoundException) when calling the DescribeDeliveryStream operation: Firehose jawsug-cli-stream under account ************ not found.
3. IAMロールの削除
削除対象のロール名を指定
コマンド
ROLE_NAME='service-role-firehose'
変数の確認
コマンド
cat << ETX
ROLE_NAME: ${ROLE_NAME}
ETX
結果
ROLE_NAME: service-role-firehose
デタッチするポリシーの確認
コマンド
POLICY_ARN=$(aws iam list-attached-role-policies \
--role-name ${ROLE_NAME} \
--query "AttachedPolicies[0].PolicyArn" \
--output text) \
&& echo ${POLICY_ARN}
結果
arn:aws:iam::************:policy/ServicePolicyFirehose
ポリシーのデタッチ
コマンド
aws iam detach-role-policy \
--role-name ${ROLE_NAME} \
--policy-arn ${POLICY_ARN}
結果
(返値無し)
ポリシーがデタッチされたことを確認
コマンド
aws iam list-attached-role-policies \
--role-name ${ROLE_NAME}
結果
{
"AttachedPolicies": []
}
削除
コマンド
aws iam delete-role \
--role-name ${ROLE_NAME}
結果
(返値無し)
確認
コマンド
aws iam get-role \
--role-name ${ROLE_NAME}
結果
An error occurred (NoSuchEntity) when calling the GetRole operation: Unknown
4. IAMポリシーの削除
変数の確認
コマンド
cat << ETX
POLICY_ARN: ${POLICY_ARN}
ETX
結果
POLICY_ARN: arn:aws:iam::************:policy/ServicePolicyFirehose
削除
コマンド
aws iam delete-policy \
--policy-arn ${POLICY_ARN}
結果
(返値無し)
確認
コマンド
aws iam get-policy \
--policy-arn ${POLICY_ARN}
結果
An error occurred (NoSuchEntity) when calling the GetPolicy operation: Policy arn:aws:iam::************:policy/ServicePolicyFirehose does not exist or is not attachable.
5. ロググループの削除
変数の確認
コマンド
cat << ETX
LOG_GROUP_NAME: ${LOG_GROUP_NAME}
ETX
結果
LOG_GROUP_NAME: jawsug-cli-firehose
削除
コマンド
aws logs delete-log-group \
--log-group-name ${LOG_GROUP_NAME}
結果
(返値無し)
確認
コマンド
aws logs describe-log-groups \
--log-group-name-prefix ${LOG_GROUP_NAME}
結果
{
"logGroups": []
}
6. S3バケットの削除
(Athenaの動作確認をしたい場合は残しておいてください)
変数の確認
コマンド
cat << ETX
BUCKET_NAME: ${BUCKET_NAME}
ETX
結果
BUCKET_NAME: jawsug-cli-firehose-************
削除
コマンド
aws s3 rb s3://${BUCKET_NAME} --force
結果
remove_bucket: jawsug-cli-firehose-************
確認
コマンド
aws s3 ls ${BUCKET_NAME}
結果
An error occurred (NoSuchBucket) when calling the ListObjects operation: The specified bucket does not exist
以上