In order to deploy a Reveal edge node to AWS

  1. First, generate an image from the Reveal web UI, under Admin ->Edge Nodes.
  2. Set the image format to ‘VMDK’ and choose the infrastructure and agent listening ports. Leave all other settings as default/blank. Click on ‘Create VM Image’.
  3. Upload the resulting vmdk file to Amazon S3, and make a note of the bucket name and key.
  4. Then create a containers.json file on your local machine, with the following contents - editing the Description, S3Bucket and S3Key as appropriate;
  5. {
       "Description": "Reveal edge",
       "Format": "vmdk",
       "UserBucket": {
           "S3Bucket": "mys3bucket",
           "S3Key": "edge.vmdk"
       }
    }


  6. Import the snapshot as follows:
  7. aws ec2 import-snapshot --description "Reveal edge" --disk-container file://containers.json


  8. You can use the describe-snapshot-tasks command to follow the progress of your disk import
  9. aws ec2 describe-import-snapshot-tasks --import-task-ids import-snap-fgr1mmg7


  10. Once this is complete, use the snapshotId from the output of the describe-import-snapshot-tasks output to register an AMI image with an appropriate instance name
  11. aws ec2 register-image --name "RevealEdge" --architecture x86_64 --root-device-name /dev/sda1 --virtualization-type hvm --block-device-mappings "DeviceName=/dev/sda1,Ebs={SnapshotId=snap-1234567890abcdef0}"


  12. Once this completes you should be able to launch an instance of the Reveal Perimeter in AWS EC2 from the resulting AMI.


References;

https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-import-snapshot.html

https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html