ok, so here I’m in a role of DevOps, so far it’s not that easy to grasp all the infrastructure details that my teammate on this position made for 2 years.
First of all I’ve struggled with getting the way to setup Route53 to work with direct EC2 instance. As our infra was built using many tools like cloudformation, puppet, ruby scripts, it was hard to combine all of that w/o special knowledge of how do they work.
Finally I know that there are 2 ways of setting up environment:
A. (w/o ELB)
- Create template in Cloudformation to build proper Amazon stack giving the IAM policy with access to S3 resources.
- Describe puppet *.pp script to setup all required to run the app on server
- Configure Jenkins job so that it will register the instance DNS name as CNAME on Route53 after it was created and assigned Public DNS and instance state is InService
B (using ELB)
- Create CFN template with launch configuration
- Create elb.tf script for terraform to execute (use separate job in Jenkins to build it)
- Describe puppet *.pp script, highlighting whats should be configured on instances after creation and what ELB these instances should be assigned to.
- Create 2 Jenkins job that will 1/ create ELB 2/create instances in auto-scaling and full deployment process in shell command.
So far so good, still have a problem that can’t reach the instance even though it was created using 1st option and there is proper DNS record with CNAME created in Route53.
So I guess I’ll google more on how that works and fix tomorrow.
In summary I think this is not hard in general but requires certain skill and confidence on linux bash scripting, basic knowledge of tools like puppet, ruby and amazon.
My main mistake is that I can’t think much before doing an action, instead action goes several times until it freaks me out. So I promise myself to think at least for 1–2 minutes after having something broken and not just trying the best 1st option that comes to my mind.
Self reflection is a good instrument to not circle around problem being frustrated. I need to master it more to gain more self-confidence in what I’m doing as no one is perfect and I’m like diving into completely new project so it’s normal that I don’t know something.
So tomorrow I’ll try to be better than that as it’s my role to be on higher level and to help my team, not just dig in DevOps part, what is btw quite fun when it works:)