Pages

Aws Experience

I have been thinking about creating an Amazon developer's account and experiment with some Ec2 stuff for about two years now. Recently I created an account and begin experimenting with the free tiers.

Instances

Basically amazon offers free a micro instance for a year. You have the option to choose from different types of operating system from Windows to Ubuntu, Redhat and many more. The name of the instance (nano, micro, ...) is based on the specifications that instance will have. For example, the micro instance has 8GB of local disk space and 1GB of memory, with 1processor core. Similarly you can choose other higher instances based on your need. The cost of the instances goes up based on the specifications.

AMI

 Also there are many other Images (AMI's ) created which have different features already installed/configured. Some AMI's are already configured for Java environment while others have pre-installed databases and other languages/packages. You can even create your own AMI once you install and configure your instance. I think Amazon charges you for the storage of the AMI but its pretty low compared to keeping an instance alive. The benefit of AMI is that you don't have to spend hours installing the required packages and configuring your machine everytime you fire up a new instance.

Security Groups

You can attach various security groups to your instance. Security group is where you will configure your security settings like
  • Should the incoming traffic be allowed or not
  • which ip-addresses/ports are open for incoming traffic and out-going traffic
By default, the port is not open and you can't connect to your remote instance via ssh or anything. You have to manually allow the connections via the security settings.

Storage

In addition to the local storage of each instances, you have the option to choose other storage options for higher capacity and reliability. Local storage is not reliable to store persistent information as it may be lost when the instance restarts for some reason. 

S3 is the most populare simple bulk object storage service provided by amazon at a reasonable cost which depends on storage capacity and data transfer. It's good for long term storage of objects. With the api and key authentication, its very easy to store and retrieve files and objects.

Load Balancing

Amazon has a load balancing service which is very handy for scaling and security. You can create an instance of load-balancer and point it to a instance group, and the load-balancer automatically distributes the load among the server in round-robin or whatever way possible. As of security stand-point, you can configure the security group of your instances to private so that they can not be accessed publicly from the internet, and can only be accessed via internal applications such as load-balancer. This definitely makes the job of a hacker very difficult if not impossible.

Auto Scaling

There is an auto scaling feature available in AWS which can automatically increase or decrease the number of instances depending on some resource utilization in the instance. For example, you can configure you instance to increase 1 instance every 5 minutes for the next 10 minutes if the cpu utilization is more than 70% and similarly decrease the instance if the cpu utilization is less than 50%  with a minimum of 1 instance and so on.

Services

AWS provides various types of services in-built and you can directly use it. The services includes the following
  • Computing services
  • Storage 
  • Databases 
  • Developer tools (CodeCommit, codeBuild, codePipeline)
  • Management tools(cloudWatch, cloudConfig, cloudFormation, )

AWS SDK

Amazon also provides sdk which can be used to automate the interaction with aws. You can basically add the aws sdk dependency in you maven or gradle file and use it to interact with aws and automate the interaction with S3 instances or creation/configuration of ec2 instances and many more.

Here is a very good youtube video of using sdk to interact with S3 instances for storage.

I will keep adding other information to this blog as i gain new information. 

No comments:

Post a Comment

If you like to say anything (good/bad), Please do not hesitate...