Child pages
  • Deploying on Amazon EC2
Skip to end of metadata
Go to start of metadata

Introduction

Amazon Elastic Compute Cloud (Amazon EC2) is part of Amazon Web Services. It provides "resizable compute capacity in the cloud"---in other words, it allows you to run what are essentially virtual private servers of various sizes and capabilities. It is relatively straightforward to set up a WebObjects application server on an EC2 instance. There are several flavours of Linux available as base images to customize.

First, keep in mind, though, that Amazon EC2 instances are just giving you instances of some different operating systems. For example, as of April 2021, one sees:

  • Amazon Linux 2

  • macOS (a few versions)]

  • Red Hat Enterprise Linux 8

  • Ubuntu Server

  • Microsoft Windows Server (many versions and configurations)

  • Debian

The installation instructions for a WebObjects deployment are exactly what those for your chosen operating system. If you have picked an operating system and the deployment instructions are old or incomplete, that should tell you something. There may be dragons.

Scripting

AWS is a great platform for scripted control of your EC2 instances. See https://aws.amazon.com/tools/ for information on command-line tools and SDKs for other languages, such as java, python, C++, and all the others needed for buzzword-compliance. Here is an example CLI script.

     #!/bin/bash
     # Note that these scripts rely on having 'StrictHostKeyChecking accept-new' in the ~/.ssh/config file.
     #
     # For jq, a sort of sed for json data, see https://stedolan.github.io/jq/
     echo ""
     id=`aws ec2 describe-instances | jq --raw-output '.Reservations[0].Instances[0].InstanceId'`
     status=`aws ec2 describe-instances --instance-ids $id | jq --raw-output '.Reservations[0].Instances[0].State.Name'`
     if [ $status = "running" ]; then
         ip=`aws ec2 describe-instances --instance-ids $id | jq --raw-output '.Reservations[0].Instances[0].PublicIpAddress'`
         echo "instance-id: $id status: $status 'ubuntu@$ip'"
     else
         echo "instance-id: $id status: $status"
     fi
     echo ""
     exit 0

Amazon Linux 2

Instructions for Amazon Linux 2 are TBD.



1 Comment

  1. Dear Mr Simon McLean, I did the project :deploying WebObjects in EC2, right now I have setted out many problems, but at last it is proved that WebObjects seems not can be run in EC2 instance, rather than some simple java applications. I was wondering is WebObjects can be running on EC2. for those website applications with data. I didn't found a success.

    As a experienced person, could you please take this for real practice, and tell me some advice?