我们在AWS中运行了大量EC2实例大约1年。现在我们正在尝试为未使用的实例执行清理活动,并基于我们已启动实例的用户名。
我尝试从S3 Bucket下载cloudtrail日志,并尝试过滤用户名和'RunInstances'事件,以便找到启动实例的用户以及实例详细信息。
以下是我用于将所有cloudtrail日志下载到单个文件夹中的脚本,解压缩它们并通过'RunInstances'事件过滤实例并提供实例计数。
我需要帮助从“RunInstances”事件中检索每个日志中的用户名并停止实例。
我的剧本:
- name: Run psql to pull in initial config data
become_method: sudo
become: yes
become_user: postgres
shell: psql -U postgres -w eclaim < /opt/eclaim_revamp/sql_scripts/{{ item }}.sql
with_items:
- initial_config
- initial_sql_script
- tmp_hrms
无论如何我可以在不下载zip文件的情况下直接从s3存储桶本身获取信息吗?因为这需要花费大量时间,因为我们有大约100万个日志文件。
我需要一种方法来解决任何编程语言或脚本。
感谢您的支持。
答案 0 :(得分:1)
directly get info from s3 bucket itself
你是什么意思? S3是存储资源而不是计算资源。您可以避免下载到磁盘文件。相反,您可以在内存中处理它而无需保存到文件但仍需下载它。
建议:
我每天都这样做(仅限前一天的日志),但我无法提供代码。
答案 1 :(得分:0)
不是下载所有s3日志,而是查询它为什么不使用Athena!之类的东西。这将节省您的时间并大大减少您的工作量。 Cloudtrail确实提供了有关谁启动了实例及其sdk的足够信息。您可以使用boto3编写python脚本,还可以设置cron作业每天运行一次。