Quay lại
AWS EC2 Service - Network & Security

Network

  • Instance sẽ được chạy trong một VPC (mạng ảo) để phân tách cơ sở hạ tầng khỏi workload.
    • Cách ly cơ sở hạ tầng: VPC cho phép bạn tạo một mạng ảo riêng biệt trong đám mây AWS, tách biệt hoàn toàn với các mạng khác. Bạn có thể triển khai các Instance EC2, lưu trữ EFS, cơ sở dữ liệu, và các tài nguyên khác trong mạng này mà không bị ảnh hưởng bởi các mạng khác trong AWS.

    • Bảo mật: VPC cung cấp nhiều tính năng bảo mật như danh sách kiểm soát truy cập (ACLs), nhóm bảo mật (Security Groups), và VPN để kiểm soát truy cập và bảo vệ dữ liệu. Bạn có thể định cấu hình các chính sách truy cập để đảm bảo rằng chỉ những tài nguyên và người dùng được phép mới có thể truy cập vào các tài nguyên trong VPC của bạn.

    • Tùy chỉnh mạng: Bạn có thể tùy chỉnh cấu hình mạng của mình, bao gồm các địa chỉ IP, subnet, route tables (bảng định tuyến), và gateways (cổng). Điều này cho phép bạn thiết kế mạng theo nhu cầu cụ thể của bạn.

    • Quản lý lưu lượng: VPC cho phép bạn quản lý lưu lượng dữ liệu vào và ra khỏi mạng của mình thông qua các cổng, route tables, và các chính sách bảo mật. Bạn có thể kiểm soát cách dữ liệu được truyền qua mạng và đảm bảo an toàn cho dữ liệu đó.

  • Lưu lượng trong region có băng thông lên đến 100Gbps, và tối đa 5Gbps khi ra khỏi region.
  • Hỗ trợ cả IPv4 và IPv6:
    • IPv4 là định dạng phổ biến nhất được sử dụng online.
    • IPv6 là định dạng mới hơn và giải quyết các vấn đề cho Internet of Things (IoT).

Public Ipv4 & Private Ipv4

https://whatismyipaddress.com/

Network card

Trong AWS EC2 (Amazon Elastic Compute Cloud), "network card" hay còn gọi là giao diện mạng (network interface) có vai trò quan trọng trong việc quản lý kết nối mạng của các Instance EC2. Dưới đây là ý nghĩa và chức năng của network card trong AWS EC2:

  1. Kết nối mạng: Network card là giao diện để kết nối Instance EC2 với mạng VPC (Virtual Private Cloud). Nó cho phép Instance giao tiếp với các tài nguyên khác trong cùng mạng hoặc mạng khác.

  2. Địa chỉ IP: Mỗi network card có thể có một hoặc nhiều địa chỉ IP (Public IP và Private IP), cho phép Instance EC2 giao tiếp với mạng nội bộ và mạng bên ngoài.

  3. Giao thức mạng: Network card hỗ trợ nhiều giao thức mạng như TCP/IP, UDP, ICMP, v.v., để truyền dữ liệu và giao tiếp với các ứng dụng và dịch vụ khác.

  4. Security groups: Network card được liên kết với một hoặc nhiều nhóm bảo mật (security groups), cho phép bạn kiểm soát truy cập vào Instance EC2 thông qua các quy tắc bảo mật.

  5. Elastic Network Interface (ENI): Mỗi Instance EC2 có thể có một hoặc nhiều giao diện mạng đàn hồi (ENI), cho phép bạn quản lý và cấu hình các kết nối mạng cho Instance một cách linh hoạt.

  6. Khả năng mở rộng: Bạn có thể thêm hoặc xoá network card cho các Instance EC2 để điều chỉnh lưu lượng mạng và hiệu suất của Instance.

  • Đây là một card mạng ảo
  • Có thể gắn kết, tách ra khỏi instance, gán cho nhiều instance khác nhau
  • Mỗi instance có thể gắn kết nhiều Network cards.
  • Thẻ Mạng Có các loại: VF, ENI, ENA, EFA
    • VF (Virtual Function):

      • Cũ, Sử dụng cho các instance cũ
      • Tốc độ lên đến 10 Gbps
    • ENI (Elastic Network interface) (Default):
      • Đây là một thẻ mạng ảo, được cung cấp mặc định cho instance.
      • Mỗi instance chỉ có một giao diện mạng chính và có thể có multiple second network interfaces.
      • Mỗi network interface được gán cho một subnet (khi gắn kết một instance vào một giao diện mạng sẽ gán IP cho instance).
      • Mỗi network interface sẽ được phân bổ cho instance:
        • 1 địa chỉ primary private IPv4 và 1 tên miền DNS private (Sử dụng cho việc giao tiếp trong VPC)
        • Multiple secondary private Ipv4
        • 1 Elastic IP cho mỗi địa chỉ IPv4 private (tùy chọn)
        • 1 địa chỉ IPv4 public (tùy chọn) và 1 tên miền DNS public (tùy chọn) (Sử dụng cho việc giao tiếp internet)
        • Nhiều địa chỉ IPv6 (tùy chọn)
        • Địa chỉ MAC
        • Multiple Security groups
      • By default, IPv4 sẽ được sử dụng
      • Cách cấu hình: Bạn có thể tạo và cấu hình ENI thông qua AWS Management Console, AWS CLI, hoặc SDK. Tạo một ENI, gán các thuộc tính mạng cần thiết (subnet, security group, Elastic IP), và đính kèm nó vào instance của bạn.
      • Không thể gắn Elastic IP khi có nhiều hơn 1 ENI được gắn: Link 
    • ENA (Elastic Network Adapter):
      • ENA là một giao diện mạng được thiết kế để cung cấp băng thông cao và độ trễ thấp. ENA là lựa chọn mặc định cho các instance mới hỗ trợ Enhanced Networking. 
      • Hiệu suất tốt hơn so với ENI
      • Yêu cầu mạng cao (tải và tải lên với tốc độ cao)
    • EFA (Elastic Fabric Adapter):
      • EFA là một giao diện mạng cho phép các ứng dụng chạy trên các instance EC2 giao tiếp qua mạng InfiniBand hoặc Ethernet tốc độ cao. EFA hỗ trợ các ứng dụng HPC và ML có yêu cầu mạng cao.
      • Tốc độ lên đến 100 Gbps
      • Không hỗ trợ các instance Windows

Thực hành 1: ENI

  • Tạo ENI:

  • Attach ENI to Instance:

Đặc trưng trong network

  • Enhanced networking

    • Đây là một chức năng của instance, hỗ trợ truy cập mạng nhanh hơn.
    • Gần như tất cả các instance đều hỗ trợ mạng cải tiến.
    • Cung cấp:
      • Higher bandwidth.
      • Hiệu suất gói tin mỗi giây (PPS) cao hơn -> giảm hiện tượng giật.
    • Miễn phí
  • Elastic IP

    • Khi bạn dừng và sau đó khởi động lại một instance EC2, nó có thể thay đổi địa chỉ IP public của mình -> change code -> Sử dụng Elastic IP để cố định địa chỉ IP public cho instance.
    • Gắn Elastic IP vào một instance tại một thời điểm.
    • Nói chung, hãy cố gắng tránh sử dụng Elastic IP:
      • Chúng thường phản ánh poor architectural decisions (các quyết định kiến trúc kém chất lượng).
      • Thay vào đó, hãy sử dụng một địa chỉ IP public ngẫu nhiên và đăng ký một tên DNS cho nó.
    • Bạn có thể chọn Ipv4 từ AWS hoặc sử dụng IP của riêng bạn.
    • Tối đa: 5 Elastic IP trên mỗi region.
    • Giá: Nếu bạn không sử dụng, bạn sẽ mất tiền - https://aws.amazon.com/ec2/pricing/on-demand/
  • Placement Group

    • Placement Group trong Amazon Web Services (AWS) là một cơ chế cho phép bạn kiểm soát cách các instance của bạn được phân phối trên phần cứng vật lý trong một VPC (Virtual Private Cloud). Điều này giúp tối ưu hóa hiệu suất và độ sẵn sàng của ứng dụng.
      • Khi chạy một instance, mặc định AWS sẽ phân tán sang hardware khác nhau

        • Băng thông mạng sẽ giảm vì:

          • Kết nối giữa các phần cứng: Nếu các instance của bạn được phân tán trên các phần cứng khác nhau, việc kết nối giữa các phần cứng có thể dẫn đến độ trễ và băng thông thấp hơn so với khi các instance được chạy trên cùng một phần cứng.

          • Lưu lượng mạng của các instance khác: Nếu các instance khác trên cùng một phần cứng hoặc cùng một mạng đang sử dụng nhiều băng thông, điều này có thể ảnh hưởng đến băng thông của instance của bạn.

        • Sử dụng Placement group để tăng hiệu suất mạng.

      • Có các loại sau:

        • Nhóm đặt theo cụm (Cluster placement group):
          • Hoạt động: Cluster Placement Group tập trung tất cả các instance trong cùng một Placement Group vào một phần cứng vật lý hoặc một mạng con (subnet) duy nhất trong một Availability Zone (AZ).
          • Mục đích: Mục đích chính của Cluster Placement Group là giảm độ trễ và tăng băng thông mạng giữa các instance trong nhóm. Điều này rất hữu ích cho các ứng dụng đòi hỏi truyền dữ liệu tốc độ cao giữa các instance, như các ứng dụng điện toán hiệu suất cao (HPC) và máy học (ML).
          • Lưu ý: Vì tất cả các instance được tập trung vào cùng một phần cứng, việc xảy ra sự cố phần cứng có thể ảnh hưởng đến tất cả các instance trong nhóm. 
          • Khi khởi động nhiều instance, AWS sẽ triển khai trên cùng một zone Các instance sẽ kết nối với nhau nhanh hơn.
          • Các trường hợp sử dụng: Công việc Big Data cần hoàn thành nhanh chóng, Ứng dụng trao đổi với nhau với hiệu suất mạng cao.
        • Nhóm đặt theo phân vùng (Partition placement group):
          • Hoạt động: Partition Placement Group chia các instance của bạn thành các phân vùng (partition), mỗi phân vùng được phân bổ cho một phần cứng vật lý cụ thể trong một hoặc nhiều AZ.
          • Mục đích: Mục đích chính của Partition Placement Group là cung cấp khả năng kiểm soát cao hơn đối với việc triển khai và cách ly instance. Bạn có thể chỉ định instance của mình đến các phân vùng cụ thể để đảm bảo cách ly về phần cứng.
          • Tính linh hoạt: Partition Placement Group cung cấp sự linh hoạt cao hơn trong việc kiểm soát và cách ly ứng dụng. Bạn có thể chỉ định instance của mình đến các phân vùng cụ thể, phù hợp với yêu cầu của ứng dụng.
          • Các instance được khởi tạo trên nhiều partitions (phân vùng) và chia thành các phần cứng khác nhau (đảm bảo mỗi partition không nằm trên cùng một phần cứng)
          • Trường hợp sử dụng: Big Data, Large distributed và replicated workloads (Ví dụ: Hadoop, Cassandra, Kafka)
        • Nhóm đặt theo phân tán (Spread Placement Group)
          • Hoạt động: Spread Placement Group phân phối các instance của bạn trên nhiều hardware (mạng, nguồn điện) vật lý và AZ khác nhau để giảm thiểu rủi ro do sự cố phần cứng.
          • Mục đích: Mục đích chính của Spread Placement Group là tăng độ sẵn sàng và độ tin cậy cho các ứng dụng. Nó phù hợp với các ứng dụng quan trọng cần đảm bảo thời gian hoạt động cao và khả năng phục hồi trước sự cố.
          • Giới hạn: Spread Placement Group có giới hạn về số lượng instance mà bạn có thể đặt trong mỗi nhóm (tối đa là 7 instance trên mỗi AZ).
          • Trường hợp sử dụng: Ứng dụng cần tối đa hóa sẵn có cao, Ứng dụng quan trọng.
      • Miễn phí
      • Note:
        • Không thể merge placement groups.
        • Một instance chỉ triển khai trên một placement group tại một thời điểm.
        • Không thể launch dedicated host trong placement group.

Thực hành Placement group

Security Group

Security Group là một tính năng quan trọng trong Amazon Web Services (AWS) dùng để quản lý và kiểm soát truy cập mạng cho các instance của bạn trong Virtual Private Cloud (VPC). Security Group hoạt động như một bộ lọc tường lửa, kiểm soát lưu lượng truy cập đến và đi từ các instance dựa trên các quy tắc mà bạn xác định.

Đặc điểm chính của Security Group:

  1. Kiểm soát truy cập: Security Group cho phép bạn định nghĩa các quy tắc để kiểm soát lưu lượng vào (inbound) và ra (outbound) của các instance. Bạn có thể chỉ định các quy tắc dựa trên địa chỉ IP, CIDR block, hoặc các cổng (ports).

  2. Cấp phép truy cập: Mặc định, tất cả lưu lượng truy cập vào và ra đều bị chặn, trừ khi bạn thêm các quy tắc để cấp phép truy cập cụ thể. Các quy tắc này có thể bao gồm các cổng giao thức như TCP, UDP, hoặc ICMP.

  3. Cấp phép theo mặc định: Các quy tắc trong Security Group là theo mặc định, có nghĩa là tất cả các quy tắc phải là chính xác và phù hợp với yêu cầu bảo mật của bạn. Không có quy tắc nào được thêm tự động.

  4. Áp dụng cho instance: Bạn có thể gán Security Group cho một hoặc nhiều instance. Một instance có thể có nhiều Security Group để kiểm soát truy cập vào nó.

  5. Dễ dàng thay đổi: Bạn có thể thay đổi các quy tắc trong Security Group một cách dễ dàng và ngay lập tức. Những thay đổi này có hiệu lực ngay lập tức và không yêu cầu khởi động lại các instance.

  6. Không trạng thái: Security Group là không trạng thái (stateless), có nghĩa là mỗi gói tin đến hoặc đi được kiểm tra theo quy tắc mà không dựa trên trạng thái của các kết nối trước đó.

Tóm tắt:

  • Định nghĩa các quy tắc cho luồng dữ liệu vào (inbound traffic) và ra (outbound traffic) (Tương tự như tường lửa)
  • Mặc định: Chặn tất cả luồng dữ liệu vào (inbound traffic) và cho phép tất cả luồng dữ liệu ra (outbound traffic)
  • Support allow rules (whitelist), not support block rules (blacklist)
  • Có thể gắn vào nhiều instances
  • Có thể tùy chỉnh:
    • Access to Ports
    • Authorised IP ranges – IPv4 and IPv6
    • Control of inbound network (from other to the instance)
    • Control of outbound network (from the instance to other)
  • Port to know
    • 22 = SSH (Secure Shell) – log into a Linux instance
    • 3389 = RDP (Remote Desktop Protocol) – log into a Windows instance
    • 21 = FTP (File Transfer Protocol) – upload files into a file share
    • 22 = SFTP (Secure File Transfer Protocol) – upload files using SSH
    • 80 = HTTP – access unsecured websites
    • 443 = HTTPS – access secured websites
  • Stateful: return traffic is automatically allowed, regardless of any rules
  • Detail Information

Thực hành security

Remove HTTP with port 80

Lifecycle

  • Start

  • Stop

  • Reboot

  • Hibernate

  • Terminate

Instances in Running state will be charged

Hibernate

So sánh Hibernate và stop

Hibernate và dừng (stop) một instance trên AWS là hai cách để quản lý trạng thái của một instance EC2, nhưng chúng có mục đích và ảnh hưởng khác nhau:

  1. Hibernate Instance (Sử dụng Amazon EC2 Hibernate):

    • Mục đích: Hibernate instance cho phép lưu trữ trạng thái hiện tại của instance vào ổ đĩa EBS và tắt instance. Khi khởi động lại, trạng thái được khôi phục chính xác như trước khi hibernation.
    • Tính Ổn định và Tính Liên tục: Khi hibernate, mọi trạng thái của hệ thống và ứng dụng đều được lưu trữ, giúp tiết kiệm thời gian khôi phục và đảm bảo tính nhất quán của dữ liệu và ứng dụng.
    • Phí và Sử dụng Tài nguyên: Mặc dù không tiêu tốn phí máy chủ nhưng ổ đĩa EBS vẫn tiếp tục tính phí khi lưu trữ dữ liệu.
  2. Stop Instance:

    • Mục đích: Dừng (stop) instance làm ngưng hoạt động toàn bộ hệ thống và ứng dụng trong instance. Dữ liệu trạng thái không được lưu trữ.
    • Tiết kiệm Chi phí: Dừng instance giảm chi phí về tính hoạt động của instance và EBS (nếu có) so với việc giữ instance chạy liên tục.
    • Không giữ Trạng thái: Mọi trạng thái hoạt động của hệ thống và ứng dụng sẽ bị mất khi instance được dừng và không thể phục hồi tự động khi khởi động lại.

Tóm lại, Hibernate instance thích hợp để tiết kiệm thời gian và bảo vệ dữ liệu khi dừng tạm thời instance. Trong khi đó, việc dừng instance thích hợp cho việc tiết kiệm chi phí và không cần bảo quản trạng thái hoạt động.

EC2 User Data

Có thể triển khai các máy ảo của chúng ta bằng cách sử dụng một EC2 User data script EC2.

  1. Bootstrapping có nghĩa là thực hiện các lệnh khi máy tính bắt đầu
  2. Script đó chỉ chạy một lần khi máy ảo khởi đầu lần đầu tiên
  3. Dữ liệu Người dùng EC2 được sử dụng để tự động hóa các nhiệm vụ khởi động như:
    1. Cài đặt cập nhật
    2. Cài đặt phần mềm
    3. Tải về các tệp từ internet
    4. Những config khác:
      1. Insert, update, delete account in instance (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-users.html)

      2. Config timezone in instance

      3. Set hostname & DNS for instance

      4. Monitoring instance (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring_ec2.html)

      5. Import/export between on-premises and EC2 (https://aws.amazon.com/ec2/vm-import)
  4. Script Dữ liệu Người dùng EC2 chạy với người dùng root

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday