페이지상단으로이동

개발자의 웹 앱 관리를 도와주는 ‘AWS(아마존 웹 서비스)’

    • 이진영 기자
    • |
    • 입력 2019-07-11 15:49
    • |
    • 수정 2019-07-11 15:49

클라우드 상에서 웹사이트를 호스팅하고 구축하는 데에 AWS(Amazon Web Services, 아마존 웹 서비스)는 개발자들이 가장 선호하는 선택 중 하나이다. Cnalys(캐널리)에 따르면 AWS는 전체 시장 점유율의 약 3분의 1을 차지하며 전 세계 공공 클라우드 시장을 장악하고 있다.

AWS는 컴퓨팅 능력, 콘텐츠 전송, 데이터 베이스 저장 등 다양한 분야에 사용될 수 있는 수많은 서비스를 제공한다. 개발자는 WordPress 사이트, Node.js 웹 앱, LAMP 스택 웹 앱, Drupal 웹 사이트 또는 Python 웹 앱 등 고가용성 프로덕션 웹 사이트를 구축할 수 있다.

AWS 개발자들은 웹 애플리케이션의 클라우드 인프라를 설정, 유지 및 발전시켜야 한다. 또한 그들은 보안과 확장성에 관련된 모범 사례를 적용해야 한다.

모바일 앱 및 웹 개발 회사 Techuz(테추즈)의 CEO Baibhab Shah(바이브하브 샤)는 Packt을 통해 AWS 개발자가 웹 앱 응용 프로그램을 관리하는 방법에 대해 소개했다.


Amazon EC2을 사용해 웹사이트 또는 웹 앱 배포
Amazon EC2(Amazon Elastic Compute Cloud)는 개발자들에게 안전하고 확장 가능한 컴퓨팅 용량을 클라우드에서 제공한다. 웹사이트 또는 웹 앱을 호스팅 하기 위해 개발자들은 인스턴스라고 불리는 수직의 앱 서버를 사용해야 한다.

Amazon EC2 인스턴트로 개발자들은 컴퓨팅 리소스에 대한 완전한 제어권을 얻는다. 그들은 요구 사항을 기반으로 용량을 확장하고, 실제로 사용하는 리소스에 대해서만 지불할 수 있다. AWS lambda, Elastic Beanstalk, Lightsail 등 일반적인 고장 사례에서 웹 앱을 분리할 수 있는 도구를 제공한다.

Amazon EC2는 Amazon Linux, Windows Server 2012, CentOS 6.5, Debian 7.4를 포함해 많은 주요 운영 체제를 지원한다.

개발자들은 Amazon EC2에서 인스턴트를 사용해 고가용성 웹사이트나 웹 앱을 구축할 수 있다.


Amazon EC3을 클라우드 스토리지에 사용
Amazon Simple Storage Service 또는 Amazon S3는 웹 스케일 컴퓨팅을 원활하게 개발하도록 하는 안전하고 확장성이 뛰어난 클라우드 스토리지 솔루션이다. HTML 페이지, 이미지, CSS 파일, 비디오, 자바스크립트 등 웹사이트 구축에 필요한 객체에 사용된다.

S3는 간단한 인터페이스를 제공해 개발자들이 언제든지 인터넷상의 어디에서든 다량의 데이터를 가져오고 저장할 수 있도록 한다. Amazon S3와 함께 제공되는 스토리지 인프라는 확장성, 신뢰성, 속도 등이 뛰어나다. 아마존은 이 스토리지 옵션을 자체 웹사이트를 호스트 하는 데에 사용한다.

S3 내에서 개발자는 데이터 저장용 버킷을 생성해야 한다. 각 버킷은 다량의 데이터를 저장할 수 있어 개발자가 많은 수의 객체를 업로드할 수 있다. 개체가 포함할 수 있는 최대 데이터량은 5TB이다. 개체는 고유한 키를 사용해 버킷에 저장하거나 가져온다.

버킷은 여러 목적으로 사용할 수 있는데, S3 네임스페이스 구성, 저장 및 데이터 전송에 할당된 계정 인식 및 사용의 집계 단위 작업에 사용할 수 있다.


■ 탄력적인 로드 밸런싱
로드 밸런싱은 여러 대상에 따라 트래픽 부하를 분산시키고 균형을 맞추기 위해 웹사이트나 웹 앱에서 매우 중요한 부분이다. AWS는 자사의 개발자들에게 탄력적인 로드 밸런싱을 제공하며, 이는 그들이 Amazon EC2 인스턴스, IP 주소, 람다 기능 및 컨테이너와 같은 여러 서비스에 걸쳐 트래픽을 분산시킬 수 있게 한다.

탄력적인 로드 밸런싱을 통해 개발자들은 트래픽이 많이 몰릴 때에도 프로젝트의 효율적인 실행을 보장할 수 있다. AWS의 탄력적 로드 밸런싱과 함께 사용할 수 있는 로드 밸런서는 애플리케이션 로드 밸런서, 네트워크 로드 밸런서, 클래식 로드 밸런서 등 3가지가 있다.

응용 프로그램 로드 밸런서는 HTTP 및 HTTPS 트래픽에 이상적인 옵션이다. 이것은 마이크로 서비스 및 컨테이너의 전달을 위한 요청에 대한 고급 라우팅을 제공한다. 개발자는 TCP(Transmission Control Protocol), TLS(Transport Layer Security) 및 UDP(User Datagram Protocol)의 부하 균형을 위해 네트워크 로드 밸런서를 선택한다. 반면, 클래식 로드 밸런서는 EC2 인스턴스 전체에서 일반적인 로드를 분산하는 데에 가장 적합하다. 이것은 요청과 연결에 모두 효과가 있다.


■ 디버깅 및 트러블 슈팅
웹 앱이나 웹사이트는 수많은 특징과 구성요소를 포함한다. 때로는 코드 오류나 다른 버그 때문에 문제가 생기고, 예상대로 동작하지 않을 수 있다. 이러한 경우 AWS 개발자는 여러 프로세스와 기법을 따르고 기술과 문제에 대한 트러블 슈팅에 도움이 되거나 디버깅 하는 데 도움이 되는 유용한 리소스를 확인한다.


트래픽 모니터링 및 분석
트래픽과 네트워크 로그를 분석하고 모니터링하는 것은 웹사이트와 웹 앱이 인터넷에서 수행하는 방식을 이해하는 데 도움이 된다.

AWS는 트래픽 모니터링을 위한 몇 가지 도구를 제공하며, 여기에는 Kinesis 데이터 분석, Amazon Kinesis, Amazon Pinpoint, Amazon Athena 등이 포함된다.

웹 사이트 메트릭스의 추적을 위해 개발자는 Kinesis 데이터 분석과 실시간 웹 분석 기능을 함께 사용한다. 이 도구는 방문자 수, 페이지 뷰, 방문자가 보낸 시간, 방문자가 취한 조치, 교통량 조절 채널 등에 대한 인사이트를 제공한다.

또한, 툴에는 웹 서버의 모니터링에 사용할 수 있는 대시보드 옵션이 함께 제공된다. 개발자는 서버의 성능, 평균 네트워크 패킷 처리, 오류 등에 대해 알 수 있는 서버의 사용자 지정 지표를 볼 수 있다.


웹 응용 프로그램의 관리는 지루한 작업이며 품질의 도구와 기술이 필요하다. Amazon Web Services는 웹 개발자들에게 앱을 처리하는 데 필요한 모든 도구를 제공함으로써 일을 더 쉽게 도와준다.

이진영 기자 | gina1404@codingworldnews.com

댓글 [0]
댓글 서비스는 로그인 이후 사용가능합니다.
댓글등록
취소
  • 최신순
닫기