Using Amazon Webservices

From TempusServa wiki
Jump to navigation Jump to search

Getting started with EC2

The following images are quite suitable as base images

  • amazon/amzn-ami-pv-2013.09.0.i386-ebs
  • amazon/amzn-ami-pv-2013.09.0.x86_64-ebs

Note the above images require that you use ec2-user for SSH access.

Instance type recommendations

  • Normal systems: small or medium
  • Test or development: micro

Storage options

Two scenarios exist

  • Simple setup data and application in one
  • Confidential data in an separate encrypted storage

For a separate storage you should do the following

  1. Create a new EBS partition
  2. Mount to suitable point
  3. Encrypt and login using LUKS

Note that LUKS partitions may contain multiple passwords, and do not need to be at rest when copy/backup operations are active.

Stuff to do in Amazon linux

After booting images

  • Set your timezone
  • Enable routing: Port 80 to 8080
  • Activate SMTP service [option]
  • Install MySQL
  • Install Tomcat
    • Deploy connection pool drivers
    • Deploy MySQL JDBC driver

After that just follow the normal install procedure for webapplications

  • Deploy the war file
  • Set up connection pool for the application

Maintaining the solution

Tips for maintaing you solution

  • Consider instance termination protection
  • Backup: Can be taken as EBS snapshots
  • Monitor: Activate CloudWatch for the instance


Increasing storage on running instance

Note that the following operation can be done while the server is running

In the AWS console

  1. Rightclick the volume and select "Modify volume"
  2. Update "Size" and press "Modify"

From the econsole run

lsblk

Check that the partitions match "nvme0n1" and "nvme0n1p1" and grow the partition and update the file system

sudo growpart /dev/nvme0n1 1
sudo resize2fs /dev/nvme0n1p1

In case you are using an XFS filesystem a result will occur complaing about a bad superblock. Then you need to grow the root partition using:

sudo xfs_growfs -d /

Finally check size is incresed with

df -h

Variant: Main volume

In case you are using the main volume, instead try

  sudo growpart /dev/xvda 1
  sudo resize2fs /dev/xvda1

Variant: LUKS volume

Find the crypt partition

  ls /dev/mapper/

Fill the space (in above we found crypt-sdf)

  sudo cryptsetup resize /dev/mapper/crypt-sdf
  sudo resize2fs /dev/mapper/crypt-sdf