DEV Community

Dipali Kulshrestha
Dipali Kulshrestha

Posted on

Storage for Developers

Module Objectives

By the end of this module, learners will be able to:

  • Understand AWS storage services from a developer perspective
  • Select the right storage option for different application patterns
  • Use Amazon S3 programmatically and securely
  • Configure EBS and EFS for compute workloads
  • Apply IAM permissions and encryption
  • Handle durability, availability, and cost

1. Overview of AWS Storage Options

Why Multiple Storage Services?

Different applications need:

  • Object vs file vs block storage
  • High durability vs low latency
  • Shared vs single-instance access

Storage Type Service
Object Amazon S3
Block Amazon EBS
File Amazon EFS
Hybrid / Transfer DataSync, Storage Gateway (brief mention)

2. Amazon S3 (Simple Storage Service)

What is Amazon S3?

  • Object storage
  • Virtually unlimited scale
  • 11 9’s durability

Core S3 Concepts

  • Bucket
  • Object
  • Key
  • Region-scoped buckets
  • Global namespace

S3 Storage Classes
Class Use Case
Standard Frequent access
IA Infrequent access
One Zone-IA Non-critical data
Glacier Instant Archive, quick access
Glacier Flexible Archive
Glacier Deep Archive Lowest cost

πŸ”‘ Storage class affects cost, not durability.

  1. S3 Security & Access Control Access Mechanisms
  • IAM policies
  • Bucket policies
  • ACLs (legacy, discouraged)

Encryption Options

  • SSE-S3
  • SSE-KMS
  • Client-side encryption

Public Access

  • Block Public Access (default ON)
  • Bucket policy controls

4. Hands-On Lab 1: S3 for Developers

Objective
Create a secure S3 bucket and access it programmatically.

Steps

Create S3 bucket

Enable:

Versioning

Default encryption

Upload sample object

Attach IAM role/policy:

{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::my-dev-bucket/*"
}

Access bucket via AWS CLI or SDK

Validation

Upload and download objects

Access denied without permissions

5. S3 for Application Patterns

Common Developer Use Cases

  • Static website hosting
  • Application artifacts
  • Logs and backups
  • Data lake

Event-Driven Patterns

  • S3 β†’ Lambda trigger
  • S3 β†’ EventBridge

6. Amazon EBS (Elastic Block Store)

What is EBS?

  • Block storage for EC2
  • Attached to one instance at a time
  • Key EBS Concepts
  • Volume
  • Snapshot
  • Availability Zone scoped

Use Cases

  • Databases on EC2
  • Boot volumes
  • Low-latency workloads
  1. Hands-On Lab 2: EBS Volume with EC2 Objective

Attach and mount EBS volume to EC2.

Steps:

8. Amazon EFS (Elastic File System)

What is EFS?

  • Managed NFS file system
  • Shared across multiple EC2 instances
  • Automatically scales

Key Characteristics

  • Multi-AZ
  • POSIX-compliant
  • Regional service

Use Cases

  • Shared application data
  • Content management systems
  • Microservices shared storage

πŸ”‘ EFS supports concurrent access from multiple EC2s.

9. Cost & Performance Considerations

Cost Drivers

  • Storage amount
  • Access frequency
  • Data transfer
  • API requests (S3)

Performance Factors

  • S3 prefix distribution
  • EBS volume type
  • EFS throughput mode
  1. Use S3 for pre-signed url uploads

  2. Track multi-part uploads

Top comments (0)