Amazon EFS, S3

박기원·2022년 5월 30일
0

AWS

목록 보기
5/11
post-thumbnail

Amazon Elastic File System

  • Amazon EFS(Amazon Elastic File System)는 AWS 클라우드 서비스 및 온프레미스 리소스와 함께 사용하기 위한 간단하고 조정 가능하고 탄력적인 완전관리형 NFS 파일 시스템을 제공
  • Amazon EFS는 애플리케이션을 중단하지 않고 필요에 따라 페타바이트까지 확장되도록 설계되었으며, 파일을 추가 및 제거함에 따라 자동으로 확장 및 축소되므로 성장에 맞춰 용량을 프로비저닝 및 관리할 필요가 없다.
  • Amazon EFS는 수천 개의 Amazon EC2 인스턴스에 대한 대규모의 병렬 공유 액세스를 제공하도록 설계되었기 때문에 애플리케이션의 집계 처리량 및 IOPS는 높은 수준으로 유지되고 지연 시간은 일관적으로 낮게 유지된다.

장점 및 기능

동적 탄력성

  • Amazon EFS는 파일이 추가되거나 제거될 때 애플리케이션 중단 없이 파일 시스템 스토리지 용량을 자동으로 즉시 확장하거나 축소한다.
  • 따라서 애플리케이션에 필요한 스토리지가 필요한 시기에 제공된다.
  • 사용자는 스토리지를 사전에 프로비저닝할 필요 없이 파일 시스템을 생성한 후 파일 추가를 시작할 수 있다.

완전관리형

  • Amazon EFS는 범용 워크로드를 위한 공유 파일 시스템 스토리지를 제공하는 완전관리형 서비스이다.
  • 이 서비스는 사용자가 파일 시스템을 빠르게 생성 및 구성할 수 있는 단순한 인터페이스를 제공하고 사용자를 위한 파일 스토리지 인프라를 관리하므로 파일 시스템 기반의 배포, 패치 적용 및 유지 관리로 인한 복잡성이 해소됩니다.

조정 가능한 성능

  • Amazon EFS는 범용 워크로드에 필요한 처리량, IOPS 및 낮은 지연 시간을 제공하도록 설계되었다.
  • 처리량과 IOPS는 파일 시스템의 증가에 따라 조정되며 단기간에 더 높은 처리량 수준으로 버스트하여 파일 워크로드의 예측할 수 없는 성능 요구 사항을 지원할 수 있다.
  • 요구 사항이 가장 까다로운 워크로드의 경우 Amazon EFS는 10GB/초 이상의 성능과 최대 500,000 IOPS를 지원할 수 있다.

공유 파일 스토리지

  • Amazon EFS를 사용하면 수천 개의 연결에 안전하게 액세스할 수 있다.
  • Amazon EC2 인스턴스와 온프레미스 서버에서 NFSv4 프로토콜을 통해 기존의 파일 권한 모델, 파일 잠금 기능 및 계층 디렉터리 구조를 사용하여 공유 Amazon EFS 파일 시스템에 동시에 액세스할 수 있다.
  • Amazon EC2 인스턴스에서는 AZ 및 AWS 리전 전체의 파일 시스템에 액세스할 수 있고 온프레미스 서버에서는 AWS Direct Connect 또는 AWS VPN을 사용하여 액세스할 수 있다.

관련 서비스

AWS Backup

파일 시스템을 자동으로 백업

AWS DataSync

온프레미스 스토리지와 파일 시스템 간에 자동으로 데이터 이동

AWS Fargate

컨테이너용 서버리스 컴퓨팅

AWS Lambda

서버를 고려하지 않고 코드를 실행합니다. 사용한 컴퓨팅 시간에 대해서만 비용을 지불하면 됩니다.

Amazon SageMaker

모든 개발자 및 데이터 사이언티스트를 위한 기계 학습

AWS Transfer

SFTP, FTPS 및 FTP 프로토콜을 통해 파일 시스템으로 원활하게 파일 전송

EFS 생성


가용성 및 내구성

  • 리전 : 고가용성 및 높은 비용
  • One Zone : 저가용성 및 낮은 비용
sudo yum install -y amazon-efs-utils
sudo mount -t efs -o tls fs-077e3b994d9763ceb:/ efs

AWS S3

  • Amazon Simple Storage Service(Amazon S3)는 업계 최고 수준의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스이다.
  • 고객은 규모와 업종에 관계없이 원히는 양의 데이터를 저장하고 보호하여 데이터 레이크, 클라우드 네이티브 애플리케이션 및 모바일 앱과 같은 거의 모든 사용 사례를 지원할 수 있다.
  • 비용 효율적인 스토리지 클래스와 사용이 쉬운 관리 기능을 통해 비용을 최적화하고, 데이터를 정리하고, 세분화된 액세스 제어를 구성하여 특정 비즈니스, 조직 및 규정 준수 요구 사항을 충족할 수 있다.

Amazon S3의 기능

스토리지 클래스

  • Amazon S3는 여러 사용 사례에 맞춰 설계된 다양한 스토리지 클래스를 제공 예를 들어 자주 액세스하기 위해 미션 크리티컬 프로덕션 데이터를 S3 Standard에 저장하고, 액세스 빈도가 낮은 데이터를 S3 Standard-IA 또는 S3 One Zone-IA에 저장하여 비용을 절감하고, S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive에 가장 낮은 비용으로 데이터를 보관할 수 있다.

  • 액세스 패턴이 변경되거나 알 수 없는 액세스 패턴이 있는 데이터를 S3 Intelligent-Tiering에 저장할 수 있다.

  • 이렇게 하면 액세스 패턴이 변경될 때 4개의 액세스 계층 간에 데이터를 자동으로 이동하여 스토리지 비용을 최적화할 수 있다.

  • 4개의 액세스 계층에는 빈번한 액세스와 간헐적인 액세스에 최적화된 2개의 대기 시간이 짧은 액세스 계층과, 비동기 액세스용으로 설계되어 드문 액세스에 최적화된 2개의 옵트인 아카이브 액세스 계층이 포함되어 있다.

스토리지 관리

Amazon S3에는 비용 관리, 규정 요구 사항 충족, 대기 시간 단축, 규정 준수 요구 사항에 맞게 여러 개의 개별 데이터 복제본 저장을 수행할 수 있는 스토리지 관리 기능이 포함있다.

  • S3 수명 주기
    수명 주기 정책을 구성하여 객체를 관리하고 수명 주기 동안 객체를 비용 효율적으로 저장할 수 있다.
    객체를 다른 S3 스토리지 클래스로 전환하거나 수명이 다한 객체를 만료시킬 수 있습니다.

  • S3 객체 잠금
    고정된 시간 동안 또는 무기한으로 Amazon S3 객체의 삭제 또는 덮어쓰기를 방지할 수 있습니다.
    객체 잠금을 사용하면 WORM(write-once-read-many) 스토리지가 필요한 규제 요구 사항을 충족하거나 객체 변경 및 삭제에 대한 보호 계층을 추가하는 데 도움된다.

  • S3 복제
    대기 시간 단축, 규정 준수, 보안 및 기타 사용 사례를 위해 객체, 객체의 각 메타데이터, 객체 태그를 동일하거나 다른 AWS 리전에 있는 하나 이상의 대상 버킷에 복제한다.

  • S3 배치 작업
    Amazon S3 콘솔에서 단일 S3 API 요청이나 몇 번의 클릭만으로 수십억 개의 객체를 대규모로 관리할 수 있다.
    배치 작업(Batch Operations)을 사용하여 수백만 또는 수십억 개의 객체에 대해 복사, AWS Lambda 함수 호출 및 복원 등의 작업을 수행할 수 있다.

액세스 관리

Amazon S3는 버킷 및 객체에 대한 액세스 감사 및 관리 기능을 제공한다. 기본적으로 S3 버킷 및 객체는 프라이빗이다. 생성한 S3 리소스에만 액세스할 수 있다. 특정 사용 사례를 지원하는 세분화된 리소스 권한을 부여하거나 Amazon S3 리소스의 권한을 감사하기 위해 다음 기능을 사용할 수 있다.

  • S3 퍼블릭 액세스 차단
    S3 버킷과 객체에 대한 퍼블릭 액세스를 차단한다.
    기본적으로 퍼블릭 액세스 차단 설정은 계정 및 버킷 수준에서 켜져 있다.

  • AWS Identity and Access Management(IAM)
    AWS 계정용 IAM 사용자를 생성하여 Amazon S3 리소스에 대한 액세스를 관리한다.
    예를 들어 IAM을 Amazon S3와 함께 사용하여 사용자 또는 사용자 그룹이 AWS 계정에 속한 S3 버킷에 대해 보유한 액세스 유형을 제어할 수 있다.

  • 버킷 정책
    IAM 기반 정책 언어를 사용하여 S3 버킷과 그 안에 있는 객체에 대한 리소스 기반 권한을 구성한다.

  • Amazon S3 액세스 포인트
    Amazon S3의 공유 데이터터 집합에 대한 데이터 액세스를 대규모로 관리하기 위해 전용 액세스 정책이 포함된 명명된 네트워크 엔드포인트를 구성한다.

  • 액세스 제어 목록(ACL)
    인증된 사용자에게 개별 버킷 및 객체에 대한 읽기 및 쓰기 권한을 부여한다.
    일반적으로 ACL 대신 액세스 제어를 위해 S3 리소스 기반 정책(버킷 정책 및 액세스 포인트 정책) 또는 IAM 정책을 사용하는 것이 좋다.
    ACL은 리소스 기반 정책과 IAM보다 먼저 적용되는 액세스 제어 메커니즘이다.

  • S3 객체 소유권
    ACL을 사용 중지하고 버킷의 모든 객체에 대한 소유권을 가져와서 Amazon S3에 저장된 데이터에 대한 액세스 관리를 간소화한다.
    버킷 소유자는 버킷의 모든 객체를 자동으로 소유하고 완전히 제어할 수 있으며 데이터에 대한 액세스 제어는 정책을 기반으로 한다.

  • Access Analyzer for S3
    S3 버킷 액세스 정책을 평가 및 모니터링하여 정책이 S3 리소스에 대한 의도된 액세스만 제공하는지 확인한다.

데이터 처리

데이터를 변환하고 워크플로를 트리거하여 다양한 다른 처리 작업을 대규모로 자동화하기 위해 다음 기능을 사용할 수 있습니다.

S3 객체 Lambda - 자체 코드를 S3 GET 요청에 추가하여 애플리케이션에 데이터가 반환될 때 데이터를 수정 및 처리할 수 있습니다. 행을 필터링하고, 이미지의 크기를 동적으로 조정하고, 기밀 데이터를 편집하는 등의 작업을 수행할 수 있습니다.

이벤트 알림 - S3 리소스가 변경되면 Amazon Simple Notification Service(Amazon SNS), Amazon Simple Queue Service(Amazon SQS) 및 AWS Lambda를 사용하는 워크플로를 트리거합니다.

스토리지 로깅 및 모니터링

Amazon S3는 Amazon S3 리소스가 사용되는 방식을 모니터링하고 제어하는 데 사용할 수 있는 로깅 및 모니터링 도구를 제공합니다. 자세한 내용은 모니터링 도구를 참조하세요.

자동 모니터링 도구

  • Amazon S3용 Amazon CloudWatch 지표
    S3 리소스의 운영 상태를 추적하고 예상 요금이 사용자 정의 임계값에 도달하면 결제 알림을 구성합니다.
  • AWS CloudTrail
    Amazon S3 에서 사용자, 역할 또는 AWS 서비스에 의해 수행된 작업을 기록한다.
  • CloudTrail 로그는 S3 버킷 수준 및 객체 수준 작업에 대한 자세한 API 추적을 제공한다.

수동 모니터링 도구

  • 서버 액세스 로깅
    버킷에 대해 이루어진 요청에 대한 상세 레코드를 제공한다.
    보안 및 액세스 감사 수행, 고객 기반 파악, Amazon S3 결제 내역 이해 등의 많은 사용 사례에 대해 서버 액세스 로그를 사용할 수 있다.

  • AWS Trusted Advisor
    AWS 인프라 최적화, 보안 및 성능 개선, 비용 절감, 서비스 할당량 모니터링 방법을 식별하기 위해 AWS 모범 사례를 확인하여 계정을 평가한다.
    그런 다음 권장 사항에 따라 서비스와 리소스를 최적화할 수 있습니다.

분석 및 인사이트

Amazon S3는 스토리지 사용량을 파악할 수 있는 기능을 제공하며, 이를 통해 규모에 따라 스토리지를 더 잘 이해하고 분석하며 최적화할 수 있다.

  • Amazon S3 Storage Lens
    스토리지를 이해하고, 분석하며, 최적화할 수 있다.
    S3 Storage Lens는 29개 이상의 사용량 및 활동 지표와 대화형 대시보드를 제공하여 전체 조직, 특정 계정, AWS 리전, 버킷 또는 접두사에 대한 데이터를 집계한다.

  • 스토리지 클래스 분석
    스토리지 액세스 패턴을 분석함으로써 데이터를 보다 비용 효율적인 스토리지 클래스로 이전할 시기를 결정할 수 있다.

  • 인벤토리 보고서가 있는 S3 인벤토리
    객체와 해당 메타데이터를 감사 및 보고하고 인벤토리 보고서에서 조치를 취하도록 다른 Amazon S3 기능을 구성한다.
    예를 들어 객체의 복제 및 암호화 상태를 보고할 수 있다.

강력한 일관성

  • Amazon S3는 모든 AWS 리전의 Amazon S3 버킷에 있는 객체의 PUT 및 DELETE 요청에 대해 강력한 쓰기 후 읽기(read-after-write) 일관성을 제공한다.
  • 이는 새 객체에 대한 쓰기와, 기존 객체 및 DELETE 요청을 덮어쓰는 PUT 요청 모두에 적용된다.
  • 또한 Amazon S3 Select, Amazon S3 액세스 제어 목록(ACL), Amazon S3 객체 태그, 객체 메타데이터(예: HEAD 객체)에 대한 읽기 작업은 매우 일관적입니다.

버킷 만들기

버킷 생성

버킷을 생성할 때 버킷 이름과 AWS 리전을 선택한다.
버킷 이름은 전역적으로 고유해야 하며 버킷 이름 지정 규칙 을 따라야 한다.
버킷을 생성한 후에는 버킷 이름 또는 리전을 변경할 수 없다.
버킷 소유권은 양도할 수 없다.
또한 버킷은 AWS 계정 간에 전송할 수 없으므로 버킷을 생성할 때 올바른 AWS 계정에 있는지 확인한다.

버킷을 생성할 때 버킷 속성과 권한을 구성할 수 있다.
기존 버킷에서 설정을 복사하거나 사용 사례를 지원하도록 버킷을 구성할 수 있다.

버킷 보안

기본적으로 버킷에 대한 퍼블릭 액세스를 차단하기 위해 S3 퍼블릭 액세스 차단이 켜져 있다.
사용 사례에 퍼블릭 액세스가 필요하지 않은 경우 기본 설정을 적용하는 것이 좋다.

버킷 암호화는 버킷의 기본 암호화 동작을 설정한다.
Amazon S3 관리형 키 또는 AWS Key Management Service(AWS KMS) 키를 사용하여 버킷의 모든 새 객체를 암호화하려면 버킷 암호화를 켠다.

액세스 제어 목록(ACL) 사용 중지

객체 소유권에 대해 버킷 소유자 적용 설정을 통해 ACL을 사용 중지하고 버킷의 모든 객체에 대한 소유권을 가짐으로써 데이터에 대한 액세스 관리를 간소화할 수 있다.
ACL을 사용 중지한 후에는 정책에 따라 데이터에 대한 액세스가 제어됩니다.

데이터 보호 및 규정 준수 요구 사항 충족

중요한 데이터가 실수로 변경되지 않도록 S3 버전 관리 및 객체 잠금을 사용한다.
버킷의 모든 객체 버전을 보존하려면 S3 버전 관리를 사용한다.
S3 버전 관리를 사용하는 경우 객체를 삭제하거나 덮어쓰지 않도록 객체 잠금을 사용한다.
버킷을 생성한 후에는 객체 잠금을 사용 중지할 수 없다.

비용 추적

버킷 태그를 추가하여 세부 수준에서 AWS 비용을 추적한다.

Amazon S3 작동 방식

Amazon S3는 데이터를 버킷 내의 객체로 저장하는 객체 스토리지 서비스이다. 객체는 해당 파일을 설명하는 모든 메타데이터이다.
버킷은 객체에 대한 컨테이너이다.

Amazon S3에 데이터를 저장하려면 먼저 버킷을 생성하고 버킷 이름 및 AWS 리전을 지정해야 한다.
그런 다음 Amazon S3에서 객체로 해당 버킷에 데이터를 업로드한다.
각 객체에는 키(또는 키 이름)가 있으며, 이는 버킷 내 객체에 대한 고유한 식별자이다.

S3는 특정 사용 사례를 지원하도록 구성할 수 있는 기능을 제공한다.
예를 들어, S3 버전 관리를 사용하여 동일한 버킷에 여러 버전의 객체를 보관하고, 실수로 삭제되거나 덮어쓰기된 객체를 복원할 수 있다.

버킷과 버킷의 객체는 프라이빗이며 액세스 권한을 명시적으로 부여한 경우에만 액세스할 수 있다.
버킷 정책, AWS Identity and Access Management(IAM) 정책, 액세스 제어 목록(ACL), S3 액세스 포인트를 사용하여 액세스를 관리할 수 있다.

버킷

  • Amazon S3 네임스페이스를 최상위 수준으로 구성한다.
  • 스토리지 및 데이터 전송 요금을 담당하는 계정을 식별한다.
  • Amazon S3 리소스에 대한 액세스를 관리하는 데 사용할 수 있는 버킷 정책, 액세스 제어 목록(ACL), S3 액세스 포인트와 같은 제어 옵션을 제공한다.
  • 사용량 보고를 위한 집계 단위로 사용된다.

객체

  • 객체는 Amazon S3에 저장되는 기본 개체이다.
  • 객체는 객체 데이터와 메타데이터로 구성된다.
  • 메타데이터는 객체를 설명하는 이름-값 페어의 집합이다.
  • 여기에는 마지막으로 수정한 날짜와 같은 몇 가지 기본 메타데이터 및 Content-Type 같은 표준 HTTP 메타데이터가 포함된다.
  • 객체를 저장할 때 사용자 지정 메타데이터를 지정할 수도 있다.

  • 객체 키(또는 키 이름)는 버킷 내 객체에 대한 고유한 식별자이다.
  • 버킷내 모든 객체는 정확히 하나의 키를 갖는다.
  • 버킷, 객체 키 및 선택적으로 버전 ID(버킷에 대해 S3 버전 관리가 사용 설정된 경우)의 조합은 각 객체를 고유하게 식별한다.
  • 따라서 Amazon S3를 “버킷 + 키 + 버전”과 객체 자체 사이의 기본 데이터 맵으로 생각할 수 있다.

S3 버전 관리

  • S3 버전 관리를 사용하면 동일 버킷 내에 여러 개의 객체 변형을 보유할 수 있다.
  • S3 버전 관리를 사용하여 버킷에 저장된 모든 버전의 모든 객체를 보존, 검색 및 복원할 수 있다.
  • 또한 의도치 않은 사용자 작업 및 애플리케이션 장애로부터 쉽게 복구할 수 있다.

버전 ID

  • 버킷에 S3 버전 관리를 사용 설정하면 Amazon S3에서 버킷에 추가되는 각 객체에 고유한 버전 ID를 생성한다.
  • 버전 관리를 사용 설정할 때 버킷에 이미 존재하는 객체에는 null의 버전 ID가 있다.
  • 이러한(또는 다른) 객체를 CopyObject 및 PutObject와 같은 기타 작업으로 수정하는 경우 새 객체가 고유한 버전 ID를 가진다.

버킷 정책

  • 버킷 정책은 버킷과 해당 버킷의 객체에 액세스 권한을 부여할 수 있는 리소스 기반 AWS Identity and Access Management(IAM) 정책이다.

  • 버킷 소유자만 정책을 버킷에 연결할 수 있다.

  • 버킷에 연결된 권한은 버킷 소유자가 소유한 모든 버킷의 객체에 적용된다.

  • 버킷 정책은 크기가 20KB로 제한된다.

  • 버킷 정책에는 AWS에서 표준인 JSON 기반 액세스 정책 언어가 사용된다.

  • 버킷 정책을 사용하여 버킷의 객체에 대한 권한을 추가하거나 거부할 수 있다.

  • 버킷 정책은 요청자, S3 작업, 리소스 및 요청의 측면 또는 조건(예: 요청을 수행하는 데 사용된 IP 주소)을 포함하여 정책의 요소를 기반으로 요청을 허용하거나 거부한다.

  • 예를 들어 버킷 소유자가 업로드된 객체를 완전히 제어할 수 있도록 하면서 S3 버킷에 객체를 업로드할 수 있는 교차 계정 권한을 부여하는 버킷 정책을 생성할 수 있다.

  • 버킷 정책에서는 Amazon 리소스 이름(ARN) 및 기타 값에 와일드카드 문자를 사용하여 객체의 하위 집합에 권한을 부여할 수 있다.

  • 예를 들어, 공통 접두사로 시작하거나 .html과 같은 지정된 확장자로 끝나는 객체 그룹에 대한 액세스를 제어할 수 있다.

S3 액세스 포인트

  • Amazon S3 액세스 포인트는 해당 엔드포인트를 사용하여 데이터에 액세스하는 방법을 설명하는 전용 액세스 정책이 포함된 명명된 네트워크 엔드포인트이다.
  • 액세스 포인트는 GetObject 및 PutObject 같은 S3 객체 작업을 수행하는 데 사용할 수 있는 버킷에 연결된다.
  • 액세스 포인트는 Amazon S3의 공유 데이터 집합에 대한 대규모 데이터 액세스 관리를 간소화한다.
  • 각 액세스 포인트에는 고유한 액세스 포인트 정책이 있다.
  • 또한 각 액세스 포인트에 대해 퍼블릭 액세스 차단 설정을 구성할 수 있다.
  • Virtual Private Cloud(VPC)의 요청만 수락하도록 액세스 포인트를 구성하여 프라이빗 네트워크에 대한 Amazon S3 데이터 액세스를 제한할 수 있다.

ACL(액세스 제어 목록)

  • ACL을 사용하여 권한이 부여된 사용자에게 개별 버킷 및 객체에 대한 읽기 및 쓰기 권한을 부여한다.
  • 각 버킷과 객체마다 하위 리소스로서 연결되어 있는 ACL이 있다.
  • ACL은 액세스를 허용할 AWS 계정 또는 그룹과 액세스 유형을 정의한다.
  • ACL은 IAM보다 먼저 적용되는 액세스 제어 메커니즘이다.
  • 기본적으로 다른 AWS 계정이 S3 버킷에 객체를 업로드하면 해당 계정(객체 작성자)이 객체를 소유하고 객체에 액세스할 수 있으며 ACL을 통해 다른 사용자에게 객체에 대한 액세스 권한을 부여할 수 있다.
  • 객체 소유권을 사용하여 ACL이 사용 중지되고 버킷 소유자로서 버킷의 모든 객체를 자동으로 소유하도록 이 기본 동작을 변경할 수 있다.
  • 결과적으로 데이터에 대한 액세스 제어는 IAM 정책, S3 버킷 정책, Virtual Private Cloud(VPC) 엔드포인트 정책 및 AWS Organizations 서비스 제어 정책(SCP)과 같은 정책을 기반으로 한다.
  • Amazon S3의 최신 사용 사례 대부분은 더 이상 ACL을 사용할 필요가 없으며, 각 객체에 대해 액세스를 개별적으로 제어해야 하는 비정상적인 상황을 제외하고는 ACL을 사용 중지하는 것이 좋다.
  • 객체 소유권으로 ACL을 사용 중지하고 액세스 제어 정책을 사용할 수 있다.
  • ACL을 사용 중지하면 다른 AWS 계정이 업로드한 객체로 버킷을 쉽게 유지 관리할 수 있다.
  • 버킷 소유자는 버킷의 모든 객체를 소유하고 정책을 사용하여 객체에 대한 액세스를 관리할 수 있다.

리전

  • Amazon S3에서 사용자가 만드는 버킷을 저장할 지리적 AWS 리전을 선택할 수 있다.
  • 지연 시간 최적화, 비용 최소화, 규정 요구 사항 준수 등 다양한 필요에 따라 리전을 선택할 수 있다.
  • AWS 리전에 저장된 객체는 사용자가 명시적으로 객체를 다른 리전으로 전송하거나 복제하지 않는 한 해당 리전을 벗어나지 않는다.
  • 예를 들어, 유럽(아일랜드) 리전에 저장된 객체는 유럽 밖으로 이동하지 않는다.

AMI란?

  • Amazon Machine Image(AMI)는 소프트웨어 구성이 기재된 템플릿
  • AMI에서 인스턴스를 바로 시작하실 수 있는데, 이 인스턴스는 AMI의 사본으로, 클라우드에서 실행되는 가상 서버
  • 다음 그림과 같이, 한 AMI로 여러 인스턴스를 실행 가능
  • 인스턴스는 중단하거나 최대 절전 모드로 전환하거나 종료할 때까지 또는 오류가 발생하지 않는 한 계속 실행된다.
  • 인스턴스가 실패하면 AMI에서 새로 실행할 수 있다.

AMI 인스턴스

  • 인스턴스는 클라우드의 가상 서버
  • 시작 시 구성은 인스턴스를 시작할 때 지정한 AMI의 사본
  • 하나의 AMI에서 다양한 인스턴스 유형을 실행할 수 있다.
  • 인스턴스 유형에 따라 인스턴스에 사용되는 호스트 컴퓨터의 하드웨어가 기본적으로 결정
  • 각 인스턴스 유형은 서로 다른 컴퓨팅 및 메모리 기능을 제공
  • 인스턴스에서 실행하려는 애플리케이션 또는 소프트웨어에 필요한 메모리 양과 컴퓨팅 파워를 기준으로 인스턴스 유형을 선택
  • 일단 인스턴스가 시작되면, 인스턴스는 다른 컴퓨터와 다를 것이 없고, 어느 컴퓨터와 동일한 방식으로 다룰 수 있다.

AMI 인스턴스 스토리지

  • 인스턴스의 루트 디바이스에는 인스턴스 부팅에 사용되는 이미지가 포함되어 있다.
  • 루트 디바이스는 Amazon Elastic Block Store(Amazon EBS) 볼륨 또는 인스턴스 스토어 볼륨 중 하나이다.
  • 인스턴스에는 로컬 스토리지 볼륨이 포함될 수 있는데 이것을 인스턴스 스토어 볼륨이라고 하며, 인스턴스 실행 시 블록 디바이스 매핑으로 구성할 수 있다.
  • 인스턴스용 볼륨 추가와 매핑이 완료되면, 마운트하여 사용할 수 있다.
  • 인스턴스 오류가 발생하거나 중지 혹은 종료된 경우, 해당 볼륨에 저장된 데이터는 손실되기 때문에 이런 볼륨은 임시 데이터 작성에 사용하는 것이 가장 좋다.
  • 중요한 데이터를 안전하게 유지하려면 여러 인스턴스에 걸쳐 복제 전략을 사용하거나 영구적 데이터를 Amazon S3 또는 Amazon EBS 볼륨에 저장해야한다.

Amazon VPC란 무엇인가?

Amazon Virtual Private Cloud(Amazon VPC)를 이용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있다.
이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사하다.

Amazon VPC 개념

Amazon VPC는 Amazon EC2의 네트워킹 계층이다.

VPC의 핵심 개념

  • Virtual Private Cloud(VPC)
    사용자의 AWS 계정 전용 가상 네트워크이다.

  • 서브넷
    VPC의 IP 주소 범위이다.

  • CIDR 블록
    클래스 없는 도메인 간 라우팅이다.
    인터넷 프로토콜 주소 할당 및 라우팅 집계 방법이다.

  • 라우팅 테이블
    네트워크 트래픽을 전달할 위치를 결정하는 데 사용하는 라우팅이라는 이름의 규칙 집합이다.

  • DHCP 옵션 세트(DHCP options sets)
    VPC 서브넷으로 시작될 때 EC2 인스턴스로 전달되는 구성 정보(예: 도메인 이름 및 도메인 이름 서버)이다.

  • 인터넷 게이트웨이
    VPC의 리소스와 인터넷 간의 통신을 활성화하기 위해 VPC에 연결하는 게이트웨이다.

  • 송신 전용 인터넷 게이트웨이(Egress-only internet gateways)
    서브넷의 EC2 인스턴스가 인터넷에 액세스할 수 있도록 허용하지만 인터넷의 리소스가 인스턴스와의 통신을 시작하지 못하도록 하는 인터넷 게이트웨이 유형이다.

  • VPC 엔드포인트
    인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 AWS Direct Connect 연결을 필요로 하지 않고 PrivateLink 구동 지원 AWS 서비스 및 VPC 엔드포인트 서비스에 VPC를 비공개로 연결할 수 있다.
    VPC의 인스턴스는 서비스의 리소스와 통신하는 데 퍼블릭 IP 주소를 필요로 하지 않는다.

  • NAT 게이트웨이(NAT gateway)
    프라이빗 서브넷의 EC2 인스턴스가 인터넷, 다른 VPC 또는 온프레미스 네트워크에 연결되도록 허용하는 관리형 AWS 서비스이다.

  • NAT 인스턴스(NAT instance)
    프라이빗 서브넷의 인스턴스가 인터넷, 다른 VPC 또는 온프레미스 네트워크에 연결되도록 허용하는 퍼블릭 서브넷의 EC2 인스턴스이다.

  • 통신 사업자 게이트웨이(Carrier gateways)
    Wavelength Zone의 서브넷의 경우 이 유형의 게이트웨이는 특정 위치에 있는 통신 사업자 네트워크에서의 인바운드 트래픽과 통신 사업자 네트워크 및 인터넷으로의 아웃바운드 트래픽을 허용한다.

  • 접두사 목록(Prefix lists)
    VPC 보안 그룹, VPC 라우팅 테이블 및 AWS Transit Gateway 라우팅 테이블을 구성하는 데 사용할 수 있으며, RAM(Resource Access Manager)을 사용하여 다른 AWS 계정과 공유될 수 있는 CIDR 블록 모음이다.

  • 보안 그룹
    EC2 인스턴스 등의 AWS 리소스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 한다.
    각 VPC는 기본 보안 그룹과 함께 제공되며 추가 보안 그룹을 생성할 수 있다.
    보안 그룹은 보안 그룹이 생성된 VPC에서만 사용할 수 있다.

  • 네트워크 ACL(Network ACLs)
    서브넷에서 들어오고 나가는 트래픽을 제어하기 위해 방화벽 역할을 수행하는 VPC에 대한 선택적 보안 계층이다.

Amazon VPC 액세스

다음 인터페이스 중 하나를 사용하여 VPC를 생성하고, 액세스하고, 관리할 수 있다.

  • AWS Management Console
    VPC에 액세스할 때 사용할 수 있는 웹 인터페이스를 제공한다.

  • AWS Command Line Interface(AWS CLI)
    Amazon VPC를 포함한 다양한 AWS 서비스에서 사용되는 명령을 제공하며 Windows, macOS 및 Linux에서 지원된다.

  • AWS SDK
    언어별 API를 제공하고, 서명 계산, 요청 재시도 처리 및 오류 처리와 같은 많은 연결 세부 정보를 관리한다.

  • 쿼리 API
    HTTPS 요청을 사용하여 호출하는 하위 수준의 API 작업을 제공한다.
    쿼리 API 사용이 Amazon VPC에 액세스하는 가장 직접적인 방법이지만, 애플리케이션에서 요청에 서명할 해시 생성 및 오류 처리와 같은 하위 수준의 세부 정보를 처리해야 한다.

VPC 생성

  • VPC는 AWS 클라우드의 격리된 부분으로서, Amazon EC2 인스턴스와 같은 AWS 객체로 채워진다.
  • VPC를 생성할 때 IPv4 주소 범위를 지정해야 한다.
  • IPv4 주소 범위를 CIDR(Classless Inter-Domain Routing) 블록으로 지정한다(예: 10.0.0.0/16). /16보다 큰 IPv4 CIDR 블록은 지정할 수 없다.
  • 또는 IPv6 CIDR 블록을 VPC에 연결할 수 있다.

VPC 설정 생성할 리소스

  • VPC만 생성할지, 아니면 VPC, 서브넷, NAT 게이트웨이 및 VPC 엔드포인트를 생성할지 여부를 선택한다.

IPv4 CIDR 블록

  • VPC에 대한 IPv4 CIDR 블록(또는 IP 주소 범위)을 지정한다.
  • 이 리전에서 사용 가능한 Amazon VPC IP 주소 관리자(IPAM) IPv4 주소 풀이 있는 경우 IPAM 풀에서 CIDR을 가져올 수 있다.
  • IPAM 풀을 선택하면 IPAM 풀의 할당 규칙에 따라 CIDR의 크기가 제한된다(허용되는 최소값, 허용되는 최대값 및 기본값).
  • 이 리전에 IPv4 IPAM 풀이 없는 경우 IPv4 CIDR을 수동으로 입력할 수 있다.
  • CIDR 블록 크기는/16에서 /28 사이여야 한다.

IPv6 CIDR 블록

  • VPC에 대한 IPv6 CIDR 블록을 지정한다.
  • 이 리전에서 사용 가능한 Amazon VPC IP 주소 관리자(IPAM) IPv6 주소 풀이 있는 경우 IPAM 풀에서 CIDR을 가져올 수 있다.
  • IPAM 풀을 선택하면 IPAM 풀의 할당 규칙에 따라 CIDR의 허용되는 크기가 제한됩니다(허용되는 최소값, 허용되는 최대값 및 기본값).
  • 이 리전에 IPv6 IPAM 풀이 없는 경우 Amazon에서 사용자를 대신해 IPv6 CIDR을 제공할 수 있다.
  • Amazon은 고정 IPv6 CIDR 블록 크기를 /56으로 제공한다.
  • Amazon에서 제공하는 IPv6 CIDR의 크기는 사용자가 구성할 수 없다.
  • 자체 IPv6 CIDR을 AWS로 가져온 경우 주소 풀에서 IPv6 CIDR 블록을 지정할 수 있다.

0개의 댓글