Getting started with Kubernetes on Amazon EKS using Helm

In this post, I will go over the steps needed to provision a Kubernetes cluster in AWS, and deploy a Neo4j cluster using Neo4j’s helm charts. This post takes steps from the official Neo4j Kubernetes Documentation Prerequisites An AWS Account Configured AWS Command Line Interface An SSH Key named id_rsa.pub. If you do not have one, you can generate it by running: ssh-keygen -t rsa -C "[email protected]" Setting up a Kubernetes Cluster in EKS Installation of tools and applications In order to create a Kubernetes (EKS) cluster in AWS, you will need to download the following applications: kubectl...

March 1, 2023 · Ed Randall

Announcing the newest Neo4j and AWS Partner Solution

My post on the neo4j blog explains how to get up and running with Neo4j using the AWS partner solution. AWS Partner Solutions (formerly known as AWS Quick Start) are pre-configured reference deployments that work seamlessly with Amazon Web Services (AWS) and follow AWS’s recommended design practices. They provide customers with a variety of deployment options for managing their workloads on AWS. Neo4j’s AWS Partner Solution for AWS is a quick and easy way to deploy a fully-managed Neo4j cluster on the AWS platform....

February 24, 2023 · Ed Randall

Spinning up a Hugo Website on Cloudflare Pages

This post describes how I got this website up and running using Hugo, on cloudflare pages. Install Hugo To install hugo, follow the instructions on the hugo website. If you’re on a mac (and have homebrew installed) the simplest way is: brew install hugo With hugo installed the next stage is to create the new site, which is done locally. The following commands will create the framework for the new website....

January 30, 2023 · Ed Randall

EC2 Instances in Private Subnets behind an application LoadBalancer

Recently, I had to re-visit an old architectural challenge in AWS that I came across a couple of years ago but couldn’t quite remember how to resolve: EC2 instances which have no public IP address (residing in a private subnet) which can accept requests from (and serve responses back to) the internet. The motivation for this particular topology is security focused: The EC2 instances cannot be directly addressed via the internet due to the absence of a public IP, but can serve (web, in this example) content over the internet using the load balancer....

January 26, 2023 · Ed Randall

Creating subnets in AWS using terraform with 'count', 'join' and 'element'

The following code snippets show how to create three private subnets in AWS using terraform with ‘count’, ‘join’ and ’element’: To start with the following variables were declared and set: terraform.tfvars base_cidr_block = "192.168.0.0/16" node_count = 3 availability_zones = ["a", "b", "c"] variables.tf variable "base_cidr_block" { description = "The base of the address range to be used by the VPC and corresponding Subnets" } variable "availability_zones" { description = "A list containing 3 AZs" type = list(string) } variable "node_count" { description = "The number of ec2 instances to deploy" type = number } Three subnets are then created using a single resource block....

December 20, 2022 · Ed Randall

Always-on Internet at Home with 4G Failover

Like most people, my domestic ISP goes down sometimes. I work from home most of the time and the most common solution when this problem occurs is to ’tether’ a phone to use it’s 4G connection. This is OK, but a solution which allowed my entire home network to switch over to a backup internet connection would be much better… As well as my laptop maintaining a connection, movies could still be streamed (backup connection bandwith permitting) and IoT devices would keep working - you get the general idea....

December 19, 2022 · Ed Randall

Neo4j & Docker

This is a very quick script to get a single instance of neo4j running in a docker container. The username and password is set using the NEO4J_AUTH environment variable. #!/bin/bash # # Script: neo4j-docker.sh # Purpose: install neo4j container image after some simple environmentment prep # DOCKER=$(which docker) [ $? == 0 ] || { echo "ERROR: Check if docker is installed (and in your PATH)" ; exit 1; } DATA_DIR="$HOME/docker/neo4j-volumes/data" LOG_DIR="$HOME/docker/neo4j-volumes/logs" IMPORT_DIR="$HOME/docker/neo4j-volumes/import" PLUGINS_DIR="$HOME/docker/neo4j-volumes/plugins" RUNNING_CONTAINER=$($DOCKER ps -a | grep "neo4j:latest" | awk {'print $1'}) [ -z "$RUNNING_CONTAINER" ] || docker rm -f $RUNNING_CONTAINER [ -d $DATA_DIR ] && rm -rf $DATA_DIR/* || mkdir $DATA_DIR [ -d $LOG_DIR ] && rm -rf $DATA_DIR/* || mkdir $LOG_DIR [ -d $IMPORT_DIR ] && rm -rf $DATA_DIR/* || mkdir $IMPORT_DIR [ -d $PLUGINS_DIR ] && rm -rf $DATA_DIR/* || mkdir $PLUGINS_DIR $DOCKER run \ --name testneo4j \ -p7474:7474 -p7687:7687 \ -d \ -v $DATA_DIR:/data \ -v $LOG_DIR:/logs \ -v $IMPORT_DIR:/var/lib/neo4j/import \ -v $PLUGINS_DIR:/plugins \ --env NEO4J_AUTH=neo4j/test1234 \ neo4j:latest

March 11, 2022 · Ed Randall

The Internet of Behavior: What is it and how concerned should we be?

This is an article which I originally wrote for Rackspace Solve, in June 2021 The Internet of Things – a quick recap You no longer need to be a gadget aficionado or even an “early adopter” to be a regular user of Internet of Things (IoT) devices, or even understand what the IoT is. The number of “smart” devices that we use every day continues to steadily increase. Internet doorbells, connected cars, smart speaker devices, security systems and fitness trackers are a few examples of IoT devices that are now considered mainstream and used regularly in our everyday lives....

June 24, 2021 · Ed Randall

Edge Computing: What It Is, and What It Isn't

It’s time to hit reset and bring some long-overdue clarity to the edge conversation. Ask 10 different people to define edge computing and you’ll probably get 10 different definitions. The reason is that edge computing is not, whatever many might say, a technology. Instead, it’s a concept or a philosophy relating to the management and use of data. …edge computing is not, whatever many might say, a technology. Instead, it’s a concept or a philosophy relating to the management and use of data....

January 27, 2021 · Ed Randall

Restoring WebApps

Restoring Web Applications for edrandall.co.uk Section A - Install & Configure the WebServer with SSL Support Install the required ubuntu webserver packages aptitude install apache2 php5 php5-mcrypt php5-curl Create the following webserver configuration files: * /etc/apache2/conf.d/ejr-servers.conf NameVirtualHost 192.168.2.2:443 * /etc/apache2/sites-available/restore.edrandall.co.uk ServerName restore.edrandall.co.uk <VirtualHost 192.168.2.2:443> SSLEngine On SSLCertificateFile /etc/apache2/ssl/server.crt SSLCertificateKeyFile /etc/apache2/ssl/server.key DocumentRoot /var/www/ <Directory "/var/www"> Order deny,allow Deny from all Authname "restore.edrandall.co.uk" AuthUserFile /var/www/.htpasswd AuthType Basic Require valid-user Allow from 192.168.2. Satisfy Any </Directory> </VirtualHost> * /etc/apache2/ports....

May 16, 2014 · Ed Randall