NASA의 Jet Propulsion Laboratory(JPL)는 우주 로봇 탐사를 위한 프리미어 NASA 센터입니다. JPL은 태양계의 모든 행성에 로봇을 보냈습니다. 또한, NASA/JPL은 연방 정부에서 클라우드 컴퓨팅을 도입하는 데 앞장서고 있습니다. 클라우드 컴퓨팅은 화성 과학 실험실 미션을 위한 전술 운영 파이프라인에서 중요한 역할을 합니다. NASA/JPL은 캘리포니아주 패서디나의 제어실에서 Amazon Web Services(AWS)를 사용하여 화상 탐사 로버와 화성 과학 실험실 미션에서 수집한 이미지와 메타데이터를 캡처하고 저장합니다. 화성 탐사 로버 Opportunity는 8년 전에 화성에 착륙한 후 지금도 화성을 주행하고 있으며 화성 로버 Curiosity는 2012년 8월 5일에 착륙했습니다.

nasa_jpl_thumbnail
17:42
Tom Soderstrom of NASA JPL Discusses How the Cloud Is Helping Answer Cosmic Questions

2011년 11월 26일에 NASA는 붉은 행성으로의 8개월간의 항해를 향해 Curiosity를 발사했습니다. 세간의 이목이 쏠렸던 이 미션이 성공하기 위해서는 극복해야 할 몇 가지 난제가 있었습니다. 먼저, Curiosity의 큰 덩치로 인해 이전에 사용했던 착륙 방법을 적용할 수 없었기 때문에 착륙시키는 게 큰 문제였습니다. JPL의 엔지니어는 혁신적인 진입/하강/착륙 기법을 설계했고 Curiosity를 부드럽게 표면으로 내리는 "스카이 크레인" 방법을 선택했습니다. NASA는 이 미션을 최대 분 단위로 제공하여 특히 로버가 화성의 대기권에서 화성 표면으로 하강하는 마지막 7분간의 짜릿한 경험을 전 세계 팬과 나누길 원했습니다. mars.jpl.nasa.gov 웹 사이트의 가용성, 확장성 및 성능은 착륙 이벤트에서 가장 중요한 부분이었습니다. AWS와 협력하기 전에는 웹 사이트에 몰리는 수십만 명의 동시 방문자를 지원하기가 매우 어렵고 NASA/JPL이 보유하지 않은 상당한 웹 및 라이브 동영상 스트리밍 인프라가 필요했을 것입니다.

NASA의 Jet Propulsion Laboratory는 AWS를 사용하여 Curiosity 착륙과 관련된 이미지와 동영상을 스트리밍했습니다. JPL은 클라우드 컴퓨팅을 사용함으로써 신속하게 용량을 프로비저닝하고 AWS 클라우드를 활용하여 화성의 매력적인 경험을 대중에게 성공적으로 전달할 수 있었습니다. 일반 사용자가 전 세계에서 사이트에 방문함에 따라 NASA/JPL은 전 세계의 AWS 리전에서 콘텐츠를 제공하여 최종 사용자 경험을 향상하고 글로벌 수요에 맞춰 확장할 수 있었습니다. NASA/JPL에서는 효율적인 방법으로 Amazon Route 53Elastic Load Balancer(ELB)를 사용하여 AWS 리전 전체에서 로드를 밸런싱하고 상상할 수 있는 모든 환경에서 콘텐츠의 가용성을 보장할 수 있었습니다. NASA/JPL과 Amazon Web Services가 함께 개발하고 검토한 최종 아키텍처로 NASA는 배포 모델이 비용 효율적으로 확장되고 수행되어 다른 행성에 착륙하는 놀라운 경험을 전달할 수 있다고 확신했습니다. 데이터를 대중에 제공하겠다는 열망으로 NASA/JPL은 수십만 명의 동시 시청자를 위해 초당 수백 기가바이트의 트래픽을 지원할 수 있도록 준비했습니다.

몇 주 만에 NASA/JPL은 다양한 AWS 서비스를 사용하여 구축된 웹 호스팅 및 라이브 동영상 스트리밍 솔루션을 설계, 구축, 테스트 및 배포할 수 있었습니다. NASA/JPL의 라이브 동영상 스트리밍 아키텍처는 Adobe Flash Media Server, 널리 사용되는 nginx 캐싱 티어를 실행하는 Amazon Elastic Compute Cloud(EC2) 인스턴스, Elastic Load Balancing, DNS 관리용 Amazon Route 53, 그리고 콘텐츠 전송을 위한 Amazon CloudFront를 조합하여 개발되었습니다. AWS CloudFormation은 여러 AWS 가용 영역(AZ) 및 리전에 걸쳐 라이브 동영상 스트리밍 인프라 스택의 배포를 자동화합니다.

또한, Amazon Linux AMI를 실행하는 Amazon EC2 인스턴스는 구성 스크립트와 Amazon EC2 인스턴스 메타데이터를 사용하여 구성되었습니다. 착륙 직전에 NASA/JPL은 각각 25Gbps의 트래픽을 처리할 수 있는 AWS 인프라 스택을 프로비저닝했습니다. NASA/JPL은 Amazon CloudWatch를 사용하여 트래픽 볼륨의 스파이크를 모니터링하고 리전별 수요에 따라 추가 용량을 프로비저닝했습니다. 착륙 후 몇 시간이 지나 트래픽 볼륨이 정상으로 돌아왔을 때 NASA/JPL은 AWS CloudFormation을 사용하여 단일 명령으로 리소스를 프로비저닝 해제했습니다. 아래 그림은 라이브 동영상 스트리밍 아키텍처의 다이어그램을 보여줍니다.

nasa-1-arch-diagram

그림 1: NASA/JPL 라이브 동영상 스트리밍 아키텍처

mars.jpl.nasa.gov 웹 사이트는 Amazon EC2에서 실행되는 오픈 소스 콘텐츠 관리 시스템(CMS) Railo를 기반으로 합니다. Railo용 공유 스토리지는 일관된 고성능 디스크 I/O를 위해 Amazon Elastic Block Store(EBS) 볼륨 풀의 Gluster 구동 Amazon EC2 인스턴스에서 제공합니다. 또한, CMS는 Amazon Relational Database Service(RDS)에서 관리하는 고가용성 다중 AZ MySQL 데이터베이스와 상호 작용합니다. 다수의 Elastic Load Balancer에서 CMS 서버 전체로 트래픽을 분산하며 Amazon Route 53을 사용하여 ELB에 가중치 기반 트래픽 분산을 제공합니다. 또한, Amazon CloudFront를 사용하여 전 세계 지점에 트래픽을 분산하고 이를 통해 해외 방문자에 대한 지연 시간을 줄이고 솔루션의 전반적인 확장성을 개선합니다.

그뿐만 아니라 NASA에서는 Amazon Simple Workflow Service(Amazon SWF)를 활용하여 화성의 최신 이미지를 Amazon S3로 복사합니다. 메타데이터는 Amazon SimpleDB에 저장되고 Amazon SWF는 Amazon EC2 인스턴스 프로비저닝을 트리거하여 Curiosity에서 지구로 전송이 릴레이될 때마다 이미지를 처리합니다. 아래 다이어그램은 NASA/JPL의 웹 아키텍처를 보여줍니다.

nasa-2-arch-diagram

그림 2: NASA/JPL 웹 아키텍처

mars.jpl.nasa.gov 웹 사이트를 Amazon Web Services에서 운영함으로써 NASA/JPL은 자체적으로 인프라를 구축하지 않고도 전 세계로 메시지를 방송할 수 있었습니다. AWS에서 제공하는 다양한 기능과 간편한 사용성으로 NASA/JPL은 몇 달이 아니라 2~3주 만에 강력하고 확장 가능한 웹 인프라를 구축할 수 있었습니다.

이제 Curiosity가 화성에 안전하게 착륙했으므로 이 미션에서는 계속해서 Amazon Web Services를 사용하여 화성의 이미지 분석을 자동화하고 이를 통해 과학자가 잠재적 위험이나 특정한 과학적 관심 분야를 파악하는 시간을 극대화할 것입니다. 그 결과, 과학자는 화성 과학 실험실이 해당 솔(화성 날짜)에 수행할 수 있는 탐사의 양을 늘리도록 더 긴 명령 시퀀스를 Curiosity에 전송할 수 있습니다.

NASA/JPL의 미션과 화성에 대해 좀 더 알아보려면 http://mars.jpl.nasa.gov를 방문하고, NASA가 어떻게 상호 운용 가능하고 안전하며 비용 효율적인 표준 기반 환경으로 AWS 클라우드를 사용하는지 더 읽어보려면 NASA의 블로그를 방문하십시오.

AWS에서 어떻게 공공 부문에서 미션 크리티컬 클라우드 컴퓨팅 애플리케이션을 지원하는지 자세히 알아보려면 http://aws.amazon.com/government-education/을 참조하십시오.

NASA/JPL에서 어떻게 기타 미션 및 연구에 AWS 클라우드를 사용하는지 자세히 알아보려면 NASA/JPL’s Desert Research and Training StudiesNASA/JPL’s MER and CARVE Missions 고객 성공 사례를 참조하십시오.