BLOG

Amazon Corretto Crypto Provider(ACCP)를 소개합니다
작성일: 2019년 8월 21일

2018년 10월, AWS는 OpenJDK(Open Java Development Kit)의 오픈 소스, 무료, 다중 플랫폼, 프로덕션용 배포판인 Amazon Corretto를 출시했습니다. 출시 당시 AWS는 몇 가지 성능 개선을 비롯해 고품질의 장기 지원이 가능한 배포판을 제공하는 것에 중점을 두었었습니다. 그 일환으로 오늘은 Amazon Corretto의 암호화 성능이 개선된 Amazon Corretto Crypto Provider (ACCP) 를 소개해 드리겠습니다.

 

역사적으로 Java 암호화는 느리고 CPU 집약적이었습니다. 아마존은 세계 최대의 Java 서비스를 운영하기 때문에 AWS뿐만 아니라 AWS의 모든 고객에게도 영향을 미칩니다. 수년간의 프로덕션 사용에서 Java의 암호화 작업으로 인해 상당한 CPU 사용량, 처리량 병목 현상 및 운영 비용이 발생하는 것으로 나타났습니다. 이러한 문제를 해결하기 위해 AWS는 2017년부터 ACCP를 개발한 다음 구현, 디버깅 및 가장 중요한 프로덕션 환경에서 성능을 조정해 왔습니다. 그 결과 수십 개의 암호화 알고리즘을 업데이트하여 다양한 암호화 워크로드를 가속할 수 있었습니다.

 

ACCP를 사용하면 JDK 8 및 11에서 프로덕션 환경에 즉시 사용할 수 있는 또 다른 지원 배포판을 도입할 예정입니다. 성능 향상은 알고리즘과 워크로드에 따라 다르지만, 벤치마킹 및 실시간 프로덕션 사용 시 일반적으로 25%를 초과하는 서비스 처리량 개선을 볼 수 있습니다.  일반적으로 느린 알고리즘과 더 큰 데이터 세트는 ACCP의 이점을 최대한 활용할 수 있습니다. 하나의 예로 ACCP가있는 AES-GCM 알고리즘은 ACCP가없는 AES-GCM보다 28배 이상 빠릅니다.

 

 

ACCP는 정확히 무엇이죠?

 

ACCP는 표준 JCA(Java Cryptography Architecture) 인터페이스를 구현하고, 기본 Java 암호화 구현을 OpenSSL 프로젝트libcrypto가 제공한 구현으로 대체합니다. ACCP를 사용하면 아래 예와 같이 어셈블리 수준 및 CPU 수준 성능 조정을 최대한 활용하여 여러 서비스 및 제품에서 상당한 비용 절감, 대기 시간 단축 및 높은 처리량과 같은 이점을 누릴 수 있습니다.

 

 

성능에 있어 ACCP를 통해 어떠한 개선을 기대해 볼 수 있죠?

 

AWS Snowball은 ACCP를 사용해 암호화 기능을 약 20배 더 빠르게 실행하므로 데이터 전송 속도 또한 두 배로 빨라집니다. Amazon S3 및 AWS IoT는 ACCP를 사용하여 이전에는 너무 리소스 집약적이어서 제공할 수 없었던 새로운 암호화 기능을 활성화합니다.

 

호스트 수준에서 TLS를 종료하는 한 AWS 서비스는 CPU 사용률을 크게 줄였습니다. 아래 그래프에서 ACCP 배포 전후의 차이점을 확인하실 수 있습니다.

 

 

 

ACCP를 구현한 후 다른 서비스에서 최대 CPU 사용량이 ~ 66%에서 ~ 55%로 감소한 것을 확인할 수 있습니다.

 

 

해당 서비스는 fleet 비용이 40% 감소했지만 또 다른 하나는 용량이 32% 늘었습니다.

 

 

ACCP는 어떻게 사용하나요?

 

AWS는 JCP를 지원하는 모든 JDK와 호환되는 독립형 Maven 패키지로 ACCP를 출시했습니다.

Maven 구성의 예는 다음과 같습니다.

<dependency> 

<groupId>software.amazon.cryptools</groupId> 

<artifactId>AmazonCorrettoCryptoProvider</artifactId> 

<version>LATEST</version> 

<classifier>linux-x86_64</classifier>

</dependency>

 

이 코드를 초기화 코드에 추가하십시오.

com.amazon.corretto.crypto.provider.AmazonCorrettoCryptoProvider.install()

 

또는 프로그램 명령행에 다음 Java 특성을 추가하십시오.

-Djava.security.properties=/path/to/amazon-corretto-crypto-provider.security

 

코드 변경이 필요 없는 통합을 포함한 다른 통합에 대해서는 Amazon Corretto Crypto Provider 추가 정보를 참고해주시기 바랍니다.

 

 

향후 계획은 어떻게 되나요?

 

AWS는 사용자들이 패키지 설치를 건너뛴 채 바로 코드 또는 구성에서 ACCP를 활성화 할 수 있도록 ACCP를 Corretto와 통합하는 계획을 추진하고 있습니다. 이 단계가 완료되면 고객분들의 의견을 수렴해 이를 기본적인 서비스로 제공할지 말지의 여부를 결정할 예정입니다.

 

ACCP를 사용하고 개발에 참여해 보세요! Amazon Corretto Crypto Provider repo에 의견을 남겨주시면 반영하여 더 좋은 서비스로 보답하겠습니다.

 

 

 

 

원문 URL: https://aws.amazon.com/ko/blogs/opensource/introducing-amazon-corretto-crypto-provider-accp/

 

** 메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.