CategoryUncategorized

AWS SSL Certificate Uploading

Facebooktwittergoogle_pluslinkedinmailby feather

Whenever you need to enable the HTTPS secure communication for your website, if your are using AWS, ELB is a cool service on which you can define your SSL certificate and termination and scale the nodes without considering the certificate. ELB is able to perform SSL termination and communicate with the nodes with HTTP.

First of all you need to create a CSR (Certificate Signing Request), assuming you need Wildcard SSL, CN is *.domain.com :

openssl req -new -newkey rsa:2048 -nodes -out star_domain_com.csr -keyout star_domain_com_private.key -subj "/C=TR/ST=Istanbul/L=Istanbul/O=domain/OU=IT/CN=*.domain.com"

There will be 2 output files:

1. star_domain_com_private.key : This will be your private key

2. star_domain_com.csr : This will be used to request the certificate from a Certificate Authority

Next step is, by the help of CSR, to initiate the SSL certificate request from a certificate authority of your choice.

You will be provided from Certificate Authority, a Public Key:

SSL Public Key 

AWS is expecting from you a PEM format. In order to achieve that, you need to convert your certificate from CRT to PEM using openssl:

openssl x509 -in d06409309fccd3b.crt -out domain_public.pem -outform PEM

For the private key you already created, which is RSA, you also need to convert it to PEM:

openssl rsa -in star_domain_com_private.key -text > domain_private.pem

The next phase is uploading the public and private key to AWS in PEM format:

AWS –> EC2 –> Load Balancers

Create or open a current Load Balancer –> Listeners –> Add –> HTTPS –> Change –> Upload a new SSL Certificate

Copy and paste the public and private keys into the fields and Save

That's all!

AVEA – Turk Telekom DevOps Presentation and Webinar

Facebooktwittergoogle_pluslinkedinmailby feather

I am invited to Avea Technology Campus to make a presentation about DevOps Mindset which is also broadcasted as webinar to all Turk Telecom employees.

We discussed some of the pain points they are experiencing and possible ways to overcome those.

Avea Turk Telekom DevOps

Avea Turk Telekom DevOps

Istanbul Lean Startup DevOps Presentation

Facebooktwittergoogle_pluslinkedinmailby feather

 

I was invited by Istanbul Lean Startup Meetup Group, together with the sponsorship of Agile42, to present the DevOps approach to their community. 

DevOps is the mindset i have encountered in my latest projects. I involved into automation of the deployment for the latest Java based project DigOut i worked on using AWS Elastic Beanstalk and Jenkins.

Here is the presentation link: Presentation

Here are some pictures:

Derya Sezen DevOps Presentation

Derya Sezen DevOps Presentation

 

USB Keyboard stopped working on my Macbook Pro Retina

Facebooktwittergoogle_pluslinkedinmailby feather

 

This is the most weird incident i ever experienced concerning with OS/HW !

After my Macbook comes back from the sleep mode, the USB keyboard stopped reacting, seems the USB port even stopped providing 5V electricity.

What i did:

1- Plugged the keyboard to another USB port, it works!! So no problem with the keyboard

2- Plugged other USB devices to the problematic USB port, it works!! So no problem with the USB port

I also reset PRAM and SMC, but still this did not bring any difference.

After, i found out the following thead under Apple discussions:

Apple Community Thread

Seems i am not the one who is having that experience, that's good at least!:)

The solution is:

– Connect any USB extension cable between the keyboard and the USB port, and it works:

IMAG0786 IMAG0787

This is the most weird situation EVER!!

The question is: How long will i need to keep on using the USB extension, forever? 

 

 

Voxxed Days Istanbul 2015

Facebooktwittergoogle_pluslinkedinmailby feather

Thanks to kodcu.com for the great VoxxedIstanbul event, in which i was also an organizator.

It was also awesome to meet with top-level technology developers worldwide and share the experience.

Although i was not able to attend to all of the sessions, because of my responsibilities there, from the ones which i attended, i have some notes for myself:

– ElasticSearch has been becoming a choice for the new projects against Solr

– Using Logstash to feed the data to ElasticSearch.

– MicroServices approaches is being utilized more than i have expected, still some questions about how to implement and migrate to it. Thanks to Arun Gupta for the possible pattern proposals to overcome this.

– It was interesting to hear about the hash and clustering mechanism of Cassandra from Christopher Batey.

Some photos from the organization:

VoxxedIstanbul Team

VoxxedIstanbul TeamDisadvantages of Monolith Architecture IMAG0738 IMAG0742 IMAG0747 IMAG0749

 

 

Dilemma about when to feed the data during automated deploys: Code First vs. Model First

Facebooktwittergoogle_pluslinkedinmailby feather

In case you are supposed to feed the initial data to the DB for a code-first project during deploy-time (There are possible ways to do it in the code level of course), there is a problem: You do not know when the database schema is created even if you start the service.

In my case, i have Tomcat environment and i cannot feed the data just after i start the tomcat service. There can be two ways to workaround that:

1. Polling: Check periodically if the schema is created and after feed the data

2. Sleep: Observe the worst-case time and put a "sleep" before the data feed scripts

If there are other practical ways to do that during deploy-time and out of the codebase, please comment!

AWS Elastic Beanstalk how to access to the RDS environment variables under ebextensions and postdeploy hooks

Facebooktwittergoogle_pluslinkedinmailby feather

As a beginning, just to let you know, it is now my 54th deployment (which means around a week) using ebextensions in order to reverse engineering how it works in terms of environment variables!

The RDS environment variables are:

– RDS_USERNAME

– RDS_PASSWORD

– RDS_HOSTNAME

– RDS_DB_ NAME

The weird part is, accessing to those environment variables under the following 3 scenarios are different:

1. Directly under ebextensions : This is not possible !

2. Under the scripts triggered by ebextensions : This is possible, you can use them like $RDS_HOSTNAME …

3. Under the hooks  : This was not possible but here is the workaround that i found and worked for my case:

– Store them under a file using a script trigged by ebextensions:

echo RDS_HOSTNAME=$RDS_HOSTNAME >> /etc/environment
echo RDS_USERNAME=$RDS_USERNAME >> /etc/environment
echo RDS_PASSWORD=$RDS_PASSWORD >> /etc/environment

– Parse them from the hook:

RDS_HOSTNAME="$(awk -F= '/RDS_HOSTNAME/{print $2}' /etc/environment)"
RDS_USERNAME="$(awk -F= '/RDS_USERNAME/{print $2}' /etc/environment)"
RDS_PASSWORD="$(awk -F= '/RDS_PASSWORD/{print $2}' /etc/environment)"

What a nasty solution but works!

 

AWS Elastic Beanstalk ebextensions Security Group firewall rules

Facebooktwittergoogle_pluslinkedinmailby feather

In order to define the firewall rules of the Security Group that the instance will belong to, you need to define the “Resources” like as the following:

Resources:

  AWSEBSecurityGroup:

    Type: “AWS::EC2::SecurityGroup”

    Properties:

      GroupDescription: “Security group to allow HTTP, HTTPS,SSH”

      SecurityGroupIngress:

        – {CidrIp: “0.0.0.0/0”, IpProtocol: “tcp“, FromPort: “8080”, ToPort: “8080”}

        – {CidrIp: “0.0.0.0/0”, IpProtocol: “tcp“, FromPort: “8443”, ToPort: “8443”}

        – {CidrIp: “0.0.0.0/0”, IpProtocol: “tcp“, FromPort: “443”, ToPort: “443”}

        – {CidrIp: “0.0.0.0/0”, IpProtocol: “tcp“, FromPort: “80”, ToPort: “80”}

        – {CidrIp: “0.0.0.0/0”, IpProtocol: “tcp“, FromPort: “22”, ToPort: “22”}

Save the “resources.config” under “.ebextensions” folder and deploy!

      

AWS Elasticbeanstalk hooking after app deploy

Facebooktwittergoogle_pluslinkedinmailby feather

I need to run a specific command after the app is deployed but there is no relevant key under ebextensions for that purpose. The key “container_commands” is not giving this functionality, runs your command before the deploy, but there is a workaround:

1. Create your own script and place it under .ebextensions directory

2. Under container_commands, add the following lines (preferably in a separate config file):

container_commands:

         01-command:

         command: cp .ebextensions/001_pre_tomcat_start.sh /opt/elasticbeanstalk/hooks/appdeploy/post

      02-command:

         command: chmod 775 /opt/elasticbeanstalk/hooks/appdeploy/post/001_pre_tomcat_start.sh

That’s it!

OSX Yosemite Bluetooth Mouse stopped working

Facebooktwittergoogle_pluslinkedinmailby feather

Honestly, I was just thinking of the stability of OSX Yosemite and just after suddenly the connection with Bluetooth mouse is broken (What a coincidence!) and cannot be established again even i unpair and pair. Beside, the Bluetooth seems not responsive when i tried to disable it.

As a veteran Linux guy, i switched to the terminal and typed the following command:

killall blued

This helped the daemon to restart itself (watchdog starts it again)


visited 41 states (18.2%)

Follow me on Strava