Amazon AWS: Functional Specification
Amazon AWS: Functional Specification
Functional Specification
Version 0.1
1 Table of Contents
Introduction .................................................................................... Error! Bookmark not defined.
General Description.......................................................................................................................................3
Scope .............................................................................................................................................................4
Security ..........................................................................................................................................................8
Reviewers .................................................................................................................................. 8
Confidential Page 2 of 8
Functional Specification
INTRODUCTION
General description
Amazon Web Services (AWS) is a secure cloud services platform, offering compute power,
database storage, content delivery and other functionality to help businesses scale and grow. It used
to build sophisticated applications with increased flexibility, scalability and reliability.
Amazon AWS has a modular architecture with various services. Our interest are in following
areas:
Confidential Page 3 of 8
Functional Specification
Amazon Simple Storage Service (S3) is storage for the Internet. It is designed to make web-scale
computing easier for developers. Amazon S3 has a simple web services interface that you can use
to store and retrieve any amount of data, at any time, from anywhere on the web. It gives any
developer access to the same highly scalable, reliable, fast, inexpensive data storage infrastructure
that Amazon uses to run its own global network of web sites. The service aims to maximize benefits
of scale and to pass those benefits on to developers. There are several core concepts of Amazon S3,
such as buckets and objects, and a certain way to work with these resources using the Amazon S3
application programming interface (API).
Scope
Operations Orchestration Content Amazon integration uses an old library called Symphony
and also a combination of flow steps filled with JavaScript to format the request headers and
perform Amazon signature on them.
In long term we want to have an Amazon integration that uses a generic and open-sorce library
named JClouds (by Google) that can handle the latest signature mechanism, to provide a neat
encoding easier to understand, follow and contribute on it from others.
In the short term we need to provide to our partners operations that are in open-source
repository and that can be reused in their products. For now we need to cover provisioning scenarios
that are related to Amazon AWS EC2 area (Instances, Images, Volumes) and VPC area (Network).
For the moment the S3 and IAM areas are out of scope.
Confidential Page 4 of 8
Functional Specification
USER STORIES
Operations
Each operation will have at least the below inputs depending on API. If a API call needs more
inputs than the default ones, we will get in details on each one later on:
Inputs:
provider: required - Cloud provider on which the instance is
endpoint: required Endpoint to which first request will be
identity: optional - Amazon Access Key ID
credential: optional - Amazon Secret Access Key corresponding to the Amazon Access Key ID
proxy_host: optional - proxy server used to access provider services
proxy_port: optional proxy port used to access provider services
region: optional region where instance resides or operation took place
Outputs:
return_result: The operation outcome including execution logs.
return_code: If the operation succeded will return 0, otherwise will return -1.
error_message: error message if there was an error when executing, empty otherwise.
Confidential Page 5 of 8
Functional Specification
An Amazon Machine Image (AMI) provides the information required to launch an instance. An
AMI is needed to launch an instance. Many instances can be launched from a specified AMI. Also
instances can be launched from many different AMIs.
A template for the root volume for the instance (for example, an operating system, an
application server, and applications)
Launch permissions that control which AWS accounts can use the AMI to launch instances
A block device mapping that specifies the volumes to attach to the instance when it's
launched
Methods that associated with AMI API are showed in image bellow. Those methods allow us to
implement (besides other actions):
2.1. Create Image in Region (already implemented bucket AGM 12791);
Confidential Page 6 of 8
Functional Specification
We need to implement:
3.1. Attach Volume (AGM 12373);
3.2. Detach Volume (AGM 12374);
3.3. Create Volume (AGM 12372);
3.4. Create Volume from Snapshot (AGM 12375).
Confidential Page 7 of 8
Functional Specification
We need to implement:
Security
The Amazon AWS security relies on signature mechanism that is described here:
http://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html#signing-
request-intro
REVIEWERS
1. Revnic Lucian FA CloudSlang;
2. Musca Lucian Security owner;
3. Peer Meshi CloudSlang Manager;
4. Dinita Adrian R&D Manager.
Obs.: Everybody is invited to make comments, give feedback on this FS or related to the
operations that are already implemented.
Confidential Page 8 of 8