AWSで実行されているEC2インスタンスの数は約1年間です。ここでは、未使用インスタンスのクリーンアップアクティビティを実行しようとしています。インスタンスを起動したユーザー名に基づいています。RunInstancesイベントのCloudTrailログからのユーザー名の取得
S3 Bucketからcloudtrailログをダウンロードしようとしましたが、ユーザー名と 'RunInstances'イベントをフィルタリングして、インスタンスを起動したユーザーとインスタンスの詳細を見つけました。
以下は、すべてのcloudtrailログを1つのフォルダにダウンロードし、それらを解凍してインスタンスを 'RunInstances'イベントでフィルタリングしてインスタンスの数を与えるために使用したスクリプトです。
「RunInstances」イベントの各ログからユーザー名を取得し、インスタンスを停止する際に助けが必要です。
マイスクリプト:
#!bin/sh
s3url="s3://S3bucket/AWSCloudtrailLogs/<accountno>/CloudTrail/region/2016/"
for ((i=1; i<=12; i++))
do
for ((j=1; j<=31; j++))
do
if [[ $i -le 9 && $j -le 9 ]]
then
aws s3 cp $s3url/0$i/0$j/ ~/test/ --recursive
elif [[ $i -le 9 && $j -ge 10 ]]
then
aws s3 cp $s3url/0$i/$j/ ~/test/ --recursive
elif [[ $i -ge 10 && $j -le 9 ]]
then
aws s3 cp $s3url/$i/0$j/ ~/test/ --recursive
elif [[ $i -ge 10 && $j -ge 10 ]]
then
aws s3 cp $s3url/$i/$j/ ~/test/ --recursive
fi
done
done
for v in `ls ~/test/` ; do gunzip $v ; done
for v in `ls ~/test/` ; do cat ~/test/$v | grep RunInstances >> ~/test/result.txt; done
grep -o 'RunInstances' ~/test/result.txt | wc -l
は、とにかく、私はzipファイルをダウンロードせずにそれを行うと直接S3バケット自体から情報を取得することができますありますか?これは、100万を超えるログファイルがあるため、時間がかかるためです。
プログラミング言語やスクリプトでこれを理解する方法が必要です。
ご協力いただきありがとうございます。
これはEC2インスタンスまたはPCで実行していますか? S3への接続は、EC2インスタンスから非常に高速になります。あなたが解凍する必要があるので、私はダウンロードの代わりに、おそらくhttps://github.com/s3fs-fuse/s3fs-fuseを除いて本当に分かりません。 – at0mzk