This forum provides solutions for aws developers for their issues.It provides solutions for aws elastic ip, ec2 instance, public ip,route53 pricing, load balancers in aws,Orchestration, ebs,, lambda, installing mongodb on ubuntu etc.

Tuesday 11 July 2017

Amazon VPC




What is Aws VPC ?
VPC is a virtual private cloud or virtual private network which you can define on Amazon cloud and create logically isolated sections on amazon cloud  which supports IPv4 and IPv6 supports hardware VPN connections.
You can have full control of AWS architecture. We can control the selection of ip range.

With VPC, you can able to increase the capacity of existing on-premises infra for your organisation.
Launch the disaster recovery environment.
Launch the testing environment.
Serve the virtual desktop apps with your organisation.

Saturday 8 July 2017

AWS DynamoDB



DynamoDB is no sql, fully managed database.
What is the difference between relational database and nosql database.

Relational database stores the data in table format where as no sql database stores the data as document for high scalability.
NoSQL database stores the data as key value.

There are many no sql database available in the market like mongodb, Cassandra, Redis etc.

What is the difference about DynamoDB.

With dynamoDB, you never worry about database maintanance and administration.

You can use the local version of DynamoDB to developer your app locally. Then use DynamoDB service to scale globally.

It is great for bigdata, gaming, mobile apps etc for high availability.
It takes backup with regular intervals.  You dont need to follow ACID properties.
It is accessed by web services.


AWS Lambda and Pricing


Lambda is a compute service where you can upload your code to and your code will be executed on your behalf using Amazon infrastructure.

Each piece of your code is called a function on the Lambda platform.Using Lambda is bit like porting your code to a server except that you don’t have to manage that and your don’t have to worry about scaling or availability.

Lambda functions can be written in Java, Python or Nodejs.

All the functions you upload to lambda are stateless.
All persistence data you can store using S3 and DynamoDB to store stateful information.

Lambda will automatically scale the  incoming events and scale back down when needed. There is no autoscaling is configured. Everything is automatically handled by Amazon.

How can we trigger a Lambda function ?
Lambda functions can be trigger by events from other AWS services.

For example, you can trigger a lambda function when a new file is uploaded to S3 bucket. You can also trigger through HTTP.

Pricing :

Free Tier Available
1M requests
3M seconds of compute time each and every month.
No usage -  no cost


First Lambda function in Nodejs

Go To AWS Console

Go to Compute Section and open Lambda

Choose runtime as NodeJS 4.3 , this is the latest stable version, please do not pick NodeJS older version - which is a legacy version.
We will go with simple hello-world function

Configure trigger section - we not going to set up triggers right now.
We just set up the function and in future, we are going to connect this function to api gateway.
Configure function section -
Name : Your function name    example: random-number-generator
Description : Simple Lambda function
Runtime : NodeJS 4.3


you have options here
you can edit the code, you can upload the code.
‘use strict’
exports.handler = (event, context, callback) =>{

console.log(‘value1=’,event.key1);
callback(null,event.key1);
};



Wednesday 5 July 2017

Create Docker image and push it to Docker Hub

In this tutorial, you will learn about docker containers, creating docker images and push the docker images to Docker Hub(hub.docker.com/)registry.

What is docker and what is a container ?

Docker is a tool, which allows deploying the applications in a container to run on the host operating system.
Container allows developer to package an application with all the required modules into a single standard unit.

Containers shares the resources in the operating system where for virtual machines need to allocate the resources.

Here am going to explain with hello world application using nodejs.

The command used to build the image using dockerfile.
docker build -t dockerhub-username/container-name

Below command is  used to run the container after generating the img from the dockerfile.

docker run -p 3000:3000 dockerhub-username/container-name

Push the docker image to Docker Hub.

Login into the docker

docker push dockerhub-username/container-name

 I have created a simple hello world app using nodejs. Deploying the application with dockerfile and the docker commands.

https://github.com/SrinivasNidadavolu/docker-nodejs-dockerhub


Monday 3 July 2017

Route 53 pricing

AWS charges only for configured Hosted zones and number of dns queries aws answers.

Per Month :
$0.50/hosted zone upto 25 hosted zones

After 25 hosted zones,

$0.10/hosted zone will be charged.

Traffic Flow :

Aws charges $50.00/policy record / month.

Standard Queries /month :
$0.40/million - first 1 Billion queries
$0.20/million - over 1 Billion queries

Geo DNS queries :
$0.70/million queries - first 1 Billion queries
$0.30/million - over 1 Billion queries

Latency Based Routing queries :
$0.60/million queries - first 1 Billion queries
$0.30/million - over 1 Billion queries

Health Checks :
Basic health checks for AWS Endpoint $0.5/healthcheck/month,
Non AWS Endpoint $0.75/healthcheck/month

Domain Name registration price varies based on market value.





Saturday 1 July 2017

Route53 - ChangeResourceRecordSet - Update issue


 params = {
                                "HostedZoneId": '/hostedzone/hotedzone id', // our Id from the first call
                                "ChangeBatch": {
                                  "Changes": [
                                    {
                                      "Action": "UPDATE",
                                      "ResourceRecordSet": {
                                        "Name": test.example.com ,
                                       "Type": "CNAME",
                                        "TTL": 86400,
                                        "ResourceRecords": [
                                          {
                                            "Value":  52.145.32.32
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              };
                           }

Invalid Input

Error: Invalid XML ; cvc-enumeration-valid: Value 'UPDATE' is not facet-valid with respect to enumeration '[CREATE, DELETE, UPSERT]'. It must be a value from the enumeration. at Request.extractError


Solution : Use Action as "UPSERT" instead of "UPDATE"


 params = {
                                "HostedZoneId": '/hostedzone/hotedzone id', // our Id from the first call
                                "ChangeBatch": {
                                  "Changes": [
                                    {
                                      "Action": "UPSERT",
                                      "ResourceRecordSet": {
                                        "Name": test.example.com ,
                                       "Type": "CNAME",
                                        "TTL": 86400,
                                        "ResourceRecords": [
                                          {
                                            "Value":  52.145.32.32
                                          }
                                        ]
                                      }
                                    }
                                  ]
                                }
                              };
                           }

Access Denied - Route53 - AWS - Create IAM policy

Error: User: arn:aws:iam::502616337927:user/example is not authorized to perform: route53:ChangeResourceRecordSets on resource: arn:aws:route53:::hostedzone/W3MS19SVPW6HSSFGDHFGSHDF at Request.ext

To create a dns record, you need an IAM policy attached to the IAM user.

Create  IAM Policy



{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid" : "AllowPublicHostedZonePermissions",
         "Effect": "Allow",
         "Action": [
            "route53:CreateHostedZone",
            "route53:UpdateHostedZoneComment",
            "route53:GetHostedZone",
            "route53:ListHostedZones",
             "route53:GetHostedZoneCount",
            "route53:ListHostedZonesByName"
            "route53:DeleteHostedZone",
            "route53:ListResourceRecordSets",
            "route53:ChangeResourceRecordSets"
         ],
         "Resource": "*"
      },
      {
       "Sid" : "AllowHealthCheckPermissions",
         "Effect": "Allow",
         "Action": [
            "route53:CreateHealthCheck",
            "route53:UpdateHealthCheck",
            "route53:GetHealthCheck",
            "route53:DeleteHealthCheck",
            "route53:ListHealthChecks",
            "route53:GetCheckerIpRanges",
            "route53:GetHealthCheckStatus",
            "route53:GetHealthCheckCount",
            "route53:GetHealthCheckLastFailureReason"
         ],
         "Resource": "*"
      }
   ]
}



Labels

Online Training

Your Name :
Your Email: (required)
Your Message: (required)

Powered by Blogger.

Recent Posts

Find Us On Facebook

Popular Posts