Category: Amazon EC2


운영 중인 EC2 인스턴스에 IAM 역할 연결하기

AWS Identity and Access Management (IAM)의 역할을 통해 Amazon EC2 에서 실행되는 응용 프로그램이 자동 생성, 배포되는 임시 보안 자격 증명을 사용할 수 있습니다 . 임시 자격 증명을 사용하는 것은 IAM 모범 사례로서 인스턴스에서 직접 키 관리를 하지 않아도 됩니다.

2017-02-aws-iam-ec2-instance

즉, EC2 IAM 역할 적용 기능을 사용하여 장기적인 AWS 액세스 키(Access Key)를 수동 혹은 프로그램에서 직접 관리 할 필요가 없습니다. 얼마 전, IAM 역할을 통해 기존 EC2 인스턴스 응용 프로그램에서 AWS에서 제공하는 임시 보안 자격 증명을 사용할 수 있게 되었습니다. 또한 기존 EC2 인스턴스에 첨부 되어있는 IAM 역할을 변경할 수 있습니다.

이 글에서는 AWS CLI를 사용하여 기존 EC2 인스턴스에 IAM 역할을 손쉽게 변경하는 방법을 소개합니다. 아래는 이 글의 주요 순서입니다.

  1. IAM 역할 생성 하기
  2. EC2 인스턴스에 신규 IAM 역할 추가하기
  3. EC2 인스턴스에서 기존 IAM 역할 변경하기

이 글에서는 새로 만든 IAM 역할을 “YourNewRole”라고합니다. 이 역할과 연관된 인스턴스 프로파일을 “YourNewRole-Instance-Profile” 기존 인스턴스를 “YourInstanceId”라고 하겠습니다. 여기에서는 AWS 명령 줄 인터페이스 (CLI) 설정을 완료하고, IAM 역할을 만들 권한 및 EC2 API를 호출 권한을 가지고 있음을 전제로 하고 있습니다.

1. IAM 역할 생성 하기

참고 : 기존 IAM 역할을 연결할 경우, 이 글 아래의 “EC2 인스턴스에 신규 IAM 역할 추가하기”를 보시기 바랍니다. 또한, AWS 관리 콘솔을 사용하여 IAM 역할을 생성하고 진행하면 됩니다.

AWS CLI에서 IAM 역할을 생성하기 전에 신뢰 정책(Trust policy)을 작성해야합니다. 신뢰 정책은 EC2 등의 AWS 서비스가 응용 프로그램 대신 IAM 역할을 맡도록 허용합니다. 신뢰 정책을 만들려면, 아래 정책을 복사하여 YourNewRole-Trust-Policy.json로 저장 한 텍스트 파일에 붙여 넣습니다.

Json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

신뢰 정책을 만들면 기존 EC2 인스턴스에 연결할 수 있는 IAM 역할을 만들 준비가 되었습니다.

AWS CLI에서 IAM 역할을 만들기:

  1. AWS CLI에서 create-role 명령을 호출하여,  YourNewRole-Trust-Policy.json을 기반으로 YourNewRole이라는 IAM 역할을 생성합니다.
    $aws iam create-role --role-name YourNewRole --assume-role-policy-document file://YourNewRole-Trust-Policy.json
    
  2. 만들어진 IAM 역할에 계정 자원에 대한 접근 권한을 부여하려면, attach-role-policy 명령을 호출합니다. 아래 는 애플리케이션이 Amazon S3 버킷의객체에 대한 읽기 권한이 필요한 경우입니다. 따라서, AWS 관리 정책 중 하나인 AmazonS3ReadOnlyAccess을 사용합니다. AWS 관리 정책에 대한 자세한 내용은 “관리 정책 기술 문서“를 참조하십시오.
    $aws iam attach-role-policy --role-name YourNewRole --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
  3. create-instance-profile 명령 및 add-role-to-instance-profile 명령을 실행하여, IAM 인스턴스 프로파일 “YourNewRole-Instance-Profile“을 만듭니다. 인스턴스 프로파일을 통해 EC2는 IAM 역할 “YourNewRole“을 EC2 인스턴스에 추가할 수 있습니다. 자세한 내용은 “인스턴스 프로파일 사용“을 참조하십시오.
    $aws iam create-instance-profile --instance-profile-name YourNewRole-Instance-Profile
    $aws iam add-role-to-instance-profile --role-name YourNewRole --instance-profile-name YourNewRole-Instance-Profile

“YourNewRole”라는 IAM 역할을 성공적으로 만들었습니다.

2. EC2 인스턴스에 신규 IAM 역할 추가하기

이제 YourNewRole이라는 IAM 역할을 EC2 인스턴스 YourInstanceId에 연결할 준비가 되었습니다. 이제 추가해 보겠습니다.

  1. associate-iam-instance-profile 명령을 호출하여, 새로 생성 된 IAM 역할 “YourNewRole-Instance-Profile”, “YourNewRole” 인스턴스 프로파일을 EC2 인스턴스 “YourInstanceId”에 연결합니다.
    $aws ec2 associate-iam-instance-profile --instance-id YourInstanceId --iam-instance-profile Name=YourNewRole-Instance-Profile
  2. describe-iam-instance-profile-association 명령을 호출하여 IAM 역할이 제대로 인스턴스에 연결되어 있는지 확인합니다.
    $aws ec2 describe-iam-instance-profile-associations
  3. 이제 IAM 역할을 사용하여 AWS 자원에 접근할 수 있도록 애플리케이션을 업데이트하고, 인스턴스에서 보안 키를 삭제할 수 있습니다.

3. EC2 인스턴스에서 기존 IAM 역할 변경하기

기존 IAM 역할의 요구 사항이 변경되어, 기존 EC2 인스턴스에 부여 된 권한을 변경할 필요가 있는 경우 IAM 역할과 관련된 정책을 바꿀 수 있습니다. 새로 변경된 IAM 역할을 사용하는 다른 EC2 인스턴스의 권한도 변경됩니다.대신 replace-iam-instance-profile-association 명령을 호출하여 현재 연결되어있는 IAM 역할 “YourNewRole”다른 IAM 역할을 대체 할 수 있습니다. 아래 예제에서는 “YourCurrentAssociation-id”를 사용하여, 현재 iam-instance-profile-association 인스턴스를 나타내고, “YourReplacementRole-Instance-Profile”을 사용하여 인스턴스에 연결할 대체 인스턴스 프로파일을 나타냅니다. 이 자리 표시자를 적절한 association-id와 계정의 IAM 인스턴스 프로필 이름을 변경하십시오.

$aws ec2 replace-iam-instance-profile-association --association-id YourCurrentAssociation-id --iam-instance-profile Name=YourReplacementRole-Instance-Profile 

참고 : YourCurrentAssociation-id는 describe-iam-instance-profile-associations를 호출하여 얻을 수 있습니다.

이 글에서는 EC2 인스턴스를 다시 시작하지 않고, 기존 EC2 인스턴스에 IAM 역할을 추가 혹은 변경하여 애플리케이션이 AWS에서 제공하는 임시 보안 자격 증명을 사용할 수 있습니다. 중요한 애플리케이션 중단 없이 EC2 인스턴스에 연결된 IAM 역할을 대체 할 수 있습니다.

이 게시물에 대한 의견이나 질문이나 제안이 있으시면, IAM 포럼에서 의견 주시기 바랍니다.

– Apurv;

이 글은 New! Attach an AWS IAM Role to an Existing Amazon EC2 Instance by Using the AWS CLI의 한국어 번역입니다.

Elastic Network Adapter를 활용한 고성능 네트워크 구성하기

많은 고객 분들은 네트워크 성능을 최대한 활용하기를 원합니다. Amazon EC2는 다양하고 새로운 인스턴스 타입을 지속적으로 추가하고 있습니다. AWS는 CC1 instance를 시작으로 10Gbps 네트워크를 채택하고 Enhanced Networking 기능을 소개했습니다. Enhanced Networking은 Intel 82599 VF Interface와 SR-IOV 기술을 활용합니다. I/O 성능은 높이고, CPU자원 소모는 줄일 수 있습니다. 더 넓은 네트워크 대역폭을 지원하며, PPS(Packet per second) 성능이 뛰어나고 인스턴스간의 통신 시 Latency도 낮습니다.

최근 고객 분들의 여러 의견을 듣고 새로운 기술을 활용해 Elastic Network Adapter(ENA)를 채택한 새로운 인스턴스 타입들을 추가했습니다. vCPU가 점점 많아지면서 vCPU의 리소스를 보다 효과적으로 분산하여 사용하여 성능을 높일 수 있는 기술입니다. ENA를 활용하기 위해서는 몇가지 설정이 필요합니다. 쉽게 설정 하실 수 있도록 구성하는 방법을 소개해 드립니다.

Elastic Network Adapter(ENA)를 지원하는 EC2 인스턴스
2016년 12월 현재 ENA는 최대 20Gbps 네트워크 성능을 지원하며, P2, R4, X1, 그리고 m4.16xlarge에서 ENA를 지원하고 있습니다. 또한 최신 Amazon Linux HVM AMI(Amazon Machine Image)는 기본적으로 ENA를 사용할 수 있도록 구성되어 있습니다.

Elastic Network Adapter(ENA) 활성화 하기
Amazon Linux의 이전 버젼 또는 다른 Linux 배포판의 경우 ENA를 사용하기 위해서는 아래와 같이 설정이 필요합니다. 이 블로그에서는 RedHat Enterprise Linux Server 7.3 AMI를 를 사용해 x1.16xlarge 인스턴스를 구동했습니다. Public IP와 Key file을 이용하여 인스턴스에 SSH 접속합니다.

$ ssh -i {$key_file} ec2-user@54.161.110.6
[ec2-user@ip-10-10-10-10 ~]$
[ec2-user@ip-10-10-10-10 ~]$ uname -na
Linux ip-10-10-10-10.localdomain 3.10.0-514.el7.x86_64 #1 SMP Wed Oct 19 11:24:13 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux
[ec2-user@ip-10-10-10-10 ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.3 (Maipo)
launching_x1_instance

X1 인스턴스 구동

1. ENA 드라이버 확인하기
아래 명령으로 현재 ENA 드라이버가 설정되어 있는지 확인합니다. Vif라고 이름이 나온다면 현재는 기본 Driver로 ENA를 사용할 수 없는 상태입니다.

[ec2-user@ip-10-10-10-10 ~]$ ethtool -i eth0
driver: vif
version:
firmware-version:
expansion-rom-version:
bus-info: vif-0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

2. Linux 최신 업데이트 하기
아래 명령으로 Linux의 설치된 패키지들을 최신으로 업데이트합니다. 업데이트 완료 후 intstance를 reboot 합니다.

[ec2-user@ip-10-10-10-10 ~]$ sudo yum update -y
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
Resolving Dependencies
--> Running transaction check
---> Package NetworkManager.x86_64 1:1.4.0-12.el7 will be updated
---> Package NetworkManager.x86_64 1:1.4.0-13.el7_3 will be an update
---> Package NetworkManager-config-server.x86_64 1:1.4.0-12.el7 will be updated
---> Package NetworkManager-config-server.x86_64 1:1.4.0-13.el7_3 will be an update
---> Package NetworkManager-libnm.x86_64 1:1.4.0-12.el7 will be updated
---> Package NetworkManager-libnm.x86_64 1:1.4.0-13.el7_3 will be an update
---> Package NetworkManager-team.x86_64 1:1.4.0-12.el7 will be updated
---> Package NetworkManager-team.x86_64 1:1.4.0-13.el7_3 will be an update
---> Package NetworkManager-tui.x86_64 1:1.4.0-12.el7 will be updated
---> Package NetworkManager-tui.x86_64 1:1.4.0-13.el7_3 will be an update
………

3. 드라이버 다운로드
Github 에 공개되어 있는 ENA Linux driver 를 git 툴을 통해 가져옵니다. 그리고 컴파일을 위해서 gcc와 kernel-devel 패키지를 설치합니다.

[ec2-user@ip-10-10-10-10 ~]$ git clone https://github.com/amzn/amzn-drivers
Cloning into 'amzn-drivers'...
remote: Counting objects: 57, done.
remote: Total 57 (delta 0), reused 0 (delta 0), pack-reused 57
Unpacking objects: 100% (57/57), done.

드라이버를 컴파일 하기 위해 gcc 컴파일러와 Kernel-devel 패키지를 먼저 설치합니다.

[ec2-user@ip-10-10-10-10 ena]$ sudo yum install gcc -y
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
Resolving Dependencies
--> Running transaction check
---> Package gcc.x86_64 0:4.8.5-11.el7 will be installed
--> Processing Dependency: cpp = 4.8.5-11.el7 for package: gcc-4.8.5-11.el7.x86_64
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.8.5-11.el7.x86_64
--> Processing Dependency: libmpc.so.3()(64bit) for package: gcc-4.8.5-11.el7.x86_64
--> Processing Dependency: libmpfr.so.4()(64bit) for package: gcc-4.8.5-11.el7.x86_64
….
[ec2-user@ip-10-10-10-10 ena]$ sudo yum install kernel-devel -y
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
Resolving Dependencies
--> Running transaction check
---> Package kernel-devel.x86_64 0:3.10.0-514.2.2.el7 will be installed
--> Finished Dependency Resolution

4. 드라이버 컴파일
드라이버 소스 코드가 있는 디렉토리로 이동합니다. 그리고 make명령을 통해서 driver를 compile합니다.

[ec2-user@ip-10-10-10-10 ena]$ make
make -C /lib/modules/3.10.0-514.2.2.el7.x86_64/build M=/home/ec2-user/amzn-drivers/kernel/linux/ena modules
make[1]: Entering directory `/usr/src/kernels/3.10.0-514.2.2.el7.x86_64'
CC [M]  /home/ec2-user/amzn-drivers/kernel/linux/ena/ena_netdev.o
CC [M]  /home/ec2-user/amzn-drivers/kernel/linux/ena/ena_ethtool.o
CC [M]  /home/ec2-user/amzn-drivers/kernel/linux/ena/../common/ena_com//ena_com.o
CC [M]  /home/ec2-user/amzn-drivers/kernel/linux/ena/../common/ena_com//ena_eth_com.o
CC [M]  /home/ec2-user/amzn-drivers/kernel/linux/ena/ena_sysfs.o
LD [M]  /home/ec2-user/amzn-drivers/kernel/linux/ena/ena.o
Building modules, stage 2.
MODPOST 1 modules
CC      /home/ec2-user/amzn-drivers/kernel/linux/ena/ena.mod.o
LD [M]  /home/ec2-user/amzn-drivers/kernel/linux/ena/ena.ko
make[1]: Leaving directory `/usr/src/kernels/3.10.0-514.2.2.el7.x86_64'

컴파일이 완료되면 ena.ko 드라이버 파일이 생성됩니다. Modinfo 명령으로 드라이버를 확인합니다.

[ec2-user@ip-10-10-10-10 ena]$ modinfo ena.ko
filename:       /home/ec2-user/amzn-drivers/kernel/linux/ena/ena.ko
version:        1.1.2
license:        GPL
description:    Elastic Network Adapter (ENA)
author:         Amazon.com, Inc. or its affiliates
rhelversion:    7.3
srcversion:     25093B15753CC7D0357E01C
alias:          pci:v00001D0Fd0000EC21sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd0000EC20sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd00001EC2sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd00000EC2sv*sd*bc*sc*i*
depends:
vermagic:       3.10.0-514.2.2.el7.x86_64 SMP mod_unload modversions
parm:           debug:Debug level (0=none,...,16=all) (int)

5. 드라이버 설치 및 로드 설정
현재 makefile에서는 make install은 구성되어 있지 않습니다. README파일을 참조하여 아래와 같이 부팅 시 드라이버가 로드될 수 있도록 설정하고 드라이버를 리눅스의 드라이버 모듈 디렉토리 밑으로 복사합니다.

      1. sudo vi /etc/modules-load.d/ena.conf 로 ena.conf생성
      2. ena.conf 파일에 ena 입력 후 저장
      3. sudo cp ena.ko /lib/modules/`uname -r`/ 로 드라이버 복사
      4. sudo depmod 드라이버 디펜던시 체크
      5. reboot OS

6. 인스턴스 enaSupport 설정 활성화
인스턴스의 enaSupport 설정값을 변경하기 위해서는 먼저 인스턴스를 Stop합니다. Stop이 완료 된 후에, 아래와 같은 명령으로 enaSupport를 활성화합니다.

$ aws ec2 modify-instance-attribute --instance-id instance_id --ena-support

7. 인스턴스 Start
이제 인스턴스를 다시 시작하면 ENA가 활성화되어 사용할 수 있습니다. 아래 명령으로 직접 확인할 수 있습니다.

[ec2-user@ip-10-10-10-10 ~]$ ethtool -i eth0 
driver: ena 
version: 1.1.2 
firmware-version: 
expansion-rom-version: 
bus-info: 0000:00:03.0 
supports-statistics: yes 
supports-test: no 
supports-eeprom-access: no 
supports-register-dump: no 
supports-priv-flags: no

본 글은 아마존웹서비스 코리아의 솔루션즈 아키텍트가 국내 고객을 위해 전해 드리는 AWS 활용 기술 팁을 보내드리는 코너로서, 이번 글은 김일호 솔루션즈 아키텍트께서 작성해주셨습니다.
andy_kim_photo

AWS IPv6 업데이트 – 서울 리전 포함 글로벌 및 지원 서비스 확대

AWS는 이미 Elastic Load Balancing, AWS IoT, AWS Direct Connect, Amazon Route 53, Amazon CloudFront, AWS WAF, S3 Transfer Acceleration 기능을 시작으로 지난 몇 년 동안 여러 가지 AWS 여러 부분에 IPv6 지원을 추가하기 위해 노력해 왔습니다. 지난 달 (오하이오 리전을 시작으로) VPC 기반 EC2 인스턴스의 IPv6 지원을 시작하였습니다.

오늘 부터 VPC에서 EC2 인스턴스에 대한 IPv6 지원은 총 15 개 리전에서 사용 가능하며, 9 개 리전에서 IPv6에 대한 Application Load Balancer 지원이 제공됩니다.

이제 IPv6 주소를 사용하여 서버, 개체 저장소, 부하 분산 및 콘텐츠 배포 서비스와 통신 할 수 있는 응용 프로그램을 손쉽게 구축하고 배포 할 수 있습니다. Apple 및 다른 모바일 기기 공급 업체의 IPv6 지원에 대한 최신 지침에 따라 모바일 응용 프로그램은 AWS와 통신 할 때 IPv6 주소를 사용할 수 있습니다.

총 15개 리전에서 IPv6 지원 시작
기존 및 신규 VPC에서 EC2 인스턴스에 대한 IPv6 지원은 현재 미국 동부 (버지니아 북부), 미국 동부 (오하이오), 미국 서부 (캘리포니아 북부), 미국 서부 (오레곤), 남아메리카 (상파울루), 캐나다 아시아 태평양 (서울), 아시아 태평양 (시드니), 아시아 태평양 (뭄바이), AWS (아시아 태평양 지역), 아시아 태평양 지역 GovCloud (미국) 리전에서 사용 가능합니다.

새 VPC를 만들 때 AWS 관리 콘솔에서 IPv6을 활성화 할 수 있습니다.

Application Load Balancer 지원
미국 북동부 (버지니아 북부), 미국 서부 (캘리포니아 북부), 미국 서부 (오레곤), 남아메리카 (상파울루), EU (아일랜드), 아시아 태평양 (도쿄), 아시아 태평양 (싱가포르), 아시아 태평양 (Sydney) 및 AWS GovCloud (US) 리전은 IPv6를 듀얼 스택 모드로 지원하므로 IPv4 또는 IPv6을 통해 접근 할 수 있습니다 (몇 주 이내에 나머지 리전에 대한 지원이 추가 될 예정입니다).

ALB를 구성 할 때 dualstack 옵션을 활성화 한 다음 보안 그룹이 요구 사항에 따라 IPv6 트래픽을 허용하거나 거부하는지 확인하십시오. 듀얼 스택 옵션을 선택하는 방법은 다음과 같습니다.

set-ip-address-type 명령을 실행하거나 SetIpAddressType 함수를 호출하여 옵션을 활성화 할 수도 있습니다. 이 새로운 기능에 대한 자세한 내용은 Load Balancer Address Type 설명서를 참조하십시오.

AWS IPv6 지원 현황 요약
VPC에서 EC2 인스턴스에 대한 IPv6 지원 시작에 앞서 이미 다양한 IPv6 지원을 제공하고 있으며, 상세 내용은 다음과 같습니다.

  • Amazon CloudFront, WAF 및 S3 Transfer Acceleration -개별 CloudFront 배포 지점에 IPv6 지원을 사용할 수 있습니다. 새로 생성 된 배포 지점은 기본적으로 IPv6을 지원하며, 기존 배포판은 업그레이드 할 수 있습니다 (Route 53 별칭 레코드를 사용하는 경우 도메인에 AAAA 레코드도 추가해야 합니다). IPv6 지원을 사용하면 새 주소가 CloudFront Access Logs에 표시됩니다.  AWS WAF를 사용하여 IPv4 또는 IPv6 주소를 통해 오는 요청을 검사하고, S3 Transfer Acceleration을 위한 새로운 이중 스택 엔드 포인트를 사용할 수도 있습니다.
  • Amazon Route 53 -IPv6을 통한 DNS 쿼리에 대한 지원을 추가했습니다. (필수 AAAA 레코드에 대한 지원이 이미 마련 있습니다). IPv6 엔드 포인트 상태 검사를 지원하므로 엔드 포인트의 상태를 모니터링하고 DNS 장애 조치를 조정할 수 있습니다.
  • AWS IoT -인터넷 연결 장치와 AWS IoT 간의 메시지 교환을 위한 IPv6 지원을 제공합니다.
  • Amazon S3 –  듀얼 스택 엔드 포인트를 통한 S3 버킷 접근 지원이 가능합니다.
  • Elastic Load Balancing – Elastic Load Balancer를 위해 공개라우팅 가능한 IPv6 주소를 지원합니다.
  • AWS Direct Connect – 공개 및 비공개 VIF (가상 인터페이스)에서 단일 및 이중 스택 구성을 지원합니다.

Jeff;

이 글은 AWS IPv6 Update – Global Support Spanning 15 Regions & Multiple AWS Services의 한국어 번역입니다.

EC2 Systems Manager – EC2 및 온-프레미스 서버 함께 관리하기

지난 해 EC2 Run Command 를 소개하고 EC2 인스턴스와 하이브리드 및 교차 클라우드 환경에서 원격 인스턴스 관리를 대규모로 수행하는 방법을 보여드렸습니다. 이 과정에서 리눅스 인스턴스에 대한 지원을 추가해 EC2 Run Command를 광범위하게 적용할 수 있고 매우 유용한 관리 도구로 만들었습니다.

가족이 되신 것을 환영합니다
WernerAWS re:Invent에서 EC2 System Manager를 발표했고 드디어 이것에 대해 말할 수 있게 되었습니다!

EC2 Run Command의 향상된 버전과, 여덟 개의 유용한 기능이 포함된 새로운 관리 서비스입니다. EC2 Run Command 처럼 윈도우, 리눅스를 실행하는 서비스와 인스턴스로 이루어진 교차 클라우드 환경 및 하이브리드 환경을 지원합니다. AWS Management Console을 열고 관리할 인스턴스를 선택한 다음 수행 하고싶은 작업을 정의하기만 하면 됩니다(API와 CLI에서도 접근할 수 있습니다).

다음은 개선된 기능과 새로운 기능에 대한 개요입니다:

  • Run Command – 이제 명령 실행 속도를 제어하고 에러 비율이 높아졌을 때 명령 실행을 중지할 수 있습니다.
  • State Manager – 규칙적인 간격으로 적용되는 정책을 통해 정의된 시스템 설정을 유지합니다.
  • Parameter Store – 라이센스 키, 비밀번호, 사용자 목록 및 다른 값들을 위한 (암호화 가능한)중앙 집중 저장소를 제공합니다.
  • Maintenance Window – 업데이트 설치와 기타 시스템 유지 관리를 위한 기간을 지정하세요.
  • Software Inventory – 각 인스턴스에서 자세한 소프트웨어 사항들과 사용자가 정의한 추가사항까지 포함한 설정 목록을 수집합니다.
  • AWS Config Integration – 새로운 Software Inventory 기능과 함께 AWS Config는 software inventory의 변화를 인스턴스에 기록할 수 있습니다.
  • Patch Management – 인스턴스의 패치 과정을 단순화하고 자동화합니다.
  • Automation – AMI 구축과 기타 반복적인 AMI 관련 작업을 단순화합니다.

각각을 살펴봅시다..

Run Command 개선 사항

이제 동시에 실행되는 명령의 숫자를 제어할 수 있습니다. 명령이 내부 업데이트나 서버 패치와 같이 제한적인 공유 리소스들을 참조하고, 너무 많은 리퀘스트로 인한 오버로딩을 피하고 싶은 상황에서 유용합니다.

이 기능은 현재 CLI와 API로 접근할 수 있습니다. 다음은 CLI에서 동시실행을 2로 제한하는 예제입니다:

Bash
$ aws ssm send-command \
  --instance-ids "i-023c301591e6651ea" "i-03cf0fc05ec82a30b" "i-09e4ed09e540caca0" "i-0f6d1fe27dc064099" \
  --document-name "AWS-RunShellScript" \
  --comment "Run a shell script or specify the commands to run." \
  --parameters commands="date" \
  --timeout-seconds 600 --output-s3-bucket-name "jbarr-data" \
  --region us-east-1 --max-concurrency 2

다음은 –instance-ids 대신 –targets를 지정하여 태그와 태그 값에 의해 작동하는 흥미로운 변형 예제입니다.

Bash
$ aws ssm send-command \
  --targets "Key=tag:Mode,Values=Production" ... 

최대 에러 수 또는 에러 비율을 지정하는 옵션으로 에러를 반환하면 명령 실행을 멈출 수 있습니다:

Bash
$ aws ssm send-command --max-errors 5 ... 
$ aws ssm send-command --max-errors 5% ...

State Manager

State Manager는 문서를 따라 인스턴스를 정의된 상태로 유지하도록 도와줍니다. 문서를 만들어 타겟 인스턴스 집합과 연결한 다음, 문서를 실행해야 하는 시간과 빈도를 지정하기 위한 연관성을 생성합니다. 다음은 요일 파일의 메세지를 업데이트하는 문서입니다.

그리고 연관성은 이와 같습니다(태그를 사용하기 때문에 현재 인스턴스 및 같은 방식으로 태그된 나중에 만들어질 다른 인스턴스에도 적용됩니다):

태그를 사용해서 타겟을 지정하면 미래에도 사용할 수 있으며 동적 오토 스케일 환경에서도 기대했던 대로 작동하게 합니다. 모든 연관성을 볼 수 있으며 새로운 연관성을 선택하고 Apply Association Now를 클릭해 실행할 수 있습니다.

Parameter Store

이 기능은 라이센스 키, 비밀번호 및 인스턴스에 배포하려는 기타 데이터의 저장 및 관리를 단순화합니다. 각 매개변수는 형(문자열, 문자열 리스트, 보안 문자열)이 지정되어 있고 암호화된 형태로 저장할 수 있습니다. 다음은 매개변수를 생성하는 방법입니다:

다음은 커맨드에서 매개변수를 참조하는 방법입니다:

Maintenance Window

이 기능은 업데이트 설치와 기타 시스템 유지관리를 위한 시간을 지정할 수 있게 합니다. 다음은 매 주 토요일에 4시간동안 열리는 유지 관리 기간을 생성하는 방법입니다:

창을 생성한 후에는 인스턴스 Id 또는 태그로 창에 인스턴스 집합을 할당해야 합니다:

그리고 나서 유지 관리 기간 동안 수행할 작업을 등록해야 합니다. 예를 들어 리눅스 쉘 스크립트를 실행할 수 있습니다:

Software Inventory

이 기능은 소프트웨어와 인스턴스 집합의 설정에 대한 정보를 수집합니다. 이 정보에 접근하기 위해 Managed Instance와 Setup Inventory를 클릭합니다:

인벤토리를 설정하면 AWS 소유 문서와 인스턴스 집합 간에 연관성이 생깁니다. 타겟을 선택하고 일정을 설정하고 목록화 할 항목의 유형을 확인한 다음 Setup Inventory를 클릭하기만 하세요:

인벤토리가 실행된 후에는 인스턴스를 선택하고 인벤토리를 클릭해서 결과를 관찰할 수 있습니다:

더 분석하기 위해서 결과를 필터링할 수 있습니다. 예를 들어 개발 도구와 라이브러리만 보기 위해 AWS 요소 목록을 필터링 할 수 있습니다:

모든 관리 인스턴스에서 인벤토리 기반 쿼리를 실행할 수 있습니다. 다음은 4.6 이전 버전의 .NET을 실행하고 있는 Windows Server 2012 R2 인스턴스를 찾는 방법입니다:

AWS Config Integration

인벤토리의 결과는 AWS Config까지 연결되어 어플리케이션, AWS 요소, 인스턴스 정보, 네트워크 설정, Windows 업데이트의 변화를 지속적으로 추적합니다. 인스턴스 Config 타임라인 위에 있는 Managed instance information을 클릭해 이 정보에 접근할 수 있습니다:

하단의 세줄은 인벤토리 정보로 이어집니다. 다음은 네트워크 설정입니다:

Patch Management

이 기능은 Windows 인스턴스에 있는 운영체제를 최신으로 유지하게 도와줍니다. 지정한 유지관리 기간 동안 패치를 적용하고 기준을 준수하여 수행됩니다. 기준은 분류와 심각도에 따라 패치를 자동으로 승인하는 규칙과 승인 또는 거부할 명시적인 패치 목록을 지정합니다.

다음은 저의 기준입니다:

각 기준은 하나 또는 다수의 패치 그룹에 적용될 수 있습니다. 패치그룹에 들어있는 인스턴스는 Patch Group 태그가 있습니다. 저는 그룹에 Win2016라는 이름을 붙였습니다:

그리고 값을 기준과 연결했습니다:

다음 단계에서는 AWS-ApplyPatchBaseline 문서를 사용해 유지 관리 기간동안 패치의 적용을 조정합니다:

Managed Instances 목록으로 돌아가서 한 쌍의 필터를 사용해 패치가 필요한 인스턴스를 찾을 수 있습니다:

Automation

마지막이지만 앞의 기능 못지않게 중요한 Automation 기능은 일반적인 AMI 구축과 업데이트 작업을 간소화합니다. 예를 들어 AWS-UpdateLinuxAmi 문서를 사용해 매 달마다 새 Amazon Linux AMI를 만들 수 있습니다:

다음은 이 자동화가 실행되었을 때 일어나는 일을 보여줍니다:

정식 출시
위에서 설명한 EC2 Systems Manager의 모든 기능을 지금 무료로 사용할 수 있습니다. 당신이 관리하는 리소스에 대해서만 비용을 지불합니다.

– Jeff;

이 글은 EC2 Systems Manager – Configure & Manage EC2 and On-Premises Systems의 한국어 번역으로 AWSKRUG 블로그 번역모임의 이상록님께서 작성해 주셨습니다. 만약 AWS 영문 공식 블로그를 한국어로 소개하시고 싶으신 분은 언제든지 번역 공헌을 해 주실 수 있습니다.

AWS 2016년 12월 31일 윤초 대응 방법

2016년말 새해를 맞이하기 전 1초를 추가하는 윤초가 시행됨을 잊지 마시기 바랍니다.

이번 윤초 (통산 27 번째)는 UTC(세계 표준시) 2016년 12월 31일 23:59:60으로 삽입됩니다 (한국 표준시로 2017년 1월 1일 8:59:60). 이는 지구 시간(협정 세계시)과 태양시(천문시)과의 차이를 줄이기 위해 진행되며, UTC 기준 올해 마지막 1분은 61가 됩니다.

이전에 윤초를 진행할 때 드린 정보(AWS에서 윤초 대응)은 계속 유효하며, 이번에도 마찬가지로 처리되지만 약간의 차이가 있습니다 :

AWS 조정 시간 (AWS Adjusted Time) – 윤초 삽입 전후의 24시간 동안 윤초의 1초를 조금씩 분산합니다(UTC에서 12월 31일 11:59:59부터 2017년 1월 1일 12:00:00까지). AWS 조정 시간과 세계 시간은 이 기간이 끝난 후 동기화합니다.

Microsoft Windows – Amazon에서 제공 된 Microsoft Windows AMI를 이용하고 있는 인스턴스는 AWS 조정 시간에 따릅니다.

Amazon RDS – 대부분 Amazon RDS 인스턴스(UTC로 설정되어있는 경우) “23:59:59″을 두 번 기록합니다. 그러나 Oracle 11.2.0.2, 11.2.0.3, 12.1.0.1는 AWS 조정 시간에 따릅니다. Oracle 11.2.0.4 및 12.1.0.2에 대한 자세한 정보가 필요한 경우 AWS 지원에 문의하십시오.

자세한 정보
윤초 삽입에 대한 질문이있는 경우AWS SupportEC2 Forum에 문의해 주시기 바랍니다.

Jeff;

이 글은 Look Before You Leap – December 31, 2016 Leap Second on AWS의 한국어 번역입니다.

Amazon EFS 업데이트 – Direct Connect를 통한 온-프레미스와 VPC 연동 기능

작년에 Amazon Elastic File System에 대한 출시 예고ㅇ후에 올해 초 3개 리전에 우선 정식 출시가 되었습니다. 정식 출시 후 많은 고객들이 클라우드 내 공유 파일 스토리지를 사용해 오고 있습니다

오늘 EFS를 AWS Direct Connect를 통해 온-프레미스 환경에서도 좀더 편리하게 사용할 수 있는 기능을 출시하게 되었습니다. 이 기능 역시 많은 고객들이 그동안 데이터 이전을 하는 동안 느끼고 요청해주셨던 기능입니다. 기존 온-프레미스 환경에서 데이터 이전을 위해 기존 물리 서버에서 EFS 파일 시스템을 마운트하고 데이터를 복사하면 그대로 클라우드로 이동합니다. EFS로 복사를 하고 나면, Amazon Elastic Compute Cloud (EC2) 인스턴스에서 다시 저장할 수도 있고, Amazon QuickSight를 활용할 수도 있습니다.

즉, 온-프레미스 서버와 EC2 인스턴스가 같은 스토리지 공간을 공유하게 되고 강력한 호환성 및 파일 잠금 등 모든 파일 관련 기능을 제공합니다. EFS가 제공하는 내구성 및 멀티 AZ 고가용성 역시 같이 지원합니다.

이 기능을 지금 사용 하시려면 먼저 Direct Connect 온-프레미스 데이터 센터와 Amazon Virtual Private Cloud를 서로 연결합니다. 그런 다음 Direct Connect 연결 지점에 서로 사용 가능한 서브넷을 만들어 마운트 지점을 공유하면 됩니다.

또한, 사내 구축 서버의 포트 2049 (NFS)로 인바운드 TCP 및 UDP 트래픽을 허용하려면, 마운트 대상의 보안 그룹에 규칙을 추가해야 합니다.

파일 시스템을 만든 후에는 IP 주소로 마운트 대상을 참조하고, 사내 구축 환경에서 NFS 마운트하고 파일 복사를 시작할 수 있습니다. IP 주소는 AWS 관리 콘솔 내부에서 사용할 수 있습니다.

AWS 관리 콘솔에서 단계별 가이드를 제공하고 있습니다. 자세한 사항은 On-premises mount instructions를 클릭하세요.

다음과 같이 따라가면 됩니다.

본 기능은 우선 US East (Northern Virginia), US West (Oregon), EU (Ireland), US East (Ohio) 리전에서 제공되며, 각 AWS 자원 사용료 이외에 추가 비용은 없습니다.

Jeff;

이 글은 Amazon EFS Update – On-Premises Access via Direct Connect & VPC의 한국어 번역입니다.

Amazon EC2 인스턴스 및 VPC IPv6 지원 시작

모바일 앱, 커넥티드 디바이스 및 IoT 분야에서 인터넷의 지속적인 성장으로 업계 전반에 IPv6 전환이 촉발되었습니다. 2010 년에서 부터 미국 정부 기관은 공개 서버 및 서비스를 가능한 빨리 IPv6로 옮기고 있습니다. 128 비트의 주소 공간을 갖춘 IPv6는 성장 여지가 충분하며 새로운 애플리케이션 및 연결 확장성에 큰 도움이 됩니다.

Amazon EC2 및 VPC IPv6 지원
올해 초 Amazon S3, IPv6 주소 지원 시작을 시작으로 Amazon CloudFront, Route53, WAF 및 S3 Transfer Acceleration의 IPv6 지원을 진행하였습니다. 오늘 그 다음 단계로 Virtual Private Cloud (VPC)와 VPC내 EC2 인스턴스에 대한 IPv6 지원을 시자하며, 우선 US East (Ohio) 리전부터 시작합니다.

IPv6 지원은 신규 혹은 기존 VPC에서도 가능하며 VPC-VPC간에도 콘솔 (혹은 API 및 CLI)를 통해 선택할 수 있습니다.

각 VPC은 개별적 /56 주소 영역을 Amazon GUA (Global Unicast Address)에서 얻으며, 각 VPC내 서브넷에는 /64를 할당할 수 있습니다.

Amazon S3에서 처럼 각 인스턴스에 해당 DNS 항목과 함께 IPv4 주소와 IPv6 주소를 할당하는 이중 스택 모델을 사용합니다. 두 버전의 프로토콜을 모두 지원하므로 리소스 및 응용 프로그램에 접근에 대한 호환성과 유연성이 보장됩니다.

VPC 내의 보안 그룹, 라우팅 테이블, 네트워크 ACL, VPC 피어링, 인터넷 게이트웨이, Direct Connect, VPC 흐름 로그(Flow Logs) 및 DNS 질의 등은 모두 현재와 같은 방식으로 작동합니다. 애플리케이션 로드밸런서(ALB)의 이중 스택 모델에 은 예정되어 있으며, 장기적인 로드맵을 가능한 한 빨리 알려 드리겠습니다.

AWS Direct Connect IPv6 지원
AWS Direct Connect Console내 가상 인터페이스(VIFs)에서 IPv4 및 IPv6 주소를 선택할 수 있습니다.

각 VIF는 BGP 피어링 세션을 각각 IPv4와 IPv6을 지원 합니다.

신규 Egress-Only 인터넷 게이트웨이 IPv6 지원

IPv6에 주요 특징 중 하나는 모든 주소가 인터넷 라우팅이 가능하여, 인터넷에 연결할 수 있다는 것입니다. IPv4 전용 VPC에서 공용 IP 주소를 EC2 인스턴스에 할당하면 1:1 NAT(Network Address Translation)가 인스턴스와 사설 주소로 설정됩니다. IPv6을 사용하는 VPC에서 각 인스턴스의 주소는 공개되어 있습니다. 직접 연결을 통해 많은 네트워킹 문제를 해결하지만, 사설 서브넷을 만드는 또 다른 메커니즘이 필요합니다.

오늘 IPv6 지원을 통해 VPC용 비공개 서브넷을 구현하는 데 사용할 수 있는 새로운 Egress-Only Internet Gateway (EGW)를 소개합니다. EGW는 NAT 인스턴스의 집합보다 설치 및 사용하기가 쉽고 무료로 사용할 수 있습니다. 수신 트래픽을 차단하면서 아웃 바운드 트래픽을 허용 할 수 있습니다 (인터넷 게이트웨이가 보안 그룹과 연결). 일반적인 방식으로 EGW를 생성하고, 이를 사용하여 인바운드 IPv6 트래픽을 제한할 수 있습니다. IPv4 트래픽에 NAT 인스턴스 또는 NAT 게이트웨이를 계속 사용할 수 있습니다.

정식 출시
EC2 IPv6 지원은 US East (Ohio) 리전에서 오늘 부터 추가 비용 없이 사용 가능합니다. M3, G2를 제외한 모든 현 세대 EC2 인스턴스 타입에서 사용 가능합니다.

다른 리전의 IPv6 지원 확대는 계획 중에 있으며, 준비되는 대로 계속 알려드리겠습니다.

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 New – IPv6 Support for EC2 Instances in Virtual Private Clouds의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.

개발자 미리보기 – F1, 프로그래밍 기반 하드웨어를 위한 EC2 인스턴스

일반적인 도구와 특별한 목적의 도구를 선택해야 하실 때가 있으셨나요? 일반 도구는 많은 문제들을 범용적으로 풀기에 좋지만 항상 최선의 선택은 아닙니다. 반대로 특정 목적의 도구는 하나의 업무에는 좋지만, 이런 특정 작업은 자주 있으면 안되겠지요.

컴퓨팅 엔지니어들은 다양한 IT 워크로드에 대해 높은 성등을 달성하기 위해 아키텍처를 설계 및 가이드 마련 시 항상 이러한 선택의 문제에 봉착하게 됩니다. 시간이 흐름에 따라 새로운 형태의 업무와 작업 상태가 출현하고 이는 특정 하드웨어로 처리하는게 최선일 때가 있습니다. 이러한 점은 또 다른 실행 시 균형을 요구합니다. 즉, 높은 성과를 위한 가능성에 투자하느냐 아니면 분기별 측정하는 개발 주기에 맞추느냐의 상충되는 부분을 선택해야 합니다

FPGA 소개
또 하나의 흥미로운 선택은 FPGA(field programmable gate array, 필드 프로그래머블 게이트 어레이)라고 부르는 하드웨어 기반 맞춤형 솔루션입니다. 특정 기능 목적으로 만들어 하드웨어에 장착되는 일반 칩과는 달리 FPGA는 유연합니다. 즉, FPGA는 PC 보드 소켓에 연결 한 후 현장에서 프로그램을 할 수 있습니다. FPGA는 고정된 유한 논리 게이트를 포함합니다. FPGA 프로그래밍은 단순 논리 기능 (AND, OR, XOR 등) 또는 저장 요소 (플립 플롭 및 시프트 레지스터)를 연결하는 방식입니다. 일반적으로 시리얼 (몇 개의 병렬 요소)과 고정 크기의 명령어 및 데이터 경로 (일반적으로 32 또는 64 비트)를 가진 CPU와는 달리, FPGA는 많은 연산을 병렬로 수행하도록 프로그래밍 할 수 있으며 연산 자체는 크거나 작거나 모든 영역에 적용할 수 있습니다.

계산 집약적인 문제를 처리하기 위한 맞춤 가속기를 개발하는 데 이러한 병령 모델이 이상적입니다. FPGA 프로그래밍 모델을 통해 유전학, 지진 분석, 금융 위험 분석, 대용량 데이터 검색, 암호화 알고리즘 및 애플리케이션 등에 30배 이상의 속도 향상을 제공 할 잠재력을 가지고 있습니다.

FPGA를 사용하여 여러분 만의 애플리케이션 속도 향상을 해보시길 바랍니다. 물론 몇 가지 관심을 가져야할 도전 과제가 있습니다. 첫째, FPGA는 전통적으로 사실 더 큰 목적 지향 시스템의 구성 요소였습니다. 단순히 하나를 사서 데스크톱에 연결할 수 없습니다. 대신 FPGA 기반 솔루션을 통해 하드웨어 프로토 타이핑, 하드웨어 어플라이언스 구축, 대량 생산 및 장기 판매 및 배포 주기 등을 만들 수 있습니다. 해당 적용 시간에 따라 FPGA 적용 가능성을 제한 할 수 있으며, 무어의 법칙이 CPU 기반 솔루션을 보다 비용 효율적으로 만들 시간을 제공한다는 점입니다.

여기서 좀 더 자세하 알아보겠습니다.

신규 F1 인스턴스 타입
오늘 신규 F1 인스턴스에 대한 개발자 미리보기를 시작합니다. 직접 원하는 서비스나 애플리케이션을 만들 수도 있고, 여러분이 만든 패키지를 AWS Marketplace를 통해 재판매를 할 수도 있습니다. 다양한 소프트웨어에 사용하는 비지니스 모델에 맞는 FPGA 기반 애플리케이션을 만들기 위한 기본 요구 사항을 충족함으로서 막대한 비용 및 시간 투자를 피할 수 있게 됩니다. 여러분이 직접 자신의 로직을 기반으로 클라우드 기반 도구를 만들어 시험해 봄으로서, 수일 만에 시장에 선보일 수 있게 됩니다.

F1 인스턴스는 Intel Broadwell E5 2686 v4 프로세서 (2.3 GHz 기본 속도, 전체 코어 당 2.7 GHz Turbo 모드, 하나의 코어에 3.0 GHz Turbo 모드)와 최대 976 GiB 메모리, 최대 4TB의 NVMe SSD 스토리지와 하나에서 8개까지의 FPGA를 가진 인스턴스입니다. 이를 통해 FPGA 기반 로직 구현을 충분히 해 볼 수 있는 자원을 제공 받아, 전용 하드웨어에서 운용되기에 멀티 테넌트 환경에서 분리되어 서비스 됩니다.

아래는 FPGA의 기본 스펙으로, 하나의 F1 인스턴스에서 8개까지 늘릴 수 있습니다.

  • Xilinx UltraScale+ VU9P fabricated using a 16 nm process.
  • 64 GiB ECC-protected memory on a 288-bit wide bus (four DDR4 channels).
  • Dedicated PCIe x16 interface to the CPU.
  • Approximately 2.5 million logic elements.
  • Approximately 6,800 Digital Signal Processing (DSP) engines.
  • Virtual JTAG interface for debugging.

하나 이상의 FPGA가 있는 인스턴스에서 전용 PCIe 패브릭을 사용하면 FPGA가 동일한 메모리 주소 공간을 공유하고 각 방향으로 최대 12Gbps의 PCIe 패브릭을 통해 서로 통신 할 수 있습니다. 인스턴스 내의 FPGA는 낮은 지연 속도 및 높은 대역폭 통신을 위한 400Gbps 양방향 네트워크를 공유합니다 (이러한 고급 기능을 사용하려면 자체 프로토콜을 정의해야 합니다.)

FPGA 개발 과정
개발자 미리보기에서는 FPGA 개발자를 위한 AMI를 제공합니다. 이 AMI를 메모리 또는 컴퓨팅 최적화 인스턴스에 실행하여 개발 및 실험을 해 보고 난 뒤 F1 인스턴스에서 마지막 테스트 및 디버깅을 하면 됩니다.

AMI에는 AWS 클라우드에서 사용할 수 있는 개발자 도구를 (추가 비용 없이) 포함하고 있습니다. VHDLVerilog를 통해 FPGA 코드를 작성한 후, 컴파일 및 시뮬레이션을 해볼 수 있고, Xilinx Vivado Design Suite (서드파티 시뮬레이터, 고 수준 언어별 컴파일러, 그래픽 프로그래밍 도구, FPGA 지적 재산권 정보 사용 가능) 등을 통해 검증할 수 있습니다.

아래는 간단한 8비트 카운터를 위한 Verilog 코드입니다.

module up_counter(out, enable, clk, reset);
output [7:0] out;
input enable, clk, reset;
reg [7:0] out;
always @(posedge clk)
if (reset) begin
  out <= 8'b0;
end else if (enable) begin
  out <= out + 1;
end
endmodule

C언어 문법과 유사하게 표현하는 언어들로서

이러한 언어는 C와 유사한 문법을 가지고 있는 것 같지만, 기존 코드를 가져 와서 FPGA에서 사용할 수 있도록 다시 컴파일 할 수있는 것은 아닙니다. 대신 FPGA 프로그래밍 모델에 대해 깊이 이해한 뒤 부울 대수(Boolean algebra)를 배우고, 전파 지연 및 클럭 에지와 같은 문제를 신경 써야합니다. 이를 통해 FPGA를 사용자 환경에 어떻게 사용할 수 있을까 하는 방법을 생각할 수 있습니다. 너무 간단하게 설명을 했다면, 고급 합성 도구나 FPGA를 프로그래밍을 위한 OpenCL을 사용할 수 있습니다.

인스턴스를 띄운 후, 로그인 한 뒤 패키지를 설치하고 Vivado 도구를 실행하기 위한 라이선스 매니저를 설정합니다. 데스크톱에서 RDP로 연결한 후 터미널 윈도를 열어서 Vivado를 GUI 모드로 실행합니다.

우선 샘플 프로젝트(counter.xpr)를 열어 어떻게 FPGA 프로그램을 할 수 있는 지 살펴 볼 수 있습니다.

잠시 살펴 본 후, 첫 번째 FPGA를 조합해 봅니다. (이 시점에서 흥미로운 것을 좀 더 클릭함으로서 초보자를 벗어나고 있다는 점입니다.)

여기서 부터 내가 만든 디자인 패키지를 Amazon FPGA Image (AFI)로 테스트하고, 이를 직접 애플리케이션으로 만들거나 AWS Marketplace에 올릴 수 있습니다. 이러한 일련의 개발 및 서비스 개시를 몇 주 안에 모두 할 수 있을 것이라 생각합니다.

The F1 하드웨어 개발 도구
F1 인스턴스에서 대해 공부 한 후 드는 첫번째 질문은 아마 FPGA와 CPU, 메모리 사이의 인터페이스를 어떻게 할 것인가 하는 점일 것입니다. F1 하드웨어 개발 도구 (HDK)를 통해 I/O 인터페이스와 호스트-FPGA간, FPGA-메모리간, FPGA-FPGA간 등 멀티 통신 방법을 미리 설정할 수 있는 샘플 애플리케이션을 제공합니다. 여기에는 전체 통합 스크립트, 참조 예제 및 실무 디버그 도구를 포함하고 있습니다.

The Net-Net
이제 F1 인스턴스와 클라우드 기반 개발 도구를 결합하고, FPGA 기반 애플리케이션을 판매할 수 있다는 것은 매우 독특하고 강력한 서비스 모델이 될 것 입니다. FPGA 모델의 강점과 유연성을 이제 모든 AWS 고객이 이용해 볼 수 있게 되었고, 향후 새로운 형태의 애플리케이션과 비즈니스가 출현할 것으로 전망합니다.

미리보기 출시
개발자 미리보기는 US East (Northern Virginia) 리전에서 먼저 시작합니다.(향후 2017년 초에 정식 출시될 때, 여러 리전에서 사용 가능할 것입니다.) 여러분이 이전에 FPGA 프로그래밍 경험이 있고, 지금 시작해 보시려면 미리 보기 이용 신청을 해 주시기 바랍니다.

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 Developer Preview – EC2 Instances (F1) with Programmable Hardware의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.

Amazon EC2 Elastic GPUs 계획 발표

얼마 전 16 GPU까지 지원하는 P2 인스턴스 출시 때, GPU 기반 컴퓨팅에 대한 이점에 대해 설명하였습니다. 이전 글에서 이야기했듯이 GPU를 통해 엄청난 컴퓨팅 용량을 처리하면서도 시간 대비 비용을 획기적으로 줄일 수 있습니다.

오늘 GPU 기반 기능에 대해 저희가 개발하고 있는 기능을 좀 더 발표하고자 합니다. 곧 여러분의 기존 EC2 인스턴스에 그래픽 가속 기능을 추가할 수 있게 됩니다. G2 또는 P2 인스턴스를 사용할 때 GPU 숫자에 따라 인스턴스 크기를 정하게 되어 있습니다. 대부분 애플리케이션에서는 잘 적용되지만, 특정 맞춤형 애플리케이션을 위해 유연한 성능 모델을 지원할 수 있게 됩니다.

Amazon EC2 Elastic GPUs 소개
앞으로 출시될 Amazon EC2 Elastic GPUs를 통해 여러분의 애플리케이션에 적합한 EC2 인스턴스 타입을 선택할 수 있고, 인스턴스 실행시에 아래의 4가지 타입 중 GPU를 선택하여 추가할 수 있습니다.

이름 GPU 메모리
eg1.medium 1 GiB
eg1.large 2 GiB
eg1.xlarge 4 GiB
eg1.2xlarge 8 GiB

Elastic GPU는 M4, C4, X1 인스턴스에 추가할 수 있습니다. 새 인스턴스를 시작할 때 새로 만든 EBS 볼륨을 설정할 수 있습니다. 인스턴스 실행 중에 원하는 크기를 지정하고, 변경을 위해 실행 중인 인스턴스를 중지, 수정 및 시작하는 옵션을 사용하여 Elastic GPU와 비슷한 작업을 수행 할 수 있습니다.

OpenGL 시작해보기
Amazon 최적화 OpenGL 라이브러리를 통해 Elastic GPU를 자동으로 탐지하고 사용할 수 있습니다. Open GL 윈도우 지원, Amazon Linux AMI 지원을 제공 한 후, 다른 OpenGL 버전 역시 지원할 예정입니다. DirectXVulkan 같은 다른 3D API 역시 지원을 검토하고 있습니다. (관심 있는 분들 많이 알려주세요.) Amazon 최적화 OpenGL 라이브러리는 기존 Microsoft Windows AMI에 지원할 예정입니다.

OpenGL은 그래픽 렌더링에는 최고이지만, 어떻게 렌더링되었는지 알 수 있으려면 NICE Desktop 클라우드 가상화 같은 도구를 쓰는 것이 좋습니다.(올해 초 Amazon Web Services to Acquire NICE 소식 참고). 이를 통해 렌더링된 콘텐트를 HTML5 호환 웹 브라우저나 디바이스에서 스트리밍으로 볼 수 있습니다. 최신 버전의 Firefox나 Chrome 브라우저, 그리고 다양한 모바일 기기에서도 사용 가능합니다.

이러한 클라우드 기반 하드웨어와 소프트웨어를 조합하여 모든 3D 시각화 및 기술적 컴퓨팅 애플리케이션에 맞는 도구가 될 것으로 기대합니다. 이미 이를 직접 사용해 본 AWS 고객 중 아래와 같은 피드백을 공유해 주셨습니다.

Ray Milhem (VP of Enterprise Solutions & Cloud, ANSYS)

ANSYS Enterprise Cloud는 AWS에 최적화된 가상 데이터센터 시뮬레이션을 제공하고 있습니다. 혁신적인 제품 디자인 기능을 고객에게 주기 위해서는 시뮬레이션 과정에서 처음부터 끝까지 풍부한 인터랙티브 그래픽 경험을 제공해야 합니다. Elastic GPU를 통해 ANSYS는 좀 더 쉽게 합리적인 가격과 성능을 기반으로 고객의 요구를 충족시킬 수 있었습니다. Elastic GPU 기반 ANSYS 애플리케이션 인증을 통해 고객 들이 혁신적이고 효과적으로 클라우드를 활용할 수 있도록 도울 것입니다.

Bob Haubrock (VP of NX Product Management, Siemens PLM)

Elastic GPU는 클라우드 기반 Computer Aided Design (CAD)의 게임을 바꾸고 있습니다. Elastic GPU를 통해 우리 고객은 Siemens PLM NX를 Amazon EC2 위해서 최고의 그래픽 성능과 AWS가 제공하는 유연성, 보안 및 글로벌 서비스를 함께 얻을 수 있게 되었습니다. Siemens PLM은 EC2 Elastic GPU 기반 NX를 인증하여 고객이 디자인과 기술 혁신을 이룰 수 있도록 할 것입니다.

신규 인증 프로그램
Elastic GPU와 GPU 기반 기능을 최대로 활용하는 소프트웨어를 만드는 개발자와 소프트웨어 개발사를 위한 AWS Graphics Certification Program을 오늘 공개합니다. 이 프로그램을 통해 GPU 기반 인스턴스를 통해 다양한 애플리케이션을 개발 및 테스트 할 수 있도록 크레딧과 개발 도구를 제공할 예정입니다.

잠시만 기다려주세요!
본 소식에 대한 추가 정보는 앞으로 블로그를 통해 곧 알려드리도록 하겠습니다!

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 In the Works – Amazon EC2 Elastic GPUs의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.

EC2 인스턴스 업데이트 – T2, R4, F1, Elastic GPU, I3, C5 등

오늘 오전에 AWS의 CEO인 re:Invent 기조 연설에서 Andy Jassy는 EC2 인스턴스 로드맵에 대한 다음 업데이트를 발표했습니다. 우리는 고성능 I/O, 컴퓨팅 및 메모리 최적화 인스턴스, 버스팅 가능 T2 인스턴스 범위 확대, FPGA 기반 컴퓨팅을 포함한 새로운 하드웨어 가속 영역에 대한 인스턴스 지원을 소개하였습니다. 이 블로그 게시물에는 오늘 공지 사항과 추가 정보가 포함 된 몇 가지 다른 게시물에 대한 링크를 요약하였습니다.

새로운 인스턴스를 위한 계획을 할 때, 저희는 고객이 직면 한 과제와 향후 EC2에서 실행할 작업들을 더 많이 이해하고자 많은 시간을 고객과 논의하였습니다. 다양한 피드백을 받았지만, 그중에서도 인 메모리 기반 분석, 멀티미디어 처리, 기계 학습 (최신 AVX-512 지침 지원) 및 대규모 스토리지 집약적 ERP(Enterprise Resource Planning) 애플리케이션 등이 자주 언급되었습니다.

신규 F1 인스턴스– F1 인스턴스를 사용하면 FPGA(Field-Programmable Gate Array)로 알려진 기법을 통해 하드웨어를 프로그래밍 가능하도록 할 수 있습니다. FPGA에서 실행되는 코드를 작성하여, 다양한 유형의 특정 작업, 즉 유전학 분석, 지진 분석, 금융 위험 분석, 대용량 데이터 검색 및 암호화 알고리즘을 최대 30배까지 가속화 할 수 있습니다. 오늘 F1 인스턴스와 하드웨어 개발 킷(Hardware Development Kit)에 대한 개발자 미리보기를 시작했으며, FPGA 기반 애플리케이션 및 서비스를 구축하고  AWS Marketplace에서 이를 판매 할 수 있습니다. 자세한 내용은 개발자 미리보기 – F1, 프로그래밍 기반 하드웨어를 위한 EC2 인스턴스를 참고하십시오.

신규 R4 인스턴스– R4 인스턴스는 메모리 집약형 비즈니스 인텔리전스, 메모리 내 캐싱 및 데이터베이스 애플리케이션을 위해 설계되었으며 최대 488 GiB 메모리를 지원합니다. R4 인스턴스는 기존 R3 인스턴스 보다 큰 L3 캐시와 더 높은 메모리 속도를 제공합니다. 네트워크 측면에서 R4 인스턴스는 배치 그룹 내에서 사용될 때 최대 20Gbps의 ENA 전원 네트워크 대역폭과 EBS 전용 처리량 12Gbps를 지원합니다. 인스턴스는 최대 64 개의 vCPU 및 488GB의 메모리가 포함 된 6 가지 크기로 제공됩니다. 자세한 내용은 차세대 (R4) 메모리 최적화 신규 EC2 인스턴스 출시를 참고하십시오.

T2 인스턴스 크기 확대– T2 인스턴스는 전체 CPU를 사용할 필요가 없는 작업 부하에 대해 뛰어난 성능을 제공합니다. 고객은 애플리케이션 서버, 웹 서버, 개발 환경, 지속적 통합 서버 및 소규모 데이터베이스와 같은 범용 작업 부하에 많이 사용합니다. 오늘 좀 더 많은 선택을 위해 t2.xlarge(16 GiB 메모리)와 t2.2xlarge(32 GiB 메모리)를 추가합니다. 기존 T2 인스턴스와 마찬가지로 신규 인스턴스 타입은 더 많은 컴퓨팅 성능이 필요할 때, 전체 코어로 버스팅 할 수 있을 뿐 아니라 기본 성능 (기본 인스턴스의 최대 4 배)을 충분히 제공합니다. 자세한 내용은 신규 T2.Xlarge 및 T2.2Xlarge 인스턴스출시를 참고하시기 바랍니다.

또한, 아래의 신규 인스턴스 타입도 새롭게 추가됩니다.

신규 Elastic GPU–  기존 EC2 인스턴스 타입에 원할 때 고성능 그래픽 가속 기능을 추가할 수 있게 됩니다. GPU 메모리와 일치하는 컴퓨팅 성능을 1 GiB에서 8 GiB 중에서 선택할 수 있습니다. Amazon에서 최적화 된 OpenGL 라이브러리 역시 자동으로 Elastic GPU를 감지하여 사용할 수 있습니다. 신규 EC2 기능을 AWS 그래픽 인증 프로그램과 함께 미리보기로 제공합니다. 자세한 내용은 Amazon EC2 Elastic GPUs 계획 발표를 참고하시기 바랍니다.

신규 I3 인스턴스– I3 인스턴스에는 빠르고 대기 시간이 짧은 비 휘발성 메모리 익스프레스(NVMe) 기반 솔리드 스테이트 드라이브(SSD)가 장착됩니다. 최대 4GB의 블록 크기와 최대 초당 16GB의 디스크 처리량에서 최대 330만 개의 임의적인 IOPS를 제공합니다. 이러한 인스턴스는 I/O 집약적 관계형 데이터베이스나 NoSQL, 트랜잭션 및 분석 워크로드에서 사용 가능합니다. I3 인스턴스는 최대 64개의 vCPU, 488 GiB의 메모리, 15.2TB의 스토리지(ERP 애플리케이션에 이상적임) 등 6 가지 사이즈로 제공됩니다. 저장된 모든 데이터는 암호화 된 상태로 유지되며, 새로운 EC2 고성능 네트워크 인터페이스(ENA)를 지원합니다.

신규 C5 인스턴스– C5 인스턴스는 인텔의 새로운 Xeon “Skylake” 프로세서가 장착되어, 다른 EC2 인스턴스 프로세서 보다 빠르게 실행됩니다. Broadwell의 후계자 인 Skylake는 컴퓨터 학습, 멀티 미디어, 과학 및 금융 서비스 운영을 위해 높은 부동 소수점 계산을 위한 지원을 제공하는 AVX-512를 지원합니다. 인스턴스는 최대 72 개의 vCPU와 144GB의 메모리가 포함 된 6 가지 사이즈로 제공됩니다. 네트워크 측면에서, ENA를 지원하고 기본적으로 EBS 최적화를 지원하게 될 것입니다.

이들 인스턴스가 사용 가능해지면, 각 인스턴스에 대한 자세한 정보를 계속 공유 할 예정이므로 본 블로그를 지켜봐 주시기 바랍니다.

Jeff;

이 글은 AWS re:Invent 2016 신규 출시 소식으로 EC2 Instance Type Update – T2, R4, F1, Elastic GPUs, I3, C5의 한국어 번역입니다. re:Invent 출시 소식에 대한 자세한 정보는 12월 온라인 세미나를 참고하시기 바랍니다.