Development Notes
  • Introduction
  • Programming Langauges
    • Java
      • Cache
      • Java Fundamentals
      • Multithreading & Concurrency
      • Spring Boot
        • Spring Security
        • Development tips
      • ORM
        • Mybatis
      • Implementation & Testing
    • Node.js
      • Asynchronous Execution
      • Node.js Notes
    • Python
      • Memo
  • Data Structure & Algorithm
  • Database
  • Design Pattern
  • AWS Notes
    • Services
      • API Gateway
      • CloudHSM
      • Compute & Load Balancing
        • Auto Scaling Group
        • EC2
        • ECS
        • ELB
        • Lambda
      • Data Engineering
        • Athena
        • Batch
        • EMR
        • IoT
        • Kinesis
        • Video Streaming
        • Quicksight
      • Deployment
        • CloudFormation
        • Code Deploy
        • Elastic Beanstalk
        • OpsWorks
        • SAM
        • SSM
      • ElasticSearch
      • Identity & Federation
        • Directory Service
        • IAM
        • Organizations
        • Resource Access Manager (RAM)
        • SSO
        • STS
      • KMS
      • Management Tools
        • Catalog
        • CloudTrail
        • CloudWatch
        • Config
        • Cost Allocation Tags
        • GuardDuty
        • Savings Plans
        • Trusted Advisor
        • X-Ray
      • Migration
        • Cloud Migration: The 6R
        • Disaster Recovery
        • DMS
        • VM Migrations
      • Networking
        • ACM
        • CloudFront
        • Direct Connect
        • EIP & ENI
        • Network Security
        • PrivateLink
        • Route53
        • VPC
        • VPN
      • Service Commnucation
        • Amazon MQ
        • SNS
        • SQS
        • Step Functions
        • SWF
      • Storage
        • Aurora
        • DynamoDB
        • EBS
        • EFS
        • ElastiCache
        • RDS
        • Redshift
        • S3
        • Storage Gateway
      • Other Services
        • Alexa for Business, Lex, Connect
        • AppStream 2.0
        • CloudSearch
        • Comprehend
        • Data Tools
        • Elastic Transcoder
        • Mechanical Turk
        • Rekognition
        • WorkDocs
        • WorkSpaces
    • Well Architect Framework
      • Security
      • Reliability
      • Performance Effeciency
      • Cost Optimization
      • Operational Excellence
    • Labs
      • Webserver Implementation
      • ELB Implementation
      • Auto-scaling Implementation
      • A 3-tier Architecture In VPC
  • Architecture
    • Security
  • Spark
    • Memo
  • Conference Notes
    • Notes of JCConf 2017
  • AI Notes
Powered by GitBook
On this page

Was this helpful?

  1. AWS Notes
  2. Services
  3. Storage

EBS

PreviousDynamoDBNextEFS

Last updated 4 years ago

Was this helpful?

Introduction

  • Elastic Block Store (EBS) is a block based storage per a AZ, works like a hard drive for EC2.

  • EBS Options:

    • General Purpose SSD (GP2)

      • 3 IOPS per GB, min: 100 IOPS, burst to 3,000 IOPS. max 16,000 IOPS

      • Volume size: 1GB ~ 16TB. (More size, more speed. +1TB = +3,000 IOPS. So around 5.x TB, the limited IOPS is reached.)

    • Provisioned IOPS SSD (IO1)

      • Min: 100 IOPS, max: 64,000 ( for Nitro compatible EC2 instances), 32,000 (others).

      • Volume size: 4GB ~ 16TB. (Size and IOPS are independent).

      • Good for: Large RDB, NoSQL DB

    • Throughput Optimized HDD (ST1)

      • For data being read/written sequentially, like:

        • Throughput: 500 MB/s

        • Volume size: 500 GB ~ 16 TB

        • Good for: Big Data, Data warehousing, Log processing

        • HDD is not a bootable volume

    • Cold HDD (SC1)

      • Throughput: 250 MB/s

      • Volume size: 250GB ~ 16TB

      • Good for: infrequent accessing data. Ex.file Server

      • HDD is not a bootable volume

    • Magentic HDD (standard)

      • Lowest cost of bootable EBS volume types

Feature

  • EBS can be mounted to EC2 instance only in the same AZ.

  • One EBS can only be mounted to one instance at a time, instead use EFS.

  • On an EBS-backed instance, the root EBS volume would be deleted with EC2 termination by default.

  • Encyption

    • Non-root volume encryption

      • Create a snapshot of the EBS volume

      • Copy the snapshot and encrypt the new one

      • Then create a volume from the snapshot

      • Detach the original volume and attach the new encrypted EBS to the same device name of the instance

    • Root volume encryption

      • Stop the instances and create AMIs

      • Copy the AMIs to the same region and select the "Encrypt target EBS snapshots".

      • Redeploy the instances using the AMI copies you made

    • Additional volumes can be encrypted

    • Once encryption enabled, below are also encrypted:

      • Data at rest inside the volume

      • All data moving between the volume and the instance

      • All snapshots created from the volume

      • All volumes created from those snapshots

  • Volume change

    • Volume can only be scaled up

    • Once change is made, another change would be after 6 hours.

    • Can be changed on the fly (except for Magnetic standard)

Volumes vs Snapshots

  • Volumes (hard drive like C Disk in Windows) exist on EBS.

  • Snapshots exist on S3.

  • Can take a snapshot of a volume, recommend to detach it then do it. (Can still do it when it's attached.)

  • EBS backups need IO, so don't do it when system is busy.

  • Snapshots are incremental, only changed parts are moved to S3.

  • Snapshots can do copy to a different AZ or region (for DR)

  • Volumes restored from snapshot need to be pre-warmed (using fio or dd command to read the entire volume)

  • Can share snapshots only when they are not encrypted

  • Can create AMI from Snapshot

  • Snapshots can be automated with Amazon Data Lifecycle Manager.

    • Snapshots themselves still have costs.

    • Snapshots can only be created every 2, 3, 4, 6, 8, 12, 24 hours.

RAID

  • RAID (Redundant Array of Independent Disks)

    • RAID 0 - striped (make multi-disks as one), no redundancy, good performance

    • RAID 1 - mirrored, redundancy

    • RAID 5 - good for reads, bad for writes (AWS doesn't recommend ever putting RAID 5's on EBS)

    • RAID 10 - mirror then stripe, good redendancy and performance

    • RAID 01 - stripe then mirror, good redendancy and performance

  • Ways to flush the application cache for taking a snapshot:

    • Freeze the application

    • Unmount the RAID

    • Shutdown EC2 instance

Instance Store vs EBS

  • Instances by default don't come with EBS volumes, it's attached intentionally.

  • Pros:

    • Better IO performance

    • Good for buffer / cache for temporary data

    • Data can survive after reboots

  • Cons:

    • Can't create snapshot. (Only EBS volumes can.)

    • Can't resize.

    • Instance Store is ephemeral.

      • On stop or termination, the instance store is lost.

      • Data needs to be backup by yourself.

        • The AMI CLI tools can be used to create a bundle and upload it to S3.

        • Then register the AMI to the file in the S3 bucket.

Local EC2 Instance Store

  • Physical disk attached to the physical servcer where your EC2 is. Very high IOPS (can be 1.4M IOPS).

  • Disks up to 7.5 TB, stripeped to reach 30 TB. (can change over time)

  • Risk of data loss if hardware fails.

Amazon machine Image (AMI) root device types (EBS vs Instance Store)

  • Instance store can't be stopped. If the host fails, the data is lost.

  • EBS can be stopped. If the host stops, the data will remain.

  • Both can be rebooted, and data will remain.

  • By default, both root volumes will be deleted with EC2 termination. However EBS can be kept with option.

Scenario and practice

  • If need an EBS to be mounted to an EC2 intance in a different AZ / Region:

    • Create a snapshot of the EBS

    • Create a volume from the snapshot and select the AZ of the EC2 instance

    • Mount that new volume to EC2 instance

  • If need to copy an EC2 instance to a different AZ / Region:

    • Create an AMI from a snapshot or an EBS volume

    • Launch EC2 instance from AMI

.

, and AWS do not recommend RAID configurations other than RAID0 & RAID1.

SR-IOV
The automation can be cross region
RAID on EBS is generally not needed