[AWS 입문] 당신이 지금 알아야 할 AWS - 2장: AWS 서비스와 선택

seoyeon chae·2024년 1월 22일

AWS 입문

목록 보기
2/4
post-thumbnail

AWS란?

가상화된 저장 공간과 웹 서비스를 제공하고, 사용량에 따라 적당한 비용을 부과하는 서비스.

ex) EC2 ( Elastic Compute Cloud), S3 (Simple Storage Service)

AWS 클라우드 인프라

리전(Region)
AWS가 주요 지역에 설치해 운영하는 여러 개의 클라우드 인프라. 물리적 위치이므로 국가나 지역을 식별할 수 있는 이름을 붙인다. 각 region은 완전히 분리되어 있으며, AWS 콘솔 상에서도 완전히 다른 리소스로 분리된다. region들이 모여 AWS 서비스를 구성한다.

가용 영역(Availability Zone)
데이터 센터. 2개 이상의 가용 영역들이 모여 region을 구성하며, region 내에 있는 가용 영역들은 서로 물리적으로 격리되어 있다.

💡 왜 한 Region에 여러 개의 가용 영역이 존재하나요?

데이터 센터가 하나뿐이라면 자연재해/화재 등이 발생했을 때 운영에 큰 피해를 입지만
데이터 센터가 두 개 이상이라면 단순한 변경만으로 가용 영역을 운영할 수 있기 때문입니다.
이러한 특성을 가용성이라고 부르며, 가용성이 특정 수치 이하로 떨어지게 되면 AWS에서 보상합니다.
  • CDN(Content Delivery Network) : 물리적으로 떨어져 있는 사용자의 콘텐츠 로드 속도를 높이는 네트워크. 각 지역에 캐시 서버(PoP, Points of presence) 를 분산키고, 사용자에게 요청이 들어오면 사용자의 위치에 근접한 서버로 매핑시켜 원본 서버가 아닌 캐시 서버가 콘텐츠를 전달한다.

  • 엣지 로케이션(Edge Location) :엣지 로케이션은 CDN 서비스를 위한 캐시 서버들의 모음이다.

📌 엣지 로케이션의 단계

1. 사용자가 브라우저를 통해 이미지 요청
2. DNS 서버에 IP 주소 요청
3. Edge Location 주소를 라우팅한다. 이때 Edge Location은 지연 시간이 적고 가까운
   Edge Location의 주소를 알려준다.
4. 전달받은 주소로 데이터를 요청한다
5. 사용자가 요청하는 파일이 저장되어 있다면 전달하고, 없다면 서버에 데이터를 요청한다
6. 서버가 데이터를 Edge Location에 전달한다
7. 사용자에게 전달후 이후 다른 사용자가 해당 파일 요청시 캐시에 데이터를 추가한다.
  • ARN(Amazon Resource Number) : 모든 AWS상의 서비스에 붙는 고유번호. ARN 번호를 Region으로 분류하지만, 가용 영역으로는 나누지 않는다.

📌 AWS 컴퓨팅 서비스를 이해하기 위해 알아야 할 단어

인스턴스 : AWS에 구축된 1대의 가상 서버
도커(Docker) : 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트

AWS 컴퓨팅 서비스

가상 서버를 중심으로 컴퓨터 인프라를 이용하는 서비스를 뜻하며, AWS의 핵심이 되는 서비스이다. AWS 컴퓨팅 서비스는 인스턴스를 시작할 때 실행하려는 어플리케이션, 소프트웨어의 요구사항에 따라 인스턴스의 유형을 지정하는데, 지정하는 유형에 따라 인스턴스에 사용되는 호스트 컴퓨터의 하드웨어가 결정된다. 각 인스턴스 유형은 서로 다른 컴퓨팅, 메모리, 스토리지 용량을 제공하는데, 이 용량에 따라 서로 다른 인스턴스 패밀리로 분류된다.

  • EC2 (Elastic Compute Cloud) - 사용한 만큼만 종량제 형태로 과금이 되는 가상 서버이며, 컴퓨터 리소스에 대한 전반적인 관리를 도와준다. 개별 인스턴스에 대한 총체적인 권한을 받는다.
  • Lambda (람다) - 특정한 이벤트를 통해 입력 인자가 발생하면 연산 과정으로 출력 인자를 바꾸는 이벤트 기반의 컴퓨팅 서비스이다. 소스코드만 사용하여 인프라에 대한 관리가 필요하지 않은 완전 관리형 서비스이다.
  • ECS (Elastic Container Service) - AWS에서 제공하는 도커(서버 가상화) 컨테이너 서비스.
  • Lightsail (라이트세일) - 완전 관리형 가상 서버 서비스. 별도의 소스코드 업로드나 설정 없이 클릭 몇 번 만으로 서버를 구축할 수 있게 만든다.
  • Beanstalk (빈스톡) - EC2의 설정을 매우 쉽게 돕는 서비스. 서버의 런타임부터 운영체제 환경까지 관리해주며 개발자는 소스코드만 업로드하면 바로 운영할 수 있다.

스토리지

파일을 보관하거나 관리하는 저장 장소를 의미한다.

  • S3 (Simple Storage Service) - AWS에서 가장 역사가 오래된 서비스이며 다른 상용 클라우드에 비해 월등한 성능을 보여준다. 서비스 운영 시 생성되는 이미지, 동영상, 오디오 파일들을 저장할 수 있게 한다.
  • Glasier (글래시어) - 백업 데이터같이 만약을 위해 저장하지만 사용 빈도가 낮은 경우에 적합한 서비스. S3에 비해 트래픽 요금이 다소 높다
  • Storage Gateway (스토리지 게이트웨이) - 온프로미스 환경과 AWS를 연결해주는 게이트웨이 서비스. AWS를 통해서 파일로 연결되므로 보안성과 신뢰성이 높다. 기존 데이터들을 클라우드 환경으로 옮기지 않고도 바로 적용이 가능하다.
  • EBS (Elastic Block Storage) - EC2와 연결할 수 있는 저장장치 서비스. 언제든 EC2를 백업할 수 있고 문제가 생겼을 때 복원도 가능하다.

AWS 데이터베이스

체계화된 데이터들의 모임을 의미한다. AWS에서는 RDBM 뿐만 아니라 No-SQL도 제공한다

  • RDS : 전통적인 관계형 데이터베이스를 구축하는 서비스. 높은 가용성과 자동으로 백업/복원 서비스 등을 지원한다.
  • DynamoDB : No-SQL 기반의 완전 관리형 데이터베이스. 저렴하며, 대량의 데이터 발생 시 저장하기 적합하다.
  • Elasticache : 메모리에 데이터를 저장하여 더욱 빠른 입출력이 가능하다. (ex) HDD vs RAM
  • Red Shift : 완전관리형 sql 데이터 웨어하우스로 대용량의 정형 데이터를 처리하는 데 사용. 페타바이트 규모의 데이터를 저렴한가격에 유지보수/운영 가능

AWS 네트워크

아키텍처 3계층에 대한 서비스와 인터넷 연결과 내부 인트라에 대한 서비스를 담당한다.

  • VPC (Virtual Private Cloud) : AWS의 가상 네트워크망 지원 서비스이며, 권한이 있는 사용자만 접속할 수 있다.
  • Route53 : AWS에서 제공하는 DNS 서비스이며, 도메인을 AWS 리소스와 연결할 때 사용한다.
  • CloudFront : 빠른 속도로 이미지나 파일 같은 정적 콘텐츠를 최적화 할 수 있게 만드는 CDN(Content delivery Network)서비스이다.

인공지능

최근 AWS가 가장 중점을 두고 있는 영역이며, 개발자가 구현하기 어려운 부분들에 API를 제공하여 쉽게 개발할 수 있도록 돕는다.

  • Polly : 텍스트를 음성으로 바꾸는(TTS) 음성 합성 서비스이다.
  • Lex : 음성과 텍스트, 자연어 처리를 지원하는 대화형 챗봇 서비스이다.
  • Rekognition : 이미지 인식,분석,필터링 등의 서비스이다.

데이터 분석

AWS는 데이터 가공과 관련된 일련의 과정들을 쉽게 할 수 있도록 돕는다.

  • QuickSight : 데이터 시각화 서비스이다.
  • Athena : 서버리스 기반 SQL 쿼리 서비스이다.
  • CloudSearch : 완전관리형 검색서비스이다.
  • EMR : 빅데이터 분석 플랫폼을 AWS와 연동하여 사용할 수 있는 서비스이다.
  • Kinesis : 실시간 데이터 처리를 위한 서비스이다.

개발자 도구

  • CodeBuild - 원격 빌드 서비스. 소스코드를 컴파일하는 단계부터 테스트와 배포까지 설정할 수 있는 완전관리형 서비스이다
  • CodeCommit - AWS에서 제공하는 사설 Git 저장소 서비스이다.
  • CodeDeploy - 람다, ECS, EC2 같은 서비스들에 애플리케이션 배포를 자동화할 수 있게 지원하는 배포 서비스
  • CodePipleine - CodeCommit부터 CodeDeploy까지 한번에 설정할 수 있는 서비스

AWS 컴퓨팅 선택

이용자가 관리하는, EC2 vs On-Premise
네트워크, 스토리지, 서버, 가상화 등을 신경 쓸 필요 없지만 운영체제왜 애플리케이션은 직접 관리해야 한다.

운영체제 관리가 필요없는, Beanstalk vs ECS
ECS는 런타임을 직접 설정해야 하지만, Beanstalk은 런타임을 선택할 수 있고 추가적인 런타임 설치는 필요하지 않다.

완전 관리형, Lightsail vs Lambda
Lambda는 Beanstalk과 비교했을 때 데이터 계층을 제공하지 않는다는 차이점이 있다. Lightsail은 SaaS와 가장 가까운 서비스로, 어떠한 인프라 설정 없이 바로 원하는 서비스를 작동시킬 수 있다.

📌 서비스별 소요 작업 시간과, 서비스 다양성
소요 시간 : Lambda > ECS > EC2 / 서비스 다양성 : EC2 < ECS < Lambda

이 글은 당신이 지금 알아야 할 AWS(이영호, 한동수) 를 기반으로 하여 작성되었습니다.

profile
설렘과 열정으로 코딩하는 개발자, 채서연입니다

0개의 댓글