Vegetable planting Schedule – Karachi, Pakistan


English Name Urdu Name Sowing Time Rows X Rows(inch) Plants X Plants(inch) Yield/Plant First Harvest
Arum اروی Feb – March 24 18 180 – 200 days
Bitter Gourd کریلہ Feb – March, June – July 36 12 3 kg
Bottle Gourd کدو Feb – March, June – July, October 36 18 4 kg
Brinjal بینگن Feb – March, June, Nov 30 18 2 kg 60 -70 days
Broccoli Aug –Nov 24 12 0.75 kg 60 -80 days
Cabbage بند گوبھی Aug – Nov 24 12 0.75 kg 60 -100 days
Carrot گاجر Sep – Oct 18 2 130 gm 60 -80 days
Cauliflower پھول گوبھی June – Oct 24 12 850 gm 60 -80 days
Celery Sep – Oct 12 4 100 gm 100 – 120 days
Coriander دھنیا July _ Nov, Feb -April 45 -50 days
Cucumber کھیرا Feb – July 36 18 2.5 kg 50-70 days
Fenugreek میتھی Sept – Oct
Garlic لہسن Sept – Oct 8 4 50 gm
Ginger ادرک Feb – March 12 8
Hot Peppers مرچ Sept – Oct, Feb. 30 18 1.5 kg 50-60 days
Lettuce سلاد پتہ Sept – Oct 12 6
Mint پودینہ July – Nov, Feb -April 45-50 days
Mustard سرسوں Sept – Oct
Okra بھنڈی Feb – March, June- July 24 18 1 kg 70-90 days
Onion پیاز Feb-March, Sep – Oct 12 4 100 gm 150-180 days
Peas مٹر mid Sep-mid Nov 24 2 600 gm 50-75 days
Potato آلو Feb-March, Sep – Oct 24 8 1 kg 110 -150 days
Radish مولی July – Nov, Feb-March 18 2 120 gm 30-60 days
Spinach پالک June – Nov 50-80 days
Sponge gourd توری Feb – April, June – July 36 18 2.5 kg 60-70 days
Sweet Peppers شملہ مرچ Oct – Nov, February 30 18 1 kg 50-60 days
Sweet Potato شکر قندی Feb – March 36 18 700 gm 140-150 days
Tinda Gourd ٹینڈا March –April, June- July 36 18 1 kg 50-60 days
Tomato ٹماٹر Feb – March, Sep – Nov 30 18 2.5 kg 60-70 days
Turmeric ہلدی March –April, June- July 36 1 kg
Turnip شلجم Aug – Nov 24 3 150 gm 60-90 days
Vegetable planting Schedule – Karachi, Pakistan

How to automatically assign Elastic Ip to AWS EC2 instances


TL;DR

Install aws-ec2-assign-elastic-ip on the target instance – make it part of the AMI.

pip install aws-ec2-assign-elastic-ip

Add the following script in user data section

#!/bin/bash
/usr/local/bin/aws-ec2-assign-elastic-ip --access-key ACCESS_KEY --secret-key SECRET_KEY --valid-ips IP

Details

For those who are interested in how this all works, lets spent some time understanding the different terminologies.

So what is Elastic Ip and why do we need one?

As per Amazon’s documentation – http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html

An Elastic IP address is a static IPv4 address designed for dynamic cloud computing. An Elastic IP address is associated with your AWS account. With an Elastic IP address, you can mask the failure of an instance or software by rapidly remapping the address to another instance in your account.

An Elastic IP address is a public IPv4 address, which is reachable from the Internet. If your instance does not have a public IPv4 address, you can associate an Elastic IP address with your instance to enable communication with the Internet; for example, to connect to your instance from your local computer.

So an Elastic IP is part of the Amazon’s account and can be assigned at will to EC2 instances. One of the use cases where I needed an Elastic Ip was hosting an application on EC2 Spot Instances. As you can imagine there is no guarantee for how long the spot instance will remain alive, a new instance would have a new IP assigned to it making it really difficult to share the connection credentials to customer.

There were two solutions to the problem

  1. Use a service like DynDNS
  2. Use Elastic IP – a static IP that I can assign to the new Spot Instance that comes up when my bid is same or above the current spot instance pricing.

So I configured everything and got stuck at how can I assign the Elastic IP address to my instance automatically (or as soon as the machine is up) After some searching I came across a python module named aws-ec2-assign-elastic-ip, it is a command line idempotent utility that can assign an Elastic IP from the passed in pool of IPs to the machine running the command.

This utility can easily be installed using pip

pip install aws-ec2-assign-elastic-ip

We are going to use the user data field, which is available in advanced configurations of EC2 instance to put in a cloud-init script.

screen-shot-2017-02-06-at-9-39-33-pm

Here is the script that does the trick

#!/bin/bash
/usr/local/bin/aws-ec2-assign-elastic-ip --access-key ACCESS_KEY --secret-key SECRET_KEY --valid-ips IP

Notice the full path to the utility, this makes the script more robust as it doesn’t matter whether it is part of PATH or not.

How to automatically assign Elastic Ip to AWS EC2 instances