May 8, 2016

அகநானூறு – 355

பாடல் - 355 மாவும் வண்தளிர் ஈன்றன குயிலும் இன்தீம் பல்குரல் கொம்பர் நுவலும் மூதிலை ஒழித்த போதுஅவிழ் பெருஞ்சினை வல்லோன் தைவரும் வள்ளுயிர்ப் பாலை நரம்புஆர்த் தன்ன வண்டினம் முரலும் துணிகயம் துன்னிய தூமணல் எக்கர்த் தாதுஉகு தண்பொழில் அல்கிக் காதலர் செழுமனை மறக்கும் செவ்விவேனில் தானே வந்தன்று ஆயின் ஆனாது இலங்குவளை நெகிழ்ந்த எவ்வம் காட்டிப் புலந்தனம் வருகம் சென்மோ- தோழி! யாமே எமியம் ஆக நீயே பொன்நயந்து அருள்இலை யாகி இன்னை ஆகுதல் ஒத்தன்றால் எனவே. உரை|Explanation: மாமரம் நல்ல வலிமை மிக்க துளிர் விட்டுள்ளது, குயில் மரக்கிளையின் மேல் இனிமையாக பாடிக்கொண்டிருக்கிறது, மரங்கள் முதிர்ந்த இலைகளை உதிர்த்து, அதன் பெரிய கிளைகளில் மலர்கள் பூத்துக்குலுங்குகின்றன, திறமையான ஒருவர் பாலை நிலத்தின் நரம்புக் கருவியை மீட்பது போல தேனிக்கள் மென்மையாக ரீங்கரிக்கிறது, இந்த வெயில் காலத்தில், காதலர்கள் தங்கள் வசதியான வீட்டை மறந்து, தெளிவான நீரோடை அருகில் மணல் குன்று மற்றும் பூக்களின் மகரந்தம் ததும்பும் சோலையில் தங்கிவிடுவர். Read more

May 5, 2016

Automated Blue/Green deployment using Lambda and CloudFormation

Blue/Green deployment is a well-known method to deploy an application without any downtime. Performing DNS switch is one of the very common techniques to achieve this. Using DNS switch has a minor issue with DNS caching which might take some time for DNS change to be propagated. Apart from DNS switch, AWS gives us two different options to switch the stacks. One is to have single ELB and swap it across auto-scaling group and another is switching the launch configuration of the auto-scaling group. Check the following presentation on various methods to achieve blue/green deployment in AWS. Read more

March 6, 2016

Cracking AWS Solution Architect Professional Certification

If you had noticed, there has been a gap of few weeks since my last post. I went off the radar to prepare for AWS Certified Solution Architect Professional exam. Lots of learning and completed it successfully. I can’t provide any details on the questions since I have signed a NDA. But I shall provide some suggestions based on my experience. Read through the blue print and understand the weight-age for different sections. I took this Linux Academy course. It was helpful to refresh all the topics and useful on services which I didn’t use regularly. Quiz provided by Linux Academy was okay. I tried Cloud Academy quiz and it had lots of typo and didn’t cover all the sections. Reading the product documentation, FAQs, whitepapers & case studies were useful. Most of the questions had multiple requirements which covers more than 3 AWS services. Hence while answering we need to make sure that the selected answer is best suitable for all the requirements. Some of the questions on outdated (which is expected) referring to old reservation model. But they did a good job in avoiding feature specific questions which might change. Certain AWS services like Direct Connect, Storage Gateway, CloudFront, IAM, S3 were prominent. Knowledge on storage concepts like RAID, iSCSI connections used in Storage Gateway, etc will be useful. Deep knowledge on Networking especially VPC, VPN, Routing, etc would help. Good understanding of Web Identity federation, SAML based federation, Custom identity broker & SSO to Management console is needed. Knowledge on media streaming, download/upload options, performance and cost benefits using CloudFront would be required. You might already know that the questions & answers are lengthy. Many questions have at least two correct answers and identifying the best answer was really tricky. 72 questions in 170 minutes looks achievable and I had 25 minutes to spare after reviewing all the questions which I marked for review. Don’t miss to take the practice exam (it costs $40) and it will help you to understand your area of strength and weakness. Take a practice exam after you complete your preparation and before booking the exam. Based on the result you shall book or study deeply on the sections that you need more attention. Don’t take the practice exam multiple times since the questions will be same during all the attempts of practice exam (you shall find this detail in fine prints when you try to re-book for practice exam). I would say all the effort and money that you spend on this certification is worth it. Read more

December 20, 2015

Installing Let’s Encrypt - Free & Open TLS certificate

Let’s Encrypt is a free and open certificate authority managed by a public benefit organization called ISRG which concentrates on the security communication over the Internet. There are many technology companies like Mozilla, Akamai, EFF, Cisco, IdenTrust, Facebook, etc are sponsors and the platinum sponsors have a seat in their Technical Advisory Board. It uses Automated Certificate Management Environment (ACME) protocol to enable communication between the certification authority and the web server to which the certificate is issued. Let’s encrypt uses ACME to validate the domain Server Name Indication. ACME protocol has been submitted as draft to IETF for formal approval process to be an RFC. Read more

December 20, 2015

Sending response back to CFN custom resource from python Lambda function

CloudFormation uses a pre-signed S3 URL to receive the response back from the custom resources managed by it. There are few blue prints available for Node.js Lambda custom resources but nothing available for python yet. Hence I created this simple function which shall be used to send the response back to CFN custom resource by performing PUT request to the pre-signed S3 URL. import json import requests def lambda_handler(event, context): responseStatus = 'SUCCESS' responseData = {} if event['RequestType'] == 'Delete': sendResponse(event, context, responseStatus, responseData) responseData = {'Success': 'Test Passed.'} sendResponse(event, context, responseStatus, responseData) def sendResponse(event, context, responseStatus, responseData): responseBody = {'Status': responseStatus, 'Reason': 'See the details in CloudWatch Log Stream: ' + context.log_stream_name, 'PhysicalResourceId': context.log_stream_name, 'StackId': event['StackId'], 'RequestId': event['RequestId'], 'LogicalResourceId': event['LogicalResourceId'], 'Data': responseData} print 'RESPONSE BODY:n' + json.dumps(responseBody) try: req = requests.put(event['ResponseURL'], data=json.dumps(responseBody)) if req.status_code != 200: print req.text raise Exception('Recieved non 200 response while sending response to CFN.') return except requests.exceptions.RequestException as e: print e raise if __name__ == '__main__': lambda_handler('event', 'handler') I’m using json module to form the response body, json module is available by default in the Lambda container. Whereas the requests module which I use to perform the http PUT request needs to be packaged along with the python script. Read more

© Prakash P 2015 - 2023

Powered by Hugo & Kiss.