기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
개요
Amazon EMR 6.15.0 이상에서는 Apache Spark가 있는 Amazon EMR을 Amazon S3 Express One Zone 스토리지 클래스와 함께 사용하여 Spark 작업의 성능을 향상시킬 수 있습니다. Amazon EMR 릴리스 7.2.0 이상은 HBase, Flink 및 Hive도 지원하므로 이러한 애플리케이션을 사용하는 경우에도 S3 Express One Zone의 이점을 누릴 수 있습니다. S3 Express One Zone은 초당 수십만 개의 요청을 통해 데이터에 빈번하게 액세스하는 애플리케이션을 위한 S3 스토리지 클래스입니다. 릴리스 시점에 S3 Express One Zone은 Amazon S3에서 지연 시간이 가장 낮고 성능은 가장 뛰어난 클라우드 객체 스토리지를 제공합니다.
사전 조건
-
S3 Express One Zone 권한 - S3 Express One Zone이 S3 객체에 대해
GET
,LIST
또는PUT
과 같은 작업을 최초로 수행하면 스토리지 클래스가 사용자를 대신하여CreateSession
을 호출합니다. S3A 커넥터가CreateSession
API를 간접적으로 호출할 수 있으려면 IAM 정책에서s3express:CreateSession
권한을 허용해야 합니다. 이 권한이 있는 정책 예시는 Amazon S3 Express One Zone 시작하기 섹션을 참조하세요. -
S3A 커넥터 - Spark 클러스터를 S3 Express One Zone 스토리지 클래스를 사용하는 Amazon S3 버킷의 데이터에 액세스하도록 구성하려면 Apache Hadoop 커넥터 S3A를 사용해야 합니다. 커넥터를 사용하려면 모든 S3 URI가
s3a
체계를 사용하는지 확인해야 합니다. 그렇지 않은 경우s3
및s3n
체계에 대해 사용하는 파일 시스템 구현을 변경할 수 있습니다.
s3
체계를 변경하려면 다음 클러스터 구성을 지정하세요.
[
{
"Classification": "core-site",
"Properties": {
"fs.s3.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem",
"fs.AbstractFileSystem.s3.impl": "org.apache.hadoop.fs.s3a.S3A"
}
}
]
s3n
체계를 변경하려면 다음 클러스터 구성을 지정하세요.
[
{
"Classification": "core-site",
"Properties": {
"fs.s3n.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem",
"fs.AbstractFileSystem.s3n.impl": "org.apache.hadoop.fs.s3a.S3A"
}
}
]
Amazon S3 Express One Zone 시작하기
권한 정책 생성
Amazon S3 Express One Zone을 사용하는 클러스터를 생성하기 전에 클러스터의 Amazon EC2 인스턴스 프로파일에 연결할 IAM 정책을 생성해야 합니다. 정책에는 S3 Express One Zone 스토리지 클래스에 액세스할 수 있는 권한이 있어야 합니다. 다음 정책 예제에서는 필요한 권한을 부여하는 방법을 보여줍니다. 정책을 생성한 후에는 클러스터 생성 및 구성 섹션의 내용대로 정책을 EMR 클러스터를 생성하는 데 사용하는 인스턴스 프로파일 역할에 연결할 수 있습니다.
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Resource": "arn:aws:s3express:region-code
:account-id
:bucket/amzn-s3-demo-bucket",
"Action": [
"s3express:CreateSession"
]
}
]
}
클러스터 생성 및 구성
다음으로 S3 Express One Zone을 사용하여 Spark, HBase, Flink 또는 Hive를 실행하는 클러스터를 생성합니다. 다음 단계에서는 AWS Management Console에서 클러스터를 생성하는 방법을 개략적으로 설명합니다.
-
Amazon EMR 콘솔로 이동하고 사이드바에서 클러스터를 선택합니다. 그 다음에 클러스터 생성을 선택합니다.
-
Spark를 사용하는 경우 Amazon EMR 릴리스
emr-6.15.0
이상을 선택합니다. HBase, Flink 또는 Hive를 사용하는 경우emr-7.2.0
이상을 선택합니다. -
Spark, HBase 또는 Flink와 같이 클러스터에 포함할 애플리케이션을 선택합니다.
-
Amazon S3 Express One Zone을 활성화하기 위해 소프트웨어 설정 섹션에 다음 예시와 비슷한 구성을 입력합니다. 구성 및 권장되는 값은 이 절차 다음에 이어지는 구성 개요 섹션에서 확인할 수 있습니다.
[ { "Classification": "core-site", "Properties": { "fs.s3a.aws.credentials.provider": "software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider", "fs.s3a.change.detection.mode": "none", "fs.s3a.endpoint.region": "
aa-example-1
", "fs.s3a.select.enabled": "false" } }, { "Classification": "spark-defaults", "Properties": { "spark.sql.sources.fastS3PartitionDiscovery.enabled": "false" } } ] -
Amazon EMR용 EC2 인스턴스 프로파일 섹션에서 기존 역할을 사용하도록 선택하고 위의 권한 정책 생성 섹션에서 생성한 정책이 첨부된 역할을 사용합니다.
-
나머지 클러스터 설정을 애플리케이션에 맞게 구성한 다음 클러스터 생성을 선택합니다.
구성 개요
다음 표에는 클러스터 생성 및 구성 섹션의 내용처럼 Amazon EMR과 함께 S3 Express One Zone을 사용하는 클러스터를 설정하는 경우 지정해야 하는 구성 및 권장되는 값이 설명되어 있습니다.
S3A 구성
파라미터 | 기본값 | 제안된 값 | 설명 |
---|---|---|---|
|
지정되지 않은 경우에는 |
|
Amazon EMR 인스턴스 프로파일 역할에는 S3A 파일 시스템이 |
|
null |
버킷을 생성한 AWS 리전 입니다. |
리전 확인 로직은 S3 Express One Zone 스토리지 클래스에서는 작동하지 않습니다. |
|
|
|
Amazon S3 |
|
|
없음 |
MD5 기반의 |
Spark 구성
파라미터 | 기본값 | 제안된 값 | 설명 |
---|---|---|---|
|
|
false
|
내부 최적화는 S3 Express One Zone 스토리지 클래스에서 지원되지 않는 S3 API 파라미터를 사용합니다. |
Hive 구성
파라미터 | 기본값 | 제안된 값 | 설명 |
---|---|---|---|
|
|
false
|
내부 최적화는 S3 Express One Zone 스토리지 클래스에서 지원되지 않는 S3 API 파라미터를 사용합니다. |
고려 사항
Amazon EMR의 Apache Spark를 S3 Express One Zone 스토리지 클래스와 통합하는 경우에는 다음 사항을 고려하세요.
-
S3 Express One Zone을 Amazon EMR과 함께 사용하기 위해서는 S3A 커넥터가 있어야 합니다. S3 Express One Zone과 상호 작용하는 데 필요한 기능과 스토리지 클래스는 S3A에만 있습니다. 커넥터를 설정하는 단계는 사전 조건 섹션을 참조하세요.
-
Amazon S3 Express One Zone 스토리지 클래스는 Amazon EC2에서 실행되는 Amazon EMR 클러스터의 Spark에서만 지원됩니다.
-
Amazon S3 Express One Zone 스토리지 클래스는 SSE-S3 암호화만 지원합니다. 자세한 내용은 Amazon S3 관리형 키(SSE-S3)로 서버측 암호화를 참조하세요.
-
Amazon S3 Express One Zone 스토리지 클래스는 S3A
FileOutputCommitter
를 사용한 쓰기를 지원하지 않습니다. S3 Express One Zone 버킷에서 S3AFileOutputCommitter
를 사용하여 쓸 경우 InvalidStorageClass: The storage class you specified is not valid 오류가 발생합니다. -
Amazon S3 Express One Zone은 EMR on EC2의 Amazon EMR 릴리스 6.15.0 이상에서 지원됩니다. 또한 Amazon EMR on EKS 및 Amazon EMR Serverless의 Amazon EMR 릴리스 7.2.0 이상에서 지원됩니다.