BLOG
AWS 수석 엔지니어 Ali Saidi가 쓴 글입니다.
AWS가 re:Invent 2018에서 Amazon EC2 A1 인스턴스(instance)를 출시했습니다. 이 인스턴스는 최근 출시된 모든 인스턴스에 전원을 공급하는 AWS Nitro 시스템을 기반으로 하며, AWS Graviton 프로세서로 작동되는 첫 인스턴스 유형입니다. AWS Graviton 프로세서는 64비트 Arm Neoverse cores를 특징으로 하며, 특별히 유저들도 AWS에서 쓸 수 있도록 Amazon이 처음으로 설계한 프로세서입니다. A1 인스턴스는 다른 인스턴스 유형에서 쓸 수 있는 같은 개수의 vCPU와 DRAM보다 최대 40%가 저렴합니다. 현재 미국 동부(버지니아주와 오하이오주), 미국 서부(오리건주) 및 EU(아일랜드) 리전에서 다음과 같은 구성으로 A1 인스턴스를 사용할 수 있습니다.
모델 | vCPUs | 메모리 (GiB) | 인스턴스 저장소 | 네트워크 대역폭 | EBS 대역폭 |
a1.medium | 1 | 2 | EBS 전용 | 최대 10 Gbps | 최대 3.5 Gbps |
a1.large | 2 | 4 | EBS 전용 | 최대 10 Gbps | 최대 3.5 Gbps |
a1.xlarge | 4 | 8 | EBS 전용 | 최대 10 Gbps | 최대 3.5 Gbps |
a1.2xlarge | 8 | 16 | EBS 전용 | 최대 10 Gbps | 최대 3.5 Gbps |
a1.4xlarge | 16 | 32 | EBS 전용 | 최대 10 Gbps | 최대 3.5 Gbps |
개발자가 이 re:Invent talk를 보고 A1 제품 세부 정보 페이지를 참고하면 인스턴스 자체에 대한 자세한 내용을 알 수 있습니다.
도입 이후, 저희는 A1 인스턴스에 사용할 수 있는 운영 체제를 확장하고 Arm software ecosystem과 협력하고 있습니다. 무엇이 지원되고 그것들은 어떻게 쓰는 걸까요?
운영 체제 지원
오픈 소스 스택(일시적으로 보존하고 싶은 데이터를 차례로 겹쳐 쌓듯이 수납해 가는 기억 장치)을 사용하고 있는 경우, Arm ecosystem이 잘 개발돼 이미 애플리케이션을 지원하고 있을 가능성이 높습니다. 이는 클라우드에서 규모를 확장하는 애플리케이션을 구축하는 사용자가 많기 때문입니다.
A1 인스턴스에는 Arm 프로세서용으로 만들어진 AMI와 소프트웨어가 필요합니다. A1이 출시됐을 때 Amazon Linux 2, Ubuntu 16.04와 18.04, 그리고 Red Hat Enterprise Linux 7.6에 대한 지원이 있었습니다. 출시 두 달 후, 사용자가 쓸 수 있는 운영 체제가 Red Hat Enterprise Linux 8.0 Beta, NetBSD, Fedora Rawhide, Ubuntu 18.10, Debian 9.8까지 늘어났습니다. 앞으로 몇 개월 내에 더 많은 종류의 운영 체제, 리눅스 배포판 및 AMI 이용할 수 있을 것입니다.
이러한 운영 체제와 Linux 배포판은 기존 x86 AMI와 같은 수준의 Arm AMI를 지원하고 있습니다. apt나 yum 이 있는 패키지를 설치하면, 그 패키지는 사용자가 선택한 OS에서 Arm용으로 존재하며 Arm AMI와 같은 방식으로 실행될 것입니다.
예를 들어 Amazon Linux 2 또는 Ubuntu의 Arm 버전에 PHP 7.2를 설치하려면 x86 기반 인스턴스 유형과 동일한 단계를 수행하세요.
$ sudo amazon-linux-extras php72
$ sudo yum install php
또는 Ubuntu 18.04에서:
$ sudo apt update
$ sudo apt install php
컨테이너
A1에서 애플리케이션을 구축하는 메커니즘들 중 가장 큰 사랑을 받고 있는 것이 컨테이너입니다. ECS(Elastic Container Service)는 이미 A1 인스턴스를 지원하고 있고 Amazon ECS에 최적화된 Amazon Linux 2 AMI가 있으며, 곧 EKS(Elastic Kubernetes Service)에 대해서도 지원을 시작할 것입니다. Docker Hub에서 호스팅되는 Docker 공식 이미지들은 대부분 이미 x86과 함께 64비트 Arm 시스템을 지원하고 있습니다.
AWS Batch가 A1을 지원하면서 규모를 맞춰 컨테이너를 운영하도록 하는 지원이 확장되고 있습니다.
A1에서 컨테이너 실행
Amazon Linux 2에서 컨테이너를 어떻게 실행해야 할까요? 많은 Docker 공식 이미지들(이 글의 경우 적어도 76%)이 이미 64비트 Arm 시스템을 지원하고 있습니다. 지원을 추가할 패치가 없거나 상용 소프트웨어를 기반으로 하는 Docker 공식 이미지들 대다수도 64비트 Arm 시스템을 지원하고 있습니다.
$ sudo yum install -y docker
$ sudo service docker start
$ sudo docker run hello-world
$ sudo docker run hello-world
Unable to find image ‘hello-world:latest’ locally
latest: Pulling from library/hello-world
3b4173355427: Pull complete
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
…
A1에서 WordPress 실행
A1 인스턴스에서 LAMP(Linux, Apache HTTPd, MariaDB 및 PHP) 스택을 자동으로 실행하는 상황이라면 어떨까요? AWS는 A1 인스턴스 유형을 지원하기 위해 CloudFormation의 기본 템플릿을 업데이트했습니다. Amazon Linux 2를 지원하기 위해 템플릿을 일부 변경했습니다. 하지만, Amazon Linux 2를 지원하는 경우가 아니라면 모든 인스턴스 유형에서 동일한 템플릿이 작동합니다. 템플릿은 여기에 있습니다. 이 템플릿은 다른 CloudFormation 템플릿처럼 쓰일 수 있습니다.
업데이트된 CloudFormation의 템플릿은 기본적으로 A1 Arm 인스턴스에서 실행됩니다. 템플릿이 실행된 후 출력(output)은 실행되고 있는 인스턴스의 URL입니다. 브라우저를 통해 인스턴스에 접속하면 기본 WordPress 홈페이지가 제공되는 것을 볼 수 있습니다.
요약
오픈 소스 소프트웨어를 쓴다면 가장 필요한 것들은 모두 Arm 시스템에서 작동하는 것들입니다. A1 인스턴스에서 실행되는 소프트웨어의 지원을 늘리고 성능을 향상시키기 위한 노력은 앞으로도 계속될 것입니다. 오픈 소스 기반 웹 단계(web-tier) 또는 컨테이너형 애플리케이션이 있는 사용자들은 A1 인스턴스를 사용해 보고 후기를 공유해주시기 바랍니다. 문제가 생기면 AWS Compute Forum을 통해 ec2-arm-dev-feedback@amazon.com으로 이메일을 보내주시거나 일반 AWS 지원 연락처로 연락 주세요.
원문 URL : https://aws.amazon.com/ko/blogs/database/boosting-application-performance-and-reducing-costs-with-amazon-elasticache-for-redis/
** 메가존클라우드 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.