아마존 웹 서비스 AWS Discovery Book의 책의 내용을 기반으로 정리한 내용으로 정확한 내용은 책을 참고하시기 바랍니다. 

 

2장. 확장성과 안정성 높은 서버 만들기

 

서버와 스토리지

  • 서버 : 특화된 어떤 업무를 수행하기 위해 설계된 컴퓨터
    • 일반 노트북 또는 데스크톱 컴퓨터도 서버가 될 수 있다. 서버는 특화된 임무를 수행하기 위해 일반 컴퓨터보다 고성능의 CPU, 메모리, 디스크를 일반적으로 요구하여 대용량 서비스를 빠르게 처리
    • AWS에서는 EC2(Elastic Compute Cloud)라는 서비스를 이용해 가상 서버 구성
  •  스토리지 : 정보와 데이터를 저장하기 위한 저장소 역할을 수행하는 장치
    • Desktop PC에서 많이 사용되는 HDD와 SSD 일반적으로 알고 있는 스토리지
    • 고성능으로 대량의 데이터를 빠르고 안전하게 처리하기 위해 디스크 어레이 컨트롤로 및 RAID와 같은 기술 활용
    • AWS에서는 EBS(Elastic Block Storage) 서비스를 이용하여 EC2에 디스크를 추가

 

보안과 방화벽

  • 보안 : 각종 위험으로부터 정보 및 데이터를 안전한 상태로 유지하는 것
    • AWS IAM 서비스 : 리소스에 대한 사용자 액세스 및 암호화 키 관리 서비스
    • Amazon GuardDuty : 관리형 위험탐지 서비스
    • AWS Shild : DDoS 보호
    • AWS WAF : 악성 웹 트래픽 필터링을 위한 서비스
  • 방화벽 : 외부 네트워크에 연결되어 있는 내부 네트워크의 중요한 정보 자산 불법적인 칩입 보호 하기 위한 시스템
    • AWS 자체 방화벽 서비스
      • Security Group
      • NACL
      • AWS WAF

 

클라우드 용어

  • 리전(Reigion) : 전 세계에서 데이터 센터를 클러스터링하는 물리적 위치
    • 전세계 주요 국가에 리전을 구축하여 해당 위치에서 가장 가까운 곳에 클라우드 서비스를 제공
  • 가용영역(Availability Zone) : 데이터 센터로 AZ로 약어
    • 하나의 리전에 다수의 AZ을 보유. 물리적 이중화를 위해 사용
  • 엣지 로케이션(Edge Location) : CDN 서비스인 CloudFront를 위한 캐시 서버들 모음
    • CDN 서비스 : Content Delivery network의 약어로 콘텐츠(HTML, 이미지, 동영상 등)를 서버화 물리적으로 사용자들이 빠르게 받을 수 있도록 캐시 서버에 복제해주는 서비스

참고 : https://aws.amazon.com/ko/about-aws/global-infrastructure/regions_az/

 

글로벌 인프라 리전 및 가용 영역

AWS는 컴퓨팅, 스토리지, 데이터베이스, 분석, 네트워킹, 기계 학습 및 AI, 모바일, 개발자 도구, IoT, 보안, 엔터프라이즈 애플리케이션을 비롯하여 광범위한 글로벌 클라우드 기반 제품을 제공하

aws.amazon.com

 

Amazon EC2(Elastic Compute Cloud)

  • EC2 : Elastic Compute Cloud의 약자로 크기를 조정 가능한 컴퓨팅 파워를 제공하는 서비스
    • 가상화로 제공되는 서버를 인스턴스라 부름
  • EC2 인스턴스 유형
    • 범용(M 시리즈), 컴퓨팅 최적화(C 시리즈), 메모리 최적화(R 및 X 시리즈), 가속화된 컴퓨팅(P 및 G 시리즈), 스토리지 최적화(I 및 D 시리즈), HPC 최적화(H 시리즈)
    • 인스턴스 유형 및 사이즈
      •  ex) C4. Large 
        • C -> Instance family
        • 4 -> Intance generation
        • Large -> instance size
    • 인스턴스 구매 옵션
      • 온디맨드 인스턴스 : 필요할 때 바로 생성, 초 단위 비용 과금
      • 예약 인스턴스 : 1년 또는 3년 기간 약정, 온디맨드보다 최대 75% 저렴
      • 스팟 인스턴스 : 경매 방식의 인스턴스로 스펙을 정애 비용 입찰
      • 전용 인스턴스 : 고객 전용의 하드웨어 인스턴스 서비스 제공
    • AWS 참고 : https://aws.amazon.com/ko/ec2/instance-types/
 

Amazon EC2 인스턴스 유형 – Amazon Web Services

 

aws.amazon.com

 

Amazon EBS(Elastic Block Storage)

 

Amazon EBS 볼륨 - Amazon Elastic Compute Cloud

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

  • EBS 볼륨 유형
    • 범용 SSD : 가격과 성능이 유지된 스토리지
    • 프로비저닝 IOPS SSD : 짧은 지연 시간이 필요한 최고 성능의 스토리지 볼륨
    • 처리량 최적화 HDD : 자주 액세스하는 저비용 스토리지
    • 콜드 HDD : 자주 액세스 하지 않는 워크로드에 적합한 가장 저렴한 스토리지
    • 마그네틱 : 작은 볼륨 크기에 맞는 저비용 스토리지, 이전세대 볼륨 유형으로 새로운 애플리케이션에서는 새로운 볼륨 유형에서 선택하여 사용하는 것이 좋음. 책에서는 저비용 사용시에는 고려해볼 볼륨 유형으로 표현함.
    • https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ebs-volume-types.html
 

Amazon EBS 볼륨 유형 - Amazon Elastic Compute Cloud

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

 

  • EBS 스냅샷 활용
    • EBS 볼륨의 데이터를 스탭샷으로 만들어 Amazon S3에 백업 및 보관할 수 있는 기능
    • 백업받은 스냅샷으로 다시 EBS 볼륨 생성 또는 다른 EC2 연결하여 데이터 복원 가능
    • 스냅샷 특징
      • 스냅샷 진행 과정에도 서비스 중단 없음
      • EBS 볼륨의 크기 조정 사용 : 기존 DIsk 스냅샷 백업 후 신규 장착할 EBS 크기를 늘려 볼륨 사이즈 증가
      • 스탭샷의 공유 기능 활용하여 권한 있는 다른 사용자에게 공유
      • 다른 리전 복사 가능
    • https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/EBSSnapshots.html
 

Amazon EBS 스냅샷 - Amazon Elastic Compute Cloud

이 다이어그램에서는 사용자가 볼륨 1을 소유하고 있고 스냅 A를 생성했다고 가정합니다. 볼륨 1이 다른 AWS 계정의 소유이고 이 계정이 스냅 A를 생성하여 사용자와 공유했다면 스냅 B는 전체 스

docs.aws.amazon.com

 

 

  • EBS 성능과 보안성
    • 프로비저닝 IOPS(Provisioned IOPS) :  EBS의 성능을 높히기 위해 Disk의 IOPS의 성능 지정
    • EBS 최적화된 인스턴스(EBS-Optimized Instance) : 전용 네트워크 대역폭을 사용하도록 구성 Disk 성능 최적화
      • EC2의 C, M, R 시리즈에서 추가 비용 없이 사용 가능
      • 프로비저닝 IOPS를 함께 사용하여 최대 성능 가능
    • EBS 암호화 기능 : AES0256으로 암호화하여 내부의 데이터 보호
      • 암호화 키는 AWS의 KMS에서 직접 생성 또는 기본키 사용
      • 암호화 된 EBS 스냅샷은 공유 및 타 AWS 계정에 공유되어도 사용할 수 없음
    • https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/EBSPerformance.html
 

Linux 인스턴스의 Amazon EBS 볼륨 성능 - Amazon Elastic Compute Cloud

Linux 인스턴스의 Amazon EBS 볼륨 성능 I/O 특성, 인스턴스와 볼륨의 구성 등 여러 가지 요인이 Amazon EBS 볼륨에 영향을 끼칠 수 있습니다. Amazon EBS 및 Amazon EC2 제품 세부 정보 페이지의 지침을 따르는

docs.aws.amazon.com

 

Amazon 보안 그룹

  • Amazon 보안 그룹 
    • 인스턴스 시작시 각 인스턴스 당 최대 4개의 보안 그룹 할당
    • 기존 온프라미스(On-Premise)에서 사용되고 있는 방화벽의 정책과 유사한 기능
    • 보안 그룹은 네트워크 트래픽에 대한 허용(Allow)만 가능, 차단은 설정할 수 없음.
    • 차단 기능 적용을 원할 때는 VPC 기능 중 하나인 네크워크 ACL을 통해 제어
  • Amazon 보안 그룹 특징
    • 보안 그룹의 숫자와 규칙에 제한
      • VPC 당 보안 그룹의 개수는 기본 500개
      •  보안 그룹당 추가할 수 있는 규책의 개수는 50개 제안
      • 네트워크 인터페이스당 5개의 보안 그룹 적용 (필요한 경우 AWS Support를 통해 한도 증가 쵸어
    • 네트워크 트개픽을 위한 허용 정책은 있으나 차단 정책 없음(위 내용 중복)
    • 인바운드 트래픽과 아웃바운 트래픽을 별도 제어 가능
    • 초기 보안 그룹 설정에는 인바운드 보안 규칙이 없음. EC2를 생성하고 다른 EC2와 통신하기를 원한다면 인바운드 규칙 추가가 필요하다. 
    • https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_SecurityGroups.html
 

보안 그룹을 사용하여 리소스에 대한 트래픽 제어 - Amazon Virtual Private Cloud

EC2 인스턴스에 액세스할 수 있도록 포트 22(SSH) 또는 3389(RDP)에 대한 규칙을 추가하는 경우 특정 IP 주소 범위만 권한을 부여하는 것이 좋습니다. 0.0.0.0/0(IPv4)과 ::/(IPv6)를 지정하면 누구든지 지정

docs.aws.amazon.com

 

 

실습

  • 목표 : Amazone EC2를 사용하여 Windows 인스턴스와 Linux 인스턴스 생성하고 접속

접속해보니, 버지니아 북부로 되어 있어 아시아 태평양(서울)로 변경하였습니다. 

 

보안 그룹을 별도로 먼저 생성해 두었다. 기본적으로 인스턴스를 생성할 때 사용할 수도 있지만 추후에 지속적으로 보안 그룹을 일괄 사용해보기 위해서 고정된 보안 그룹을 생성하는 사용하는 방법으로 진행하였다. 

 

인스턴스를 시작하고 이름 입력해주고, AMI는 기본적인 실습 환경을 위해서 Ubuntu 22.04 LTS로 선택하였다. 인스턴스 유형은 t2.micro로 선택하여 기본적으로 사용할 수 있는 정도로의 유형으로 진행하였다. 네트워크 설정 부분은에서는 위에서 생성해둔 보안 그룹을 선택하여 입력 절차를 단순화 하였다. 스토리지는 범용 30GB SSD로 생성하였다. 이와 같이 설정하여 시작 버튼을 누르면 인스턴스가 생성된다. 

인스턴스 항목에 들어가게 되면 생성한 정보를 기준으로 인스턴스 ID 부터, 상태, 유형, 가용영역, 보안 그룹 이름, 키 이름, 시작 시간 등 위에서 공부했던 내용들이 모두 나오게 된다. 

인스턴스 ID를 클릭하게 되면 인스턴스와 관련된 다양한 정보를 자세하게 볼수 있으며 아래 그림과 같이 연결 버튼을 클릭하면 해당 인스턴스에 대해 접속할 수 있는 방법들을 확인할 수 있다.

 

연결 부분은 EC2 인스턴스 연결, Session Manager, SSH 클라이언ㅌ, EC2 직력 콘솔 4가지로 구성되어 있다. 

  • EC2 인스턴스 연결 클릭
    • "Failed to connect to your instance". Access denied by EC2 Instance Connect... 
    • 방화벽 허용해줘도 연결이 안된다. 
      • EC2 Instance Connect 패키지가 인스턴스에 설치되어 있지 않는 문제인듯 하여 확인해보니 설치 되어 있음. 
      • 좀 더 해봐야 할듯 하다.
  • Session Manager 
    • 별도의 설정이 필요한 듯 하다. 
  • SSH 클라이언트
    • openssh를 활용해서 key를 이용한 접속으로 예제를 제공하고 있다. 
    • ssh -i "key name" username@접속ip
  • EC2 직렬 콘솔
    • 지원되는 콘솔이 있는듯 하다. 내가 생성한 인스턴스 유형은 EC2 직렬 콘솔이 지원되지 않는 것으로 나온다. 
    • AWS Nitro System을 사용한 EC2 인스턴스를 사용해야 한다고 함.
      •  C1, C3, I2, M1, M2, M3, R3, T1 으로 지원된다고 나와 있는데, 웹 상에서는 안된다고 나온다. 이 부분은 추후 확인이 필요할 듯 하다. 

https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-instance-connect-troubleshooting/

 

EC2 Instance Connect를 사용한 연결 문제 해결

닫기 Tanmay의 동영상을 통해 자세히 알아보기(9:18)

aws.amazon.com

 

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-set-up.html

 

Set up EC2 Instance Connect - Amazon Elastic Compute Cloud

If you previously configured AuthorizedKeysCommand and AuthorizedKeysCommandUser, the Instance Connect installation will not change the values and you will not be able to use Instance Connect.

docs.aws.amazon.com

 

https://aws.amazon.com/ko/ec2/nitro/

 

AWS Nitro System

Nitro System은 다양한 방식으로 구성할 수 있는 풍부한 빌딩 블록 모음으로, 광범위한 컴퓨팅, 스토리지, 메모리 및 네트워킹 옵션을 선택하여 EC2 인스턴스 유형을 설계하고 신속하게 제공할 수 있

aws.amazon.com

 

 

AWS Nitro System

Nitro System은 다양한 방식으로 구성할 수 있는 풍부한 빌딩 블록 모음으로, 광범위한 컴퓨팅, 스토리지, 메모리 및 네트워킹 옵션을 선택하여 EC2 인스턴스 유형을 설계하고 신속하게 제공할 수 있

aws.amazon.com

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-methods.html

 

Connect using EC2 Instance Connect - Amazon Elastic Compute Cloud

-i is not supported when using mssh. When using the mssh command to connect to your instance, you do not need to specify any kind of identity file because Instance Connect manages the key pair.

docs.aws.amazon.com

 

+ Recent posts