|
COMMUNITY AMAZON WEB SERVICES
|
Notes based on ibCom's use of AWS to host mydigitalstructure.com. |
BACKGROUND |
mydigitalstructure is a fully hosted webapi and platform - a "backend as a service" - it allows developers to use a common model and set of methods to rapidly build modern enterprise apps.
Functionality ranges from hosting a public website through to full accounting.
There are 25 core objects (ie contacts, projects, invoices etc) with 700+ methods (ie add contact, search for contact).
mydigitalstructure is a fully hosted multi-tenanted environment that services 1000s of enterprise spaces - with demand changing from one moment to the next.
|
DESIGN GOALS |
- Highly dynamic infrastructure that can react quickly to demand both on the up and the down.
- Self-managing - allowing the ibCom model and code to run within a set of infrastructure rules that requires minimal human interaction.
- Supply costs that are economically aligned with a competitive marketplace.
- Work with common well-proven standards (protocols) above and below the mydigitalstructure layer.
|
EXECUTION |
PHASE |
SERVICES |
1
|
- IAM, Identity Access Management, with Multi Factor Authentication (MFA)
- ELB, Elastic Load Balancers x 6
- Route53, DNS Management
- EIP, Elastic IP x 1
- EC2, Elastic Compute Service x 2+
- EBS, Elastic Block Store (Volume) with EC2
- RDS, Relational Database Service
- VPC, Virtual Private Cloud
- SES, Simple Email Service
- CLI, Command Line Interface
|
2 |
- Phase 1 +
- DynamoDB, Non-relational database service
- S3, Simple Storage Service
|
Security Groups |
For managing port access - https access onto load balancers and then http to the EC2 app services within the VPC. |
IAM
|
Control access to services and access via command line interface, using sourceIP restrictions as a condition of the access policy. |
VPC |
Virtual private cloud (network) - for isolated communication between services. |
ELB |
Five load balancers to handle the core platform SSL/https access points:
- webapi: mydigitalstructure.com
- platform: 1blankspace.com
- + 2 to handle "classic" platforms
- + 1 to handle a retail service
ELB IP addresses are referenced via DNS names - allowing for arraying of the ELB appliances.
|
Route53 |
DNS for CNAME entries for friendly names - including alias entries for root domains. |
EIP |
One elastic IP address for administrative access. Not 100% required - may be eliminated in phase 2. |
EC2 |
Servicing the http based app (where the code lives) and also for sharing the primary EBS volume. |
EBS |
For file storage; as attachments to objects. Current app needs synchronise access to files - next phase will introduce the "in-lab" S3 based file storage. |
RDS |
For model data storage. |
SES |
For sending emails - each space (tenant) has its own domain verified for sending emails. Services adhoc emails and also eNews campaigns. Uses SMTP. Phase 2 will convert to webservice - so app lives with-in the http protocol. |
CLI |
More a tool than a service - but important for scripting commands. Important use of sourceIP condition in policy. |
|
USEFUL LINKS |
|
|
|
|