AWS 기초 서비스

Amazon EC2

Amazon-EC2@4x.png

  • 크기 조정 가능한 컴퓨팅 파워
  • 컴퓨팅 리소스 완전제어
  • 새로운 서버 인스턴스 확보 및 부팅 시간을 단축
  • 사용한 만큼만 요금을 지불하면 됨
  • 인스턴스 선택시 고려할 사항

    • 코어 수
    • 메모리 크기
    • 스토리지 크기 및 유형
    • 네트워크 성능
    • CPU 기술
  • 사용 순서

    1. EC2 인스턴스를 시작할 AWS 리전을 정함
    2. 사전에 준비된 Amzon 머신 이미지 (AMI)에서 EC2 인스턴스 시작
    3. CPU, 메모리, 스토리지 및 네트워크 요구 사항에 따라 인스턴스 유형을 선택
    4. 네트워크, IP 주소, 보안 그룹, 스토리지 볼륨, 태그, 키 페어를 구성

    나만의 정리

    EC2 인스턴스는 Amazon 데이터 센터에 있는 가상화된 서버이다.
    개발자가 웹 규모 컴퓨팅 작업을 쉽게 할 수 있도록 설계되었다.

    네이밍 : Amazon Elastic Compute Cloud => C 가 두개있어서 EC2 ㅋㅋ


강사님 말씀

  • 서버 사용 (ResourceID [i-xxxxx])
  • EBS 최적화 기능은 트래픽이 뜰때 트래픽 감소를 위해서 더 크게 해준다.
  • 태그를 추가할때 태그를 최대한 많이 만든다 (버전,관리자명, 프로젝트 등등) 하지 않으면 나중에 비용을 확인하거나 버전 확인이 힘들다.

Amazon 머신 이미지 (AMI)

Amazon-EC2_AMI_light-bg@4x.png

  • 인스턴스 루트 볼륨의 템플릿 (운영체제, 애플리케이션 서버, 애플리케이션)

  • AMI를 사용하여 인스턴스를 시작할 수 있는 AWS 계정을 제어하는 시작 권한.

  • 시작될 때 인스턴스에 연결할 볼륨을 지정하는 블록 디바이스 매핑.

  • 사용순서

    1. 리전 선택
    2. 운영체제 선택
    3. 아키텍처 (32/64 bit x86 또는 64-bitARM)
    4. 시작 권한
    5. 루트 디바이스용 스토리지

    Amazon EC2 인스턴스 Flow

EC2 인스턴스 flow.png

인스턴스 수명 주기

인스턴스 수명주기.png

  • 보류

    • 새 호스트 컴퓨터로 이동
    • 시작 시 지정한 인스턴스 유형에 따라 인스턴스에 사용되는 호스트 컴퓨터의 하드웨어가 결정
  • 실행 중

    • 시작 시 지정된 AMI를 사용하여 인스턴스를 부팅
    • 실행 중 상태일 때 각 시간 또는 부분 시간에 대한 비용이 청구됨
    • 인스턴스가 연결이 되어 있지않아도 비용이 청구됨
      (EC2 는 멈췃다고 생각하지만 EBS 는 따로 돌아가고 있다)
  • 재부팅

    • 인스턴스를 재부팅하는 경우, 인스턴스가 동일 호스트 컴퓨터에서 유지되며 해당 퍼블릭 DNS 이름, 프라이빗 IP 주소 및 인스턴스 스토어 볼륨의 모든 데이터가 그대로 유지됩니다. 인스턴스를 재부팅해도 새 인스턴스 청구 시간이 시작되지는 않습니다.
  • 종료

    • 인스턴스가 종료 중 또는 종료됨 상태로 전환되면 비용 발생 중단
  • 종료됨

    • 종료된 인스턴스에 연결하거나 이러한 인스턴스를 복구할 수는 없다.
  • 중지

    • Amazon EBS 지원 인스턴스는 중지할 수 있다.
    • 인스턴스를 중단하면 인스턴스가 중단 중 상태로 전환
  • 중지됨

    • 중지된 상태의 EBS 지원 인스턴스에는 시간당 사용 비용이나 데이터 전송 비용 부과 안됨
    • 하지만 중단된 EBS 볼륨 스토리지에 대한 비용 부과
    • 중단된 인스턴스를 시작하면 보류 상태로 전환되며, 해당 인스턴스는 새 호스트 머신으로 이동합니다. 인스턴스를 중단했다가 시작하면, 이전 호스트 컴퓨터의 인스턴스 스토어볼륨에 있는 데이터가 모두 손실됩니다

    EC2 결제 옵션

ec2결제옵셔.png


Amazon VPC ( Virtual Private Cloud )

Amazon-VPC@4x.png

  • 클라우드에서 격리된 프라이빗 가상 네트워크를 프로비저닝함.

  • 가상 네트워킹 환경을 완벽하게 제어할 수 있다.

  • VPC 및 서브넷

    • 서브넷은 VPC 내 IP 주소 범위를 정의
    • 선택한 서브넷에서 AWS 리소스를 시작할 수 있다.
    • 프라이빗 서브넷은 인터넷으로 액세스 할 수 없는 리소스에 사용
    • 퍼블릭 서브넷은 인터넷으로 액세스할 수 있는 리소스에 사용됨
    • 각 서브넷은 하나의 가용 영역 내에 모두 상주해야하며, 다른 영역으로 확장할 수 없다.

    퍼블릭 서브넷은 인터넷 게이트웨이로 라우팅됨
    프라이빗 서브넷은 인터넷 게이트웨이로 라우팅 되지 않음.

VPC.png

IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 구성, 네트워크 액세스 제어 목록, 네트워크 게이트웨이 등 가상 네트워킹 환경을 완벽히 제어가능

  • VPC 보안

    • 보안 그룹

    • 보안 그룹은 연결된 EC2 에 대한 방화벽 역할을 하여 인스턴스 수준에서 인바운드 트래픽과 아웃바운드 트래픽을 모두 제어

    • 네트워크 ACL (액세스 제어 목록)

    • 네트워크 ACL은 연결된 서브넷에 대한 방화벽 역할을 하여 서브넷 수준에서 인바운드 트래픽과 아웃 트래픽을 모두 제어

    • 키 페어

    • 퍼블릭 키 암호화를 사용하여 로그인 정보를 암호화 및 복호화.

    • 퍼블릭 키 암호화는 퍼블릭 키를 사용하여 데이터를 암호화하고, 수신자가 프라이빗 키를 사용하여 해당 데이터를 복호화하는 방식.

    • 리눅스 인스턴스는 암호가 없으므로 SSH ( Secure Shell Protocol )를 통해 로그인하는 데 키페어 사용

    • 윈도우는 RDP를 통해로그인하는 데 필요한 관리자 아뫃화를 확보하는 데 키 페어 필요.

VPC 구축

  1. VPC 마법사를 사용하여 VPC 생성
  2. 마법사를 사용하여 퍼블릭 및 프라이빗 서브넷 설정
  3. 마법사를 사용하여 NAT 인스턴스 프로비저닝
  4. 두 번째 가용 영역에 퍼블릭 서브넷 생성
  5. 두 번째 가용 영역에 프라이빗 서브넷 생성
  6. 웹 보안 그룹 생성
  7. 웹 서버 인스턴스 시작

vppc.png


나만의 정리

VPC는 보안 작업이고 외부로 나가는 Gate가 두개이다.
서브넷은 VPC 내 IP 주소범위이고, 프라이빗 서브넷은 인터넷으로 액세스할 수 없는 리소스에 사용.


강사님 말씀

  • 외부로 나가는 Gate는 두개이다.
    인터넷으로 나가는 internet Gateway이고, NAT Gateway는 오픈 소스를 가져올때 사용

  • 서브넷이 두개 (프라이빗과 퍼블릭, 두개의 연결은 Route 테이블을 통해서)

  • 프라이빗 가상 네트워크를 프로비저닝 함.

  • 서브넷

    • VPC내 IP주소 범위를 정의
    • 선택한 서브넷에서 AWS 리소스 시작할 수 있다.
    • 프라이빗 서브넷은 인터넷으로 액세스할 수 없는 리소스에 사용

Amazon S3 ( Simple Storage Service )

Amazon-Simple-Storage-Service-S3_light-bg@4x.png

  • 인터넷용 스토리지
  • 기본적으로 온라인, HTTP 기반 액세스
  • 웹을 통해 언제 어디서든 원하는 양의 데이터를 저장하고 검색할 수 있는 스토리지
  • 고도의 확장성, 안정성, 속도 및 내구성

요약
개발자가 웹 규모의 컴퓨팅 작업을 용량과 관계없이 데이터를 저장하고 검색하는데 사용할 수 있는 간편한 웹 서비스 인터페이스 제공

S3 Info

  • 버킷에 저장할 수 있는 객체 수는 제한 없다.
  • 객체 크기 최대 5 TB, 버킷 크기에는 제한 없다.
  • 내구성과 가용성이 완벽설계 99.999999999%
  • HTTP/S 엔드포인트를 사용하여 웹에서 언제든 데이터 저장 및 검색
  • 확장성, 안정성, 속도가 우수하며 저렴
  • 서버 측 암호화 하거나, 고객이 관리하는 클라이언트 측 암호화를 선택 간으
  • 액세스 로그를 감사 목적으로 사용 가능
  • 표준 기반 REST 및 SOAP 인터페이스 제공.

계정당 버킷 수가 100개 제한, 버킷안에 저장 수는 제한 없음, 확장성이 높고 안정적이며 빠르고 비용 저렴

S3 개념

  • 데이터를 버킷내에 객체 단위 저장
  • 객체는 파일과 해당 파일을 설명하는 모든 메타데이터로 구성
  • 하나의 계정에 최대 100개 버킷 보유 가능
  • 버킷 및 버킷의 객체에 대한 액세스 제어 가능
  • 객체 잠금은객체 버전 삭제를 차단

스크린샷, 2019-11-06 12-52-07.png

객체 키

객체 키는 버킷 내 객체의 고유한 식별자이다.

S3.png

S3 보안

  • 버킷 및 객체에 대한 액세스를 제어할 수 있다.

    • 액세스 제어 목록(ACL)
    • 버킷 정책
    • Identity and Access Management(IAM)
  • SSL 암호화 엔드포인트를 통해 S3로 데이터를 업로드 또는 다운로드할 수 있다.

  • AWS SDK 를 사용하여 암호화 할 수 있다.


  • 데이터 액세스

    • IAM 정책: IAM 정책의 경우 자체 AWS 계정 내의 사용자에게만 S3 리소스에 권한 부여 가능
    • ACL : ACL 의 경우 다른 AWS 계정에만 S3 리소스에 대한 액세스 권한을 부여할 수 있다.
    • 버킷 정책: 버킷 정책의 경우 자신의 AWS 계정 또는 다른 AWS 계정의 사용자에게 S3 리소스에 대한 액세스 권한을 부여할 수 있다.
  • 데이터 전송: 보안을 극대화하기 위해 SSL 암호화 엔드포인트를 통해 데이터를 안전하게 업로드하고 S3에서 다운할수있다. 따라서 데이터가 AWS 내에서, 그리고 AWS 외부의 소스로부터 안전하게 전송된다.

S3 버전 관리

  • 성능 저하 없이 실수로 덮어쓰거나 삭제하는 것을 방지

  • 모든 업로드에 대한 새 버전을 생성

  • 삭제된 객체를 쉽게 검색하거나 이전 버전으로 롤백할 수 있다.

  • S3 버킷의 세 가지 상태

    • 버전 관리 되지 않음 (기본)
    • 버전 관리 활성화됨
    • 버전 관리 중단됨

    S3 요금

    • 사용한 만큼만 비용을 지불
    • 최소 요금 없음
    • 요금은 사용자의 S3 버킷 위치를 기준으로 함
    • AWS 간단 월 사용량 계산기를 사용하여 월별 청구액 추산
    • 요금 구성
    • 스토리지 요금
    • 요청 요금
    • 데이터 전송요금
      요금표 : https://calculator.s3.amazonaws.com/index.html