top

Search

AWS Tutorials

Bash script is a simple text file that contains commands which are used in the command line.  When an Amazon EC2 instance is launched, user data can be passed to the instance in different ways. This user data can be used to further perform common automated configuration tasks as well as run scripts once the instance has been started.  User data type which can be passed to Amazon EC2 includes: Shell scripts, and cloud-init directives. Shell scripting is considered to be a simple way of sending user data to an EC2 instance.  Shell scripts should begin with #! characters and it should be followed by the path to the interpreter which is to be used to read the script (the commonly used path is /bin/bash). When scripts are entered as user data, they are executed as a ‘root’ user, which means the ‘sudo’ command shouldn’t be used inside the script. Any file which is created by user is owned by the root, and if a non-root user somehow gains permission to access these files, the permissions have to be immediately modified. Since the script doesn’t run interactively, users who write the script should make sure they don’t use commands that require user feedback (an example is yum update without providing the -y flag).  When the processing of user provided script begins, it is first copied to a location and then executed. The path usually looks like this- /var/lib/cloud/instance/instance-id/. The script doesn’t get deleted after it completes its run. But the user has to make sure that they delete the script from the above-mentioned path before creating an AMI from the same instance. Otherwise, when any instance from AMI gets launched, the script will still reside in the same directory.  The user has the control over specifying the instance user data when the instance is launched. If the root volume of the instance to be launched is an EBS volume, it can also be stopped, and the user data can be updated, and then specified again to launch it.  Some amount of time has to be given for the instance to launch and execute the commands which are provided in the script. The user can then check to see if the tasks mentioned in the script have been completed successfully or not.  Prerequisites A public DNS name which can be reached by the Internet.  The security group has to be configured to allow connections coming from SSH (Port 22), HTTP (Port 80), and HTTPS (Port 443).  Conclusion We understood how user data can be passed to an Amazon EC2 instance with the help of a bash script.  
logo

AWS Tutorials

What is Bash Script in AWS?

Bash script is a simple text file that contains commands which are used in the command line.  

When an Amazon EC2 instance is launched, user data can be passed to the instance in different ways. This user data can be used to further perform common automated configuration tasks as well as run scripts once the instance has been started.  

User data type which can be passed to Amazon EC2 includes: Shell scripts, and cloud-init directives. Shell scripting is considered to be a simple way of sending user data to an EC2 instance.  

Shell scripts should begin with #! characters and it should be followed by the path to the interpreter which is to be used to read the script (the commonly used path is /bin/bash). When scripts are entered as user data, they are executed as a ‘root’ user, which means the ‘sudo’ command shouldn’t be used inside the script. Any file which is created by user is owned by the root, and if a non-root user somehow gains permission to access these files, the permissions have to be immediately modified. Since the script doesn’t run interactively, users who write the script should make sure they don’t use commands that require user feedback (an example is yum update without providing the -y flag).  

When the processing of user provided script begins, it is first copied to a location and then executed. The path usually looks like this- /var/lib/cloud/instance/instance-id/. The script doesn’t get deleted after it completes its run. But the user has to make sure that they delete the script from the above-mentioned path before creating an AMI from the same instance. Otherwise, when any instance from AMI gets launched, the script will still reside in the same directory.  

The user has the control over specifying the instance user data when the instance is launched. If the root volume of the instance to be launched is an EBS volume, it can also be stopped, and the user data can be updated, and then specified again to launch it.  

Some amount of time has to be given for the instance to launch and execute the commands which are provided in the script. The user can then check to see if the tasks mentioned in the script have been completed successfully or not.  

Prerequisites

  • A public DNS name which can be reached by the Internet.  
  • The security group has to be configured to allow connections coming from SSH (Port 22), HTTP (Port 80), and HTTPS (Port 443).  

Conclusion 

We understood how user data can be passed to an Amazon EC2 instance with the help of a bash script.  

Leave a Reply

Your email address will not be published. Required fields are marked *

Comments

tenzin nyima

Whoever has contributed to this article...I would like to say thank you... it has been of good help to the readers.

alvi

This blog is very helpful and informative, and I really learned a lot from it.

alvi

It is very helpful and very informative, and I really learned a lot from this article.

alvi

Such a very useful article. I would like to thank you for the efforts you made in writing this awesome blog.

Jeanne

Very useful and awesome blog!