What is S3?
S3 expanded as “Simple Storage Service” and helps you in storing the data in Amazon cloud. This data can be anything ranging from photos, codes, zipped music archives and so on. AWS ensures that the infrastructure is administrated so that you can always access your files hassle free.
Furthermore you have “infinite” storage available. This means that you don’t have to think about the size before designing your infrastructure. From then on its just uploading the data. Permission management, revisions and many more can also be implemented in S3. You can define who can access what at every time. You don’t even have to worry about accidental removing of some data. You can restore it easily (although you have to enable it when creating your bucket). Apart from the web console you can use standardised protocols to upload and access your S3 data.
Buckets helps you in organising your files. Just create a bucket (e.g. „photos“) and upload everything related there. Permissions, Revisions and other settings can be defined on a bucket level. So you can e.g. share your photos online while keeping your uploaded code files (in your „code“ bucket) as a secret.
How Serverless uses S3:
Up until v0.4 Serverless uses S3 as a storage for your project related code (such as e.g. Lambda functions). Upon project creation Serverless creates an S3 bucket for your project where everything related is uploaded. The bucket also functions as a backup. This way you can still access your Lambdas even if your development machine burns down to ashes. Serverless has removed the S3 bucket dependency in v0.5 (Recently the maximum storage space for Lambda functions was increased. Hence there is no need for a separate S3 bucket which stores all the versioned Lambdas). But you could still use S3 buckets to e.g. host your fronted which talks to your Serverless backend.
What is DynamoDB?
DynamoDB is basically a NoSQL database service with nearly infinite scalability and flexibility.
NoSQL means that you don’t have to specify a schema which declares what kind of data you store (like you would do when you use a relational database). You simply have to create a table which should hold your data and store the data. With DynamoDB you can store key-value or document based data inside those tables. The concept of NoSQL data stores is relatively new compared to old, relational based database technologies. Recently more and more data was generated that needs to be stored and analysed in a flexible and easy was. NoSQL databases try to target those needs. DynamoDB related databases are e.g. CouchDB or MongoDB
How Serverless uses DynamoDB:
DynamoDB is not used per default in Serverless. However you should definitely consider DynamoDB for your database operations as it nicely integrates into the whole AWS system.
Amazon web services can be deployed to various regions. They are split up geographically. You should choose a region near to you or your users to keep response time low as possible and your app performance snappy. Furthermore regions makes it possible to create a redundant and fault tolerant application infrastructure. It’s no problem if a datacenter in Oregon is on fire if you have another deployment in Ireland. Serverless makes it easy to deploy your Lambdas into multiple regions Which makes it possible to spread the app across the globe.
This concludes the three part series explaining the services of AWS and how it can be of a greater use to the business around the globe.