Amazon S3 Essentials

Author: Sunil Gulabani
Publisher: Packt Publishing
Pages: 112
ISBN: 978-1783554898
Print: 1783554894
Kindle: B017KJOSOC

Audience: developers and architects
Rating: 4.0
Reviewer: Ian Stirk

 

As the technology world increasingly migrates to the cloud, knowledge of Amazon Simple Storage Service should prove useful. Does this book help?  

Aimed at developers and architects, it has around 90 working pages, split over 5 chapters. Some basic knowledge of Java (or similar) is required to understand the example code.

Below is a chapter-by-chapter exploration of the topics covered.

Banner

Chapter 1 Know-How about S3

The book opens by describing Amazon Simple Storage Service (Amazon S3) as online object storage, accessible via REST and SOAP web service interfaces, and BitTorrent. The various advantages of S3 are discussed (e.g. backup, archive, huge storage, highly scalable, elastic pricing, and security).

The chapter then discusses some basic concepts that are used throughout the book. A bucket is a container where files (objects) are uploaded. Buckets can contain nested folders and subfolders. An object is a stored file. A key is assigned when an object is created, and used to retrieve the object.

Next, a useful list of S3 functionality is given, including: 

  • Allows website hosting – pay for what use (useful for start-ups)

  • Scalability – ‘unlimited’ storage

  • Reliability – guarantees 99.9% uptime

  • Security – strong authentication mechanism

  • Standard interfaces – access via REST and SOAP 

The chapter ends with a brief look at some different ways S3 can be used, including: file hosting, website hosting, and data backup. A useful diagram shows how S3 integrates with other Amazon components (e.g. Elastic Cloud Compute [EC2]) for a more complete picture.

This chapter provides a useful overview of what S3 is, its basic components, and its advantages.

The chapter is easy to read, with helpful diagrams and step-by-step walkthroughs (in later chapters). These traits apply to the whole of the book.

Chapter 2 S3 using the AWS Management Console

The Amazon Web Service (AWS) management console is a browser interface used to manage resources. The most popular browsers are supported, as is a mobile app for Android and iOS.

The chapter provides a step-by-step walkthrough on how to log-on to the AWS management console. For new users, the free trial account option should prove useful. The bulk of the rest of the chapter is taken up with explaining bucket, folder, and object operations (e.g. create bucket), again step-by-step walkthroughs with plenty of screenshots are given. The chapter ends with a look at the use of versioning to store different versions of an object.

This chapter provides a helpful walkthrough of using the AWS management console to perform bucket, folder, and object operations.

Chapter 3 S3 using AWS SDK – Java (Part 1)

The S3 SDK for Java can be used to programmatically store, retrieve, or delete data over the internet. Using the API provides a level of abstraction for application developers, so they don’t need to worry about the detailed handling of storage.

First there’s a look at some of the prerequisites needed to mange S3 using the SDK, these include: access and secret keys, and creating a group with AmazonS3FullAccess policy. Next, Java code is provided to obtain the AWS credentials, needed for authentication. Similarly, Java code is provided to create a bucket (simple, with versioning, with logging), create a folder, upload file to a bucket, and upload file to a folder. The chapter ends with code to delete objects, folders, and buckets. In all cases, the S3 console can be used to verify the items have been created/deleted. Code is also provided to list the buckets, folders, and objects.

This chapter provides a useful overview of the programmatic manipulation of S3. I note the code is not annotated or discussed, which is ok for the simpler examples, but might be inadequate for the more complex ones.

 

 

Chapter 4 S3 using AWS SDK – Java (Part 2)

This chapter extends the last one. It opens with some Java code for copying objects from one bucket to another (using various methods). Next, the bucket lifecycle is discussed, namely archiving objects to Amazon Glacier (very low cost storage), or just the removal from S3 – code is provided for both.

The chapter ends with a look at Cross-origin Resource Sharing (CORS), which allows resources to be shared across domains, this is achieve by creating the appropriate rules and assigning them to buckets. Useful code is provided to illustrate this.

Chapter 5 Deploying a Website on S3

This chapter relates to hosting a static website over S3, covering website deployment and access. The chapter opens with code to configure a website using the S3 Java SDK, a new bucket is created, and then index.html and error.html files are uploaded. The S3 console is used to verify the items have been created. The chapter ends with a step-by-step walkthrough on how to map a custom domain to S3 storage.

Conclusion

This book aims to teach you about Amazon S3 quickly, and certainly succeeds. The book is very easy to read, with plenty of screenshots to support the many step-by-step walkthroughs. There are useful explanations of what S3 is, and how to use it (via the management console and programmatically). As cloud computing becomes increasingly popular, knowledge of S3 should be ever more useful.

I have two concerns. Firstly, the code should be commented and discussed (that said, it is not too difficult to understand). Secondly, the subject matter seems to be too isolated, I would have liked more discussion on its integration with the other Amazon technologies such as EC2.

It should be noted that Amazon Web Services also provide some very readable S3 tutorials.  If you want to know what S3 is, its advantages, and how to use it follow this link to a helpful tutorial:

http://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html

 

To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.

Banner


Classic Computer Science Problems in Java

Author: David Kopec
Publisher: Manning
Date: January 2021
Pages: 264
ISBN: 978-1617297601
Print: 1617297607
Audience: Java developers
Rating: 4
Reviewer: Mike James
Getting someone else to do the hard work of converting classic problems to code seems like a good idea. It all depends which problems [ ... ]



The C# Workshop (Packt)

Author: Jason Hales, Almantas Karpavicius and Mateus Viegas
Publisher: Packt
Date: September 2022
Pages: 780
ISBN: 978-1800566491
Print: 1800566492
Kindle: ‎ B0BGRBDJLS
Audience: C# developers
Rating:  4
Reviewer: Mike James
C# is not the language it once was - time for a revival?


More Reviews

 

Last Updated ( Friday, 24 June 2016 )