This website collects cookies to deliver better user experience
All you need to know about EC2 instance
All you need to know about EC2 instance
EC2 instance is an amazon virtual machine, there are many EC2 instance types, find below the main ones:
- R: apps that need a lot of RAM -in memory caches - C: apps that need good CPU – compute / databases - M: apps that are balanced (think medium) – general / web app - I: apps that need good local I/O (instance storage) – databases. - G: apps that need a GPU – video rendering / machine learning. - T2/T3: burstable instances (up to a capacity) - T2/T3: unlimited burst
Pricing models:
On Demand: pay per hour or second with no commitment, it is low cost, flexible and used for short term, dev/testing and you have a predictible price.
Reserved: you get a significant discount (1y-3y), it is used for apps that have steady state and that require capacity:
Convertible reserved instances: long workloads with flexible instances.
Scheduled reserved instances, example: every Thu between 3 and 6 pm.
Spot: you bid whatever price you want for instance, it is used for apps that have flexible start & end times.
Dedicated instances: no other customers will share your hardware, billing is based on instance.
Dedicated hosts: you book an entire physical server, for regulatory (no multi-tenant support), great for licensing,
Important: for prod environnement
Termination protection is turned off by default, you must turn it on.
EBS: 5 different types of EBS storage:
General purpose SSD
Provisionned iops SSD
Throughput optimized HDD
Cold HDD (lowest )
EBS magnetic
AMI Types (EBS vs instance store):
For EBS volumes: the root device for an instance launched from the AMI is an EBS volume created from an EBS snapshot.
For Instance store volumes: the root device for instance launched from the AMI is an instance store volume created from a template stored in S3.
Instance store volume is an Ephemeral storage: if stopped, you will lose all your data.
Instance store is physically attached to the machine (EBS is a network drive).
Instance Store Pros:
Better I/O perofrmance
Good for buffer / cache / scratch data / temporary content.
Instance Store Cons:
On stop or termination, the instance store is lost.
You cant resize the instance store
Backups must be operated by the user.
EBS RAID Options (do it on OS not AWS):
RAID0: increase performance (lots of iops), but more risk (if 1 disk fail, data lost).
RAID1: increase fault tolerance (mirroring).
RAID5 (not recommanded for EBS)
RAID6 (not recommanded for EBS)
Elastic Network Interface vs Enhanced Networking vs Elastic Fabric Adapter:
For basic networking, create a management network, use a network appliance in your VPC..
Low cost
EN: Enhanced networking: uses single root I/O virtualization, there is 2 types:
ENA elastic network adapter: 100Gbps
VF virtual function: 10Gbps
Elastic Fabric Adapter: for machine learning or high performing computing (HPC) or OS bypass.
EBS encryption:
Data in transit between an instance and an encrypted volume is also encrypted
Encryption is supported on all Amazon EBS volume types
EFS: Elastic File System
It grows automatically, great for file server or sharing data between EC2 instances
You pay for what you use
EFS support NFSv4 protocol
You only pay for the storage you use
Can scale up to the petabytes
Can support 1000s of concurrent NFS connections
Data is stored across multiple AZs within a region
Read After write consistency
Amazon FSx for Windows and for Lustre:
FSx for windows: built on windows server, use SMB and supports AD users, DFS (Distributed File System).. . Centralized storage for windows, Sharepoint, IIS or other native app for microsoft:
Can be accessed from your on-premise infrastructure
Can be configured to be MultiAZ (HA)
Data is backed up daily to S3
EFS: is linux only, use it if you need distribution..
FSx for Lustre: for linux, if you process large data sets, millions of IOPS, machine learning, High Performance Computing (HPC), video processing, electronic design automation, financial modeling.
EC2 Placement Groups:
Clustered placement group: within a single Availability Zone
Pros: Low Network Latency / High network throughput
Cons: if the rack fails, all instances fails at the same time.
Use case: Big data job that needs to complete fast.
Spread placement group: individual instances placed in different hardware (rack..), for single instance
Pros:
Can span across AZs
Reduce risk of simultaneous failure
EC2 instances are on different physical hardware
Cons:
Limited to 7 instances per AZ per placement group
Use case:
App that needs to maximize high availability.
Critical apps where each instance must be isolated from failure from each other
Partitioned Placement Group: think multiple instances in partition group.
Up to 7 partitions per AZ
Up to 100s of EC2 instances
The instances in a partition do not share racks with the instances in the other partitions.
A partition failure can affect many EC2 but won’t affect other partitions.
EC2 instances get access to the partition: information as metadata
Use case: HDFS, HBase, Cassandra, Kafka
EC2 Hibernate.
The in-memory (RAM) state preserved.
The instance boot is much faster (os is not stopped/restarted)
Under the hood:the RAM state is written to a file in the root EBS volume
The root EBS volume must be encrypted
Supported instance families: C, M and R.
Instance RAM size must be less than 150GB
Available for OnDemand and Reserved Instances.
An instance cannot be hibernated more than 60days
Use cases:
long running processing
saving the RAM state
services that take time to initialize.
EC2 Best practices Security
Manage access to AWS resources using IAM roles.
Implement the least permissive rules for your security group (Firewall).
Patch, update and secure regularly the operating system and applications on your EC2 instance.
Storage
Use separate Amazon EBS volumes for the operating system and data.
Ensure that the data volume persists after instance termination.
Encrypt EBS volumes and snapshots.
Resource management
Use instance metadata and custom resource tags to track and identify your AWS resources.
View your current limits for Amazon EC2 and plan in advance the request of any limit increases.
Backup and recovery
Backup periodically your EBS volumes using snapshots.
Create an Amazon Machine Image (AMI) from your instance to save the configuration as a template if needed for future installation.
Deploy critical components of applications across multiple AZs.
Monitor and respond to events.
Test regularly the process of recovering your instances and Amazon EBS volumes if they fail.