Invoking Windows EC2 terminal remotely - amazon-web-services

I need to connect to my Windows EC2 terminal to invoke a local script on it from a different machine CMD.
I tried to search and I 'v found the following: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html. This solves the problem for Linux, not windows. Any suggestion or lead for a solution?

On Windows machines, you can remotely SSH onto your EC2 instance using a bash shell, which supports SSH.
If you have git bash installed, it can do the trick for you.
You will need the pem file which you can generate before launching your EC2 instance, at the very last step. Else, you can also use your own key - see docs from AWS here.

You can look into the option of session manager.
Please refer: https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html
To give you a brief, Session Manager is a fully managed AWS Systems Manager capability that lets you manage your Amazon EC2 instances, on-premises instances, and virtual machines (VMs) through an interactive one-click browser-based shell or through the AWS CLI.

Related

How can I view files in EC2 instance?

I have just started learning about AWS. I am following along a tutorial and I have created a hello.txt file in EC2 using PuTTY on Windows. I wanted to know where I can see all the files listed in the EC2 instance on a GUI. I believe they are not stored locally on my computer; but I cannot find them on the AWS console either? Thank you.
PuTTY console screenshot
After some more AWS training, I found out that I can also see the files and folders in my EC2 instance in a "GUI" format using the Fleet Manager in AWS Systems Manager. The Systems Manager Agent must be installed in the EC2 instance and the instance must be given the appropriate permissions using IAM.
I wanted to know where I can see all the files listed in the EC2 instance on a GUI
Short answer:
Using a Windows PC to access an AWS EC2 you use PuTTY to navigate the file system. The hello.txt file you created is listed.
To open it you can do a cat hello.txt.
Official Answer:
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-2-install-gui/
The instructions get you to install the MATE desktop environment, a lightweight GUI based on GNOME 2 available as an extra for Amazon Linux 2.

Remote update ec2 instance with docker image

I have a release of my project. I build a docker image and deploy it on an ec2 instance.
Later, when I have a new release, I would like update the docker on ec2 remotely (without accessing the machine, just executing some service).
Is there a way how to do it without ECS and ElasticBeanstalk?
If it's not possible can I somehow re-run the cfn-init script?
My Research
https://aws.amazon.com/blogs/aws/new-ec2-run-command-remote-instance-management-at-scale/
You can manage your instances remotely (i.e. make changes without manually SSHing into the instance and typing commands) by using any of the many system management services out there. AWS offers Simple Systems Manager (SSM) of which the Run Command you linked is part. AWS also offers the OpsWorks service which uses Chef. You also have other products like Ansible and SaltStack, and you can optionally integrate the use of those services with the AWS SSM service.

Creating an iso of a RHEL instance

I have an amazon ec2 instance with RHEL 7.3 on it. I would like to convert this into an iso so that I can migrate it wherever I want. What are the best tools to create an iso of a virtual machine. Or how do I clone/backup this VM so that I can restore it anywhere I want?
You can work with VM and AWS programatically via AWS CLI commands.
You want to get familiar with import-task and export-task commands.
The best place to start is by reading an official AWS guides for:
Exporting an Instance as a VM Using VM Import/Export
Importing a VM as an Image Using VM Import/Export
The key information you need to pick up from the guide is this quote:
"You can't export an instance from Amazon EC2 unless you previously
imported it into Amazon EC2 from another virtualization environment."
Yes, there are solutions, one of them linked by #Nicholas Smith. That being said, if you go the unofficial route you might end up in a dark alley where help might not be available. I highly recommend and warn here to not proceed with trying to clone EC2 into VM at this point. You will spend a lot of time with a huge risk factor for future.
For you to be able to achieve what you want, you need to create a RHEL VM using any VM software, you need to load this VM into AWS and then you will be able to work with VM in AWS making any necessary changes and export again for local or transportation needs.
As you are running a widely-used Linux distribution - RHEL, you can attempt to recreate your EC2 environment manually by launching a VM that runs the same kernel version along with the same package versions. From there, you can tarball what files you need from your production instance and copy them over to your on-premise site by using SCP/SFTP.
Just get your RHEL environment into VM locally and import to AWS and you set.
Clonezilla provides functionality to create images. Generated images can be converted to ISO files.
It doesn't seem to be something that Amazon promote as a service however the aws cli tools have an ec2-unbundle command for extracting from an AMI. There's a guide here on how to download and run an EC2 AMI locally by using it.
Caveat is it appears the ec2-unbundle command currently only works on Linux and not OS X or Windows.

Finding the services running on multiple aws ec2 instances

Is there a command in the AWS cli to get a list of services running on my ec2 instances?
Normally I log into each ec2 instance individually, and check using Linux commands such as "netstat" or "ps -eaf".
There are around 400 instances, so if I do this manually it takes quite a lot of time. If any AWS commands are there to find the services running without actually logging into the instance, it would be great.
Thanks in advance.
The AWS Command Line Interface is a tool to manage your AWS services. You cannot use AWS-CLI to manage OS-level service. With AWS-CLI, you can control multiple AWS services from the command line and automate them through scripts.
Hope it helps :-)
You might have some luck with EC2 Run Command. From their docs:
Run Command provides a simple way of automating common administrative tasks
like executing Shell scripts and commands on Linux [...]
Run Command allows you to execute these commands across multiple
instances and provides visibility into the results

Is it possible to compile a code in Amazon EC2?

I am writing an online judge like spoj.pl .I would like to compile the source code in EC2. Is it possible to compile and execute the C,C++,Java codes in Ec2 ? Do we have access to run shell commands ?
Yes - EC2 instances have operating systems just like your PC.
If you chose a Windows instance, you can Remote Desktop to it and install Eclipse or whatever.
If you chose Linux, it is a bit more tricky since you will have to do more work with the terminal
though you can install NX client and also "remote desktop" to your instance.
Yes it is possible. Since EC2 instances run standard operating systems, you can do pretty much anything you would do in a non-EC2 server.
On Linux, the usual way to run commands is through SSH. When you create an EC2 instance, you are asked to either create or provide a key pair. You must configure your SSH client to use the private key to connect to the EC2 instance.