Setup IIS FTP on Windows Server

I will be transferring a lot of files to my Windows Server and File Transfer Protocol (FTP) would be a great way to do this.

Below is a step-by-step instruction on how you can install and configure FTP via Windows Internet Information Services (IIS).

By the way, I have tried the instructions below on Windows Server 2012, Windows Server 2016 and Windows Server 2019.

Setup

Testing

Installation of IIS FTP

1. On Windows Server open Server Manager.

Click on Start Button on the taskbar, then click Server Manager.

Start Button is the window icon on the bottom left of the screen.

2. On Server Manager window, click on Manage then Add Roles and Features.

3. On Add Roles and Features Wizard window, click on Next.

Continue reading Setup IIS FTP on Windows Server

Running Minikube in AWS EC2 (Ubuntu)

If you are studying Kubernetes and having a hard time running Minikube on an EC2 Instance, you are not alone. I had a hard time doing it when it was my first time.

Below are the steps (and some comments) that I took to help me run Minikube on my EC2 Instance.

Installation of Minikube on EC2 Ubuntu

1. Run a public EC2 Server with the following setup

AMI Ubuntu Server 18.04 LTS (HVM), SSD Volume Type
Instance Type t3.micro (2 vCPU, 1GB Memory)
Storage 8 GB (gp2)
Tags – Key: Name
– Value: Minikube
Security Group Name: Minikube Security Group
– SSH, 0.0.0.0/0
Later we will be editing this.
Key Pair Create your own keypair.
You will need this to SSH to your EC2 Instance

Update: I changed the Instance Type from t2.micro (1 vCPU) to t3.micro (2 vCPU). An update to Minikube required a minimum of 2 vCPUs. The error when running with t2.micro was Requested cpu count 1 is less than the minimum allowed of 2.

t3.micro is no longer in the Free Tier, make sure to stop or terminate the instance after you are done testing to avoid a huge AWS bill.

Thank you to everyone in the comments section who pointed this change.

2. SSH into your created EC2 Instance using your keypair.

ssh [email protected]<ipv4_public_ip> -i <keypair>.pem

3. Install kubectl

curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

4. Install Docker

sudo apt-get update && \
    sudo apt-get install docker.io -y

Minikube requires Docker. Continue reading Running Minikube in AWS EC2 (Ubuntu)

boto3: Convert AMI Creation Date from string to Python datetime

When retrieving the AMI Creation Date from boto3 it returns a string data type. Visually, this is okay but it is challenging to do operations and comparisons to the AMI Creation Date like if the date is before or after a certain date.

To solve the issue we need to convert the AMI Creation Date from type string to datetime before we could do some operations.

The AMI Creation Date string looks like 2019-09-18T07:34:34.000Z. To convert this we need to use the strptime function from the datetime.datetime library.

Continue reading boto3: Convert AMI Creation Date from string to Python datetime

Fix WordPress New/Edit Post not showing with CloudFlare

It happened to me, every time I click on new post or try to Edit an existing post on my WordPress site it only shows a white blank page.

I first thought it was one of the plugins, so I disabled all of them and tried adding a new post but it still showed a blank page.

If it is not a plugin then what might it be? WordPress site is working so there is a high probability that it is not wordpress. Then the cause might probably be my Cloud Delivery Network (CDN), which is CloudFlare.

I tweaked a few settings in CloudFlare and voala, it worked! I was able to edit and create new posts again on this site.

Continue reading Fix WordPress New/Edit Post not showing with CloudFlare

How to solve SSL Certificate not showing in AWS CloudFront

Most likely you already have an SSL Certificate in AWS Certificate Manager (ACM). Then when you go to configure it in CloudFront you cannot select the radio button that says Custom SSL Certificate (example.com) or your SSL Certificate does not show in the options.

The reason for this is that your SSL Certificate should be in the N. Virginia Region (us-east-1).

If you look closely on the words below the selection it says You can use a certificate stored in AWS Certificate Manager (ACM) in the US East (N. Virginia) Region, or you use a certificate stored in IAM.

This is also stated in the AWS CloudFront Documentation regarding the use of Alternate Domain Names and HTTPS.

Request or upload your SSL Certificate in AWS Certificate Manager in N. Virginia Region (us-east-1) and your SSL Certificate should show on the selection.

With this you can now use HTTPS to access your services when you are working with CloudFront.

How to solve Failed-Activating Windows in AWS EC2

Sometimes when I create a Windows EC2 Instance from one of my custom AMIs I get an activation failed Windows Server.

Follow the instruction below to Activate your Windows Instance. (For Windows Server 2016, 2019 and later only).

Activate Windows Manually using EC2Launch initialization script

Open Powershell on your Windows Server and run the command below.

C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1; cscript "${env:SYSTEMROOT}\system32\slmgr.vbs" /ato

Notes:

  • No need to run Powershell in administrator mode.
  • No need to restart your instance. Once you run the above command, the Activate Windows on your desktop will disappear.
  • This will not update the local Administrator password

There are other ways to Activate Windows on your AWS EC2. You can check them all here.

Adding a Volume without Restart in Windows EC2

When I create Windows Instances in AWS EC2, I usually forget to add a drive or two. With this step-by-step tutorial, I will walk you through how to create a new Volume for EC2 Instances, then make Windows use the new Volume without a reboot.

  • Initial Setup
  • Creating and Attaching the Volume in AWS EC2 Console
  • Adding the new Volume to Windows System

Initial Setup

I launched a EC2 Windows 2016 Server with only 1 Block Device (/dev/sda1), which is also my Root Device.

AWS EC2 Console

Note the Availability Zone where your instance is located, you will need this later. Mine is in us-east-1a.

Looking inside Windows it only has 1 volume.

File Explorer
Disk Management

Creating and Attaching the Volume in AWS EC2 Console

Now we need to attach a new Volume for our Windows Server.

Go to AWS EC2 Console, on the left sidebar click on Volumes.

Continue reading Adding a Volume without Restart in Windows EC2

ESP8266 WebServer WiFi Access – Quick Setup

We will setup the ESP8266 to connect to your WiFi Network and then communicate with your computer over WiFi.

The goal is to setup the ESP8266 as a Web Server and for it to generate a random number that it will send via WiFi to a web browser.

Hardware

You will only need the following for this tutorial.

  • Adafruit Feather Huzzah with ESP8266
  • microUSB cable

You do not need to solder the pins of the Adafruit Feather HUZZAH ESP8266 since we will not wire anything to it.

Continue reading ESP8266 WebServer WiFi Access – Quick Setup