如何远程在EC2实例上运行脚本?

时间:2016-06-23 17:55:55

标签: amazon-web-services amazon-s3 amazon-ec2

我有一个EC2实例,我需要通过我的程序从其D盘下载文件。目前,这是一个非常烦人的过程,因为我无法直接从本地计算机访问该实例。我现在正在做的方法是在实例上运行脚本,实例将我需要的文件上传到S3,程序访问S3以读取文件。

只是想知道是否有任何简单的方法来访问实例上的驱动器而不是通过S3?

2 个答案:

答案 0 :(得分:0)

我使用AWS DataPipeline及其任务运行器在远程实例上执行脚本。 taskrunner等待发布到其工作组的管道事件 http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-using-task-runner.html 我用它来按计划执行shell脚本和命令。要运行的脚本应上传到S3,数据管道模板指定脚本的路径。适用于定期任务。您可以通过脚本在遥控器上执行任何操作。

答案 1 :(得分:-1)

您不能直接从EC2下载文件,而只能通过s3(或使用scp命令)从远程ec2下载文件。 但是,为了简化此烦人的过程,您可以使用AWS Systems Manager。

AWS Systems Manager运行命令允许您在EC2以及本地服务器上远程安全地运行命令集。以下是实现此目的的高级步骤。

附加实例IAM角色: ec2实例必须具有带策略AmazonSSMFullAccess的IAM角色。该角色使实例能够与Systems Manager API进行通信。

安装SSM代理: EC2实例上必须安装了SSM代理。 SSM代理处理运行命令请求并根据命令配置实例。

执行命令: 通过AWS CLI的示例用法:

执行以下命令以检索在实例上运行的服务。用ec2实例ID替换Instance-ID。

aws ssm send-command --document-name "AWS-RunShellScript" --comment "listing services" --instance-ids "Instance-ID" --parameters commands="service --status-all" --region us-west-2 --output text

更多详细信息:https://www.justdocloud.com/2018/04/01/run-commands-remotely-ec2-instances/