개발자들에게 도움이 될 만한 9가지 기본 아마존 웹서버 (Amazon Web Service, AWS) 서비스

openhub·2021년 3월 9일
118

개발자 팁

목록 보기
2/4


아마존 웹서비스(Amazon Web Service, AWS)는, 정말 어지러울 정도로 많은 서비스를 제공합니다. 2020년, 작년 한 해 AWS 서비스에 많은 변화가 있었던 것도 주목할 사항이고요. 무엇보다 처음 방문하면 보통 traditional 웹서버 운영방법과 다른 점도 많고 각 서비스의 이름들도 생소한 관계로 많은 개발자분들이 어려운 점을 느끼는 게 사실이라, AWS에서 가장 많이 사용하는 유익한 서비스 종류들 소개와 요약을 한번 정리해보았습니다. 각 항목에는 AWS 서비스 페이지로 링크와 간략한 설명이 있으니 한번 검토해 보세요!


EC2

(Virtual Machine, 가상 머신)

  • 클라우드 Virtual Machine(가상 머신): 가상 컴퓨팅 환경 서비스
  • 컴퓨팅 리소스에 대한 포괄적인 제어권을 제공: Amazon에서 제공하는 서비스의 가장 중심 되는 서비스
  • 다양한 인스턴스 유형을 제공: 각 사용 사례에 맞게 여러 가지 프로세서, 스토리지, 네트워킹, 운영 체제 및 사이즈 선택 가능

Elastic Compute Cloud라고도하는 EC2는 Amazon에서 제공하는 서비스의 가장 중심 되는 서비스이라고 해도 과언이 아닙니다. 왜냐하면 Node, Go, Java, Python 등으로 만들어진 프로젝트의 백엔드를 “실행”하기 위해 아주 필수항목이기 때문입니다. EC2는 한마디로 간단한 “Virtual Machine(가상 머신)”입니다. 주목하여야 할 점은 단지 인스턴스를 시작하는 것외에, 더 많은 기능이 숨겨져 있다는 점. EC2 옵션으로 보안 그룹 세팅(외부 방화벽으로 간주), 로드 밸런싱, 그룹 자동 확장 등을 다양하게 설정 관리하는 방법이 제공되니, 이러한 정보를 좀 더 습득하여 EC2를 올바르게 사용해보세요.


S3

(정적 파일 관리)

  • 오브젝트/정적 파일 스토리지 서비스 (사진, 비디오, 문서 등 또는 코드 화일까지! )
  • 간편한 데이터 관리 및 액세스 제어
  • 비용 효율적인 다양한 스토리지 클래스 & 백업 및 복원 솔루션 제공

**AWS S3(Simple Storage Service)**는 정적 파일 (사진, 비디오, 문서 등 또는 frontend 코드와 Lambda 함수 코드도 해당) 스토리지 서비스의 솔루션입니다. S3의 파일 저장은 “bucket (버킷 – 즉 ‘컨테이너’)”을 통해 운영이 되는데 다른 유저들의 액세스를 컨트롤할 수 있는 기능도 제공합니다. 또한 CloudFront를 구성하면 S3에 저장된 정적 파일이 CDN을 통해 더 효율적으로 빠르게 보급되는 장점이 있습니다.


IAM

(사용자 설정 및 액세스 관리)

**IAM(Identity and Access Management)**은 한마디로 AWS 서비스 관련 액세스와 권한 설정하는 “Key(키/열쇠)” 관리 서비스이니 사용 방법을 당연히 알아야 하는 핵심 중 하나입니다. 개발 사용을 위해서는 AWS 계정의 root(루트)가 아닌 다른 사용자 및 그룹 수준 권한을 설정하여 따로 사용자 ID 설정을 통한 이용을 권장드립니다.


Route 53

(DNS 설정)

  • Domain Name System (DNS) 도메인 관리/설정 서비스
  • EC2 인스턴스, Elastic 로드 밸런서, S3 저장소 등 AWS 서비스 인프라에 효과적으로 연결

Route 53는 AWS가 제공하는 서비스 중, 또 하나 필수로 알아야 할 "DNS 설정" 관련 서비스입니다. (이것은 별로 보통 웹서버와 다른 점이 없음. 이름만 좀 색다를 뿐) 다른 domain 등록 대행자를 통해 도메인을 구입한 경우 AWS 네임 서버(name server or NS records)를 가리키고 Route53 통해 지정 도메인이 가리키는 위치 (Elastic Load Balancer, EC2 인스턴스, CloudFront 배포, S3 버킷 등)를 쉽게 구성할 수 있습니다. Route53을 통해 도메인을 구입할 수도 있습니다.


Elastic Beanstalk

(배포를 돕는 PaaS 같은 서비스)

  • 애플리케이션 배포를 간편히 관리해주는 서비스
  • 코드를 업로드하기만 하면 Elastic Beanstalk가 용량 프로비저닝, 로드 밸런싱, Auto Scaling부터 시작하여 애플리케이션 상태 모니터링에 이르기까지 자동으로 처리

AWS의 Heroku와 비슷한 PaaS 같은 서비스. 진정한 PaaS는 아니지만 앱을 배포하는 점에 있어서 더 “수월한” 서비스입니다. (말하자면 잭과 콩나무, “Jack and the Beanstalk”, 처럼 “콩”을 심으면 자동적으로 쭉 자라는) 말하자면 몇 가지 다른 AWS 서비스를 사용하며, 웹 애플리케이션을 AWS에 배포하는 데 따른 복잡성을 간단히 설정해주는 서비스인데요, 제가 보기에 Lightsail과 비슷한 범주에 속합니다. 한번 시도해보십시오!

PaaS란?

**"플랫폼-같은-서비스(Platform-as-a-service, PaaS)"**는 하드웨어 및 응용 프로그램 관리가 제3사를 통해 제공되는 클라우드 컴퓨팅의 한 형식입니다. PaaS 제공업체는 자체 인프라에서 하드웨어와 소프트웨어를 호스팅하고 이러한 플랫폼을 사용자에게 통합 솔루션, 솔루션 스택 또는 인터넷을 통한 서비스로 제공. 그러니 Iaas(Infrastructure-as-a-service, 예로는 AWS과 DigitalOcean 등)보다 서버 프로비저닝 하거나 관리할 필요 없는 관계로, 더 사용 간편한 점이 있습니다.


CloudFront

(AWS의 CDN—Content delivery network, 콘텐츠 전송 네트워크—솔루션)

  • 빠른 콘텐츠 전송을 위한 글로벌 규모의 네트워크: 강력한 네트워크 상의 cache 세팅을 통하여 거리 관련 콘텐츠 로드 지연을 최소화
  • S3, EC2, Elastic Load Balancing, Route 53 등과 같은 AWS 서비스와 통합되어 운영

참고로 CDN(콘텐츠 전송 네트워크)은 강력한 네트워크 상의 cache 세팅을 통하여 웹 서버와 사용자 사이의 지역적 거리를 극복하며 페이지 콘텐츠 로드 지연을 최소화하는 기능을 말합니다. 이를 통해 전 세계 사용자들이 로딩 시간을 늦추지 않고 동일한 고품질 콘텐츠를 볼 수 있습니다. S3에 CloudFront를 설정함으로써 AWS에 저장되어있는 정적 파일을 사용자에게 지연 없이 안정적으로 전달할 수 있습니다.

국제적인 기관들에게는 필수!


RDS

(Relational, "관계형", 데이터 베이스 서비스)

Amazon의 **RDS, "Relational Database Service"**는 MySQL, Oracle DB, PostgreSQL과 같이 선택할 수 있는 다양한 데이터베이스 엔진을 제공하는 간단한 호스팅 서비스입니다. 구성 및 확장이 쉽습니다.


Lambda

(AWS의 serverless compute service)

  • 서버 인프라를 프로비저닝하거나 관리할 필요 없이 Lambda 기능을 선호 언어 (Node.js, Python, Go, Java 등)로 작성하고 AWS 서비스에 업로드하여 코드를 자동으로 트리거하도록 설정하거나 웹 또는 모바일 앱에서 직접 코드를 호출

들어보셨는지 모르겠지만, 근래에 FaaS (Function as a Service) 제품 또한 인기가 높아졌습니다. 그런 붐에 더불어 “Serverless(서버를 사용하지 않는)” 모델은 개발자가 서버 인프라를 관리할 필요 없이 데브에만 집중할 수 있어 트렌드가 높아지고 있는 것이 사실인데요, 이것에 맞추어 나온 서비스 상품이 **AWS Lambda, "serverless compute service"**입니다.

간단한 사용 예를 들자면, JavaScript로 function 작성하고 (이미지 업로드 시 파일 압축과 다양한 이미지 사이즈 작성 등) AWS Lambda로 푸시하면, 백엔드 없이, 그 이벤트가 있을 때마다 function 실행될 수 있는 기능; 그리고 “실행 시간”에 대해서만 지불함으로 비용 절감도 가능합니다.

--

Lightsail

편리한 단일 가상 서버

  • 편의적인 one-click “서버 세팅” 종류 서비스
  • 주어진 리소스 옵션(Ubuntu, Node, Lamp stack, Nginx, WordPress, Django.. etc) 중 하나를 택하여 단일 가상 서버를 쉽게 설정
  • 스토리지, 데이터베이스 및 CDN 등 간소하지만 종합적 서비스 제공

Digital Ocean과 같은 다른 클라우드 플랫폼이 제공하는 편의적인 one-click "서버 세팅" 서비스를 AWS이 시도해보는 신 상품으로 보입니다. 한마디로 주어진 설정 옵션 중 (거진 수요가 많은 서버 리소스들: Ubuntu, Node, Lamp stack, Nginx, WordPress, Django.. etc) 하나를 택하여 단일 소형 서버를 쉽게 설정할 수 있는 서비스입니다. 가격이 비교적 저렴하고, 간편한 세팅과 소규모로 시작한 다음 성장에 따라 확장할 수 있도록 설계되어있는점, 그리고 비교적 저렴한 가격 등에 관련하여 인기가 올라가고 있는 서비스입니다. 가상 머신(virtual machine), SSD 기반 스토리지, 데이터 베이스, DNS 관리 및 정적 IP 등을 제공합니다.

월별 3.50 USD로 시작하며, 용량이 더 필요할 때는 더 큰 패키지로 업그레이드하던가, EC2로 migrate도 가능합니다.


결론적으로

이 목록은 AWS의 많은 서비스의 시작점을 의미합니다. 서비스 이름과 종류가 참 다양한 관계로 개발자들이 개요를 이해하고 실제로 사용하면서도 사실 정말로 유용한 것을 사용하고 있는지, 아니면 다른 더 능률적인 관리 방법이 있는지는 확인하기도 어려울 수 있습니다. 이런 관계로 “DevOps”라는 클라우드 아키텍처 전문 career 카테고리가 새로 등장한 정도이니까요.

모쪼록 이 정보가 조금이라도 이해하는데 도움이 되어 오늘부터라도 실제로 필요한 몇 가지 서비스를 선택하고, 한 가지씩 배우며 나갈 수 있으시기를 바랍니다.

Happy learning!


> 👉 원본 보기

>> 🤓 유튜브 비디오 👀

profile
The Future is OPEN.

5개의 댓글

comment-user-thumbnail
2021년 3월 9일

이렇게 쫙 깨끗이 정리가 된것을 보니, 아직도 완전히 이해는 안가도.. 조금 이해가 되려는 느낌... 😚🥰 감사드려요! 🙏👍✨

답글 달기
comment-user-thumbnail
2021년 3월 13일

나이수~ 땡큐

답글 달기
comment-user-thumbnail
2021년 3월 17일

AWS는 알면 알수록 재밌는 기능들이 많군요 ^^ 감사합니다

답글 달기
comment-user-thumbnail
2021년 3월 19일

좋은글 감사합니다.^^ Lightsail 한번 봐야겠네요ㅎㅎㅎ
ec2랑 같이 쓰는 로드밸런싱이 생각보다 비싸서 람다쪽으로 이전중이였는데 좋은 정보 감사합니다.^^

답글 달기
comment-user-thumbnail
6일 전

오 람다랑 ec2는 자주 들었는데 라이트세일은 처음 듣네요 좋은정보 감사합니다

답글 달기