Wednesday, 14 March 2018

AWS EC2 (Networking)


Placement Group
  • Strategy
    • Cluster: low-latency in single AZ
    • Spread: distinct hardware, minimize risk of failure
      • Opposite of dedicated host
  • You may get insufficient capacity when requesting
  • Once provisioned you can stop and are guaranteed they will start
  • Only some instance types are supported
  • Instances may be moved in/out of Placement Group (since 2018)
  • Works well with Enhanced Networking
  • Use case
    • Cassandra nodes
 
Enhanced Networking
  • Traditionally EC2 uses split network driver model
    • Frontend driver on the guest VM
    • Backend driver on Xen Domain0
    • Device driver - talks to Network device on physical host
    • Data transferred through shared pages (ring buffer)
      • Kernel 3.8.0+ has "grant pools" to speed up data transfer
  • Alternatives
    • Single Root I/O Virtualization
    • Enhanced Network Adapter

Single Root I/O Virtualization (SR-IOV)
  • PCIe device appear as many separate physical PCIe devices
    • Physical Function (pf) - full featured PCIe functions (data,configuration)
    • Virtual Functions (vf) - lightweight functions (data only)
      • VM attaches to the vf
  • Traffic goes directly to the device - does not traverse Domain0 at all
    • i.e. NIC on instance driver talks to Device Driver
  • OS must support it (ixgbevf module)
  • Instance must support it (sriovNetSupport)

Enhanced Network Adapter
  • AWS version of SR-IOV
  • Up to 25 Gbps
  • Requires special driver on instance

EBS optimized instance
  • Additional, dedicated capacity of EBS I/O
    • Separated from normal network I/O traffic
  • Depending on instance type:
    • Throughput: 500 Mbps - 4000 Mbps, e.g:
      • c4.xlarge = 500 Mbps
      • c4.8xlarge = 4000 Mbps
    • IOPS (16KiB): 450-3600
  • Some instance types are EBS optimized by default (e.g. c4.large)
  • Instance types with 10Gbps are different concept
    • network channel is shared 
    • some do not offer EBS-optimized version at all (traffic shared)
    • Example: i2.8xlarge
    • Max
      • Throughput: 800 MB/s (3200 Mbps)
      • IOPS: 48,000


References

No comments:

Post a Comment