

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon EMR에 대한 미리 쓰기 로그(WAL)
<a name="emr-hbase-wal"></a>

Amazon EMR 6.15 이상을 사용하면 Amazon EMR WAL에 Apache HBase 미리 쓰기 로그(WAL)를 쓸 수 있습니다. Amazon EMR 릴리스가 낮으면 **Amazon S3 기반 HBase** 옵션을 사용하여 클러스터를 생성할 때 WAL은 클러스터용 로컬 디스크에 저장되는 유일한 Apache HBase 구성 요소이며, 루트 디렉터리, 저장소 파일(HFiles), 테이블 메타데이터 및 데이터와 같은 다른 구성 요소를 Amazon S3에 저장할 수 있습니다.

Amazon EMR WAL을 사용하여 Amazon S3로 플러시되지 않은 데이터를 복구할 수 있습니다. HBase 클러스터를 완전히 백업하려면 Amazon EMR WAL 서비스를 사용하도록 옵트인합니다. `RegionServer`는 백그라운드 작업으로 HBase 미리 쓰기 로그(WAL)를 Amazon EMR에 대한 WAL에 씁니다.

클러스터 또는 AZ가 비정상 상태이거나 사용할 수 없는 경우 새 클러스터를 생성하고 동일한 S3 루트 디렉터리와 Amazon EMR WAL 워크스페이스를 가리킨 후 몇 분 내에 WAL에서 데이터를 자동으로 복구할 수 있습니다. 자세한 내용은 [Amazon EMR WAL에서 복원](emr-hbase-wal-restoring.md) 단원을 참조하십시오.

Amazon EMR 릴리스 7.3.0 이상부터 Amazon EMR은 각 서버에 대해 여러 EMR WAL을 생성하고 여러 HBase 리전을 하나의 Amazon EMR WAL로 그룹화합니다. 이렇게 하면 Apache HBase WAL이 향상되어 로그 사용률을 개선하고 비용을 최적화합니다. HBase `RegionServer`당 Amazon EMR WAL 인스턴스 수를 구성하려면 `hbase.wal.regiongrouping.numgroups` 파라미터를 사용합니다. 이 파라미터는 기본적으로 2로 설정됩니다. WAL 그룹에는 *메타* 및 *마스터 스토어*라는 2개의 시스템 테이블이 포함되지 않습니다. 이러한 테이블은 항상 자체 개별 WAL을 사용합니다.

Amazon EMR 7.3.0보다 낮은 릴리스를 실행하는 경우 Amazon EMR WAL의 모든 데이터가 Amazon S3로 플러시되도록 이전 HBase 클러스터의 테이블을 수동으로 비활성화하는 것이 좋습니다. 그런 다음, 이전 Amazon EMR WAL을 삭제하고 이전 클러스터를 종료한 다음, 최신 릴리스를 실행하는 새 클러스터를 설정합니다. 문제가 발생하여 이전 클러스터에서 테이블을 비활성화할 수 없는 경우 이전 클러스터를 직접 종료하고 새 클러스터에서 `emr.wal.multiplex.migrate`를 `true`로 설정할 수 있습니다. true로 설정하면 HBase는 HBase 리전 초기화 중에 이전 Amazon EMR WAL 인스턴스의 데이터를 재생하고 재생 후 이전 WAL을 삭제하려고 시도합니다. 이 재생 프로세스에서는 읽기에 대한 추가 비용이 발생합니다. 마이그레이션 후에는 클러스터를 구성하고 `emr.wal.multiplex.migrate`를 `false`로 설정하는 것이 좋습니다. 또는 파라미터를 제거하여 HBase 리전 초기화 속도를 높일 수 있습니다.

**참고**  
 Amazon EMR WAL은 HBase가 데이터를 플러시한 후 데이터를 삭제합니다. HBase가 데이터를 플러시하지 않으면 Amazon EMR WAL은 최대 30일 동안 데이터를 유지합니다. 30일 후 Amazon EMR WAL은 데이터를 자동으로 삭제합니다. Amazon EMR은 EMR 클러스터를 종료한 후 최대 30일 동안 WAL 인스턴스를 보관합니다. 그러나 30일 이내에 동일한 S3 루트 디렉터리에서 새 WAL 지원 클러스터를 시작하면 Amazon EMR은 이전 클러스터에서 WAL 인스턴스를 삭제하지 않습니다. 자세한 내용은 [Amazon EMR WAL에서 복원](emr-hbase-wal-restoring.md) 단원을 참조하십시오.

다음 섹션에서는 HBase 지원 EMR 클러스터에서 Amazon EMR WAL을 설정하고 사용하는 방법을 설명합니다.

**Topics**
+ [Amazon EMR WAL 워크스페이스](emr-hbase-wal-workspaces.md)
+ [Amazon EMR WAL에 필요한 권한](emr-hbase-wal-permissions.md)
+ [Amazon EMR WAL 활성화](emr-hbase-wal-enabling.md)
+ [Amazon EMR WAL에서 복원](emr-hbase-wal-restoring.md)
+ [Amazon EMR WAL을 사용하여 보안 구성 사용](emr-hbase-wal-security.md)
+ [를 통해 Amazon EMR WAL에 액세스 AWS PrivateLink](emr-hbase-wal-privatelink.md)
+ [Amazon EMR WAL 요금 및 지표 이해](emr-hbase-wal-metrics.md)
+ [WAL 워크스페이스 태그 지정](emr-hbase-wal-tagging.md)
+ [EMR WAL 클러스터 간 복제](emr-hbase-wal-cross-cluster.md)
+ [Amazon EMR WAL에 대한 고려 사항 및 리전](emr-hbase-wal-considerations.md)
+ [Amazon EMR WAL(EMRWAL) CLI 참조](emrwalcli-ref.md)

# Amazon EMR WAL 워크스페이스
<a name="emr-hbase-wal-workspaces"></a>

Amazon EMR WAL은 WAL 워크스페이스의 개념을 추가합니다. *WAL 워크스페이스*는 WAL의 논리적 컨테이너입니다. Amazon EMR WAL의 각 미리 쓰기 로그는 WAL 워크스페이스에 의해 캡슐화됩니다. EMR 클러스터는 클러스터 시작 시 구성한 정확히 하나의 WAL 워크스페이스 또는 워크스페이스를 지정하지 않은 경우 `defaultWALworkspace`에 WAL을 씁니다. WAL 워크스페이스는 네임스페이스와 같은 기존 HBase 용어와 관련이 없습니다.

WAL 워크스페이스를 사용하여 클러스터가 액세스해야 하는 워크스페이스만 포함하도록 Amazon EMR WAL IAM 권한 범위를 축소할 수 있습니다. 태그 기반 액세스 제어를 위해 WAL 워크스페이스에 태그를 지정할 수도 있습니다. 태그 지정에 대한 자세한 내용은 [WAL 워크스페이스 태그 지정](emr-hbase-wal-tagging.md) 섹션을 참조하세요.

![\[HBase architecture diagram showing write request flow through RegionServers, MemStore, and data storage.\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ReleaseGuide/images/wal-new.png)


# Amazon EMR WAL에 필요한 권한
<a name="emr-hbase-wal-permissions"></a>

클러스터를 Amazon EMR WAL에 연결하려면 클러스터의 인스턴스 프로파일에 특정 IAM 권한이 필요합니다.
+ Amazon EMR WAL은 [https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html](https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html) 서비스 연결 역할을 사용하여 클러스터 상태를 검색합니다. Amazon EMR은 WAL 워크스페이스를 생성할 때 이 서비스 연결 역할을 자동으로 생성합니다. 또는 Amazon EMR WAL에 대한 워크스페이스를 구성하고 서비스 연결 역할이 아직 존재하지 않을 때 HBase가 서비스 연결 역할을 생성합니다.

  클러스터에 대해 Amazon EMR WAL을 활성화하려면 먼저 AWSServiceRoleForEMRWAL 서비스 연결 역할의 자동 생성을 허용하도록 권한을 구성해야 합니다. 이 기능을 추가하는 예제 명령문과 자세한 내용은 [미리 쓰기 로깅을 위해 서비스 연결 역할 사용](https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html#using-service-linked-roles-permissions-wal)을 참조하세요.
+ Amazon EMR WAL은 HBase 미리 쓰기 로그(WAL)를 사용하기 때문에 클러스터는 HBase WAL을 사용해야 합니다. 다음은 HBase를 실행해야 하는 최소 IAM 권한입니다.다. 인스턴스 프로파일의 권한 정책에 다음을 추가합니다.

  ```
  emrwal:DeleteWal
  emrwal:CreateWal
  emrwal:CreateWorkspace
  emrwal:AppendEdit
  emrwal:ReplayEdits
  emrwal:GetCurrentWalTime
  emrwal:CompleteWalFlush
  emrwal:ListWALs
  emrwal:DescribeWAL
  emrwal:TrimWAL
  emrwal:ArchiveWAL
  emrwal:ArchiveWALCheckPoint
  ```
**참고**  
Amazon EMR WAL에 대한 권한 범위를 최소 세트로만 지정하는 경우 일부 [EMRWAL CLI](emrwalcli-ref.md) 명령에는 실행에 필요한 권한이 없습니다.

# Amazon EMR WAL 활성화
<a name="emr-hbase-wal-enabling"></a>

다음 단계를 통해 AWS Command Line Interface를 사용하여 클러스터를 생성하는 경우 Amazon EMR WAL에 쓰기를 활성화합니다.

**참고**  
이미 실행 중인 클러스터에 대해 Amazon EMR WAL을 활성화할 수 없으며, 동일한 S3 루트 디렉터리로 두 클러스터를 시작할 수 없습니다. 자세한 내용은 [Amazon EMR WAL에 대한 고려 사항 및 리전](emr-hbase-wal-considerations.md) 단원을 참조하십시오.

1. Amazon EMR WAL 지원 클러스터를 생성하려면 먼저 클러스터에서 사용할 인스턴스 프로파일에 필요한 권한을 추가해야 합니다. 자세한 내용은 [Amazon EMR WAL에 필요한 권한](emr-hbase-wal-permissions.md) 단원을 참조하십시오.

1.  AWS CLI에서 클러스터를 생성합니다. `--configurations` 옵션을 사용하여 아래 예제와 같이 `hbase.emr.wal.enabled` 속성을 지정하는 JSON 구성 객체를 제공합니다.
   + Amazon S3의 루트 디렉터리 위치 및 스토리지 모드를 지정합니다. 사용자가 지정하는 Amazon S3 위치는 EMR 클러스터와 동일한 리전에 있어야 하지만, 한 번에 하나의 활성 클러스터만 S3에서 동일한 HBase 루트 디렉터리를 사용할 수 있습니다.
   + 인스턴스 그룹 구성을 사용하여 클러스터를 생성합니다. Amazon EMR WAL을 인스턴스 플릿 구성과 함께 사용할 수 없습니다. 인스턴스 그룹을 포함하는 클러스터 생성에 대한 자세한 내용은 **Amazon EMR 관리 안내서의 [인스턴스 플릿이나 균일한 인스턴스 그룹을 사용하여 클러스터 생성](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-uniform-instance-group.html)을 참조하세요.
   + 클러스터를 생성하는 콘솔 단계와를 사용하는 자세한 `create-cluster` 예제는 [HBase를 사용하여 클러스터 생성을](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hbase-create.html) AWS CLI참조하세요.

1. 새 클러스터에 대해 WAL을 활성화하려면 `hbase.emr.wal.enabled` 속성을 `true`로 설정합니다. 다음 명령에는 예제 구성 객체가 있는 JSON 스니펫이 포함되어 있습니다.

   ```
   aws emr create-cluster --name "hbasewal" --release-label emr-6.x.y \
   --applications Name=HBase --use-default-roles --ec2-attributes KeyName=myKey \
   --instance-type m6i.xlarge --instance-count 1 --configurations hbase.json
   $cat hbase.json
   [
       {
           "Classification": "hbase-site",
           "Properties": {
               "hbase.rootdir": "s3://amzn-s3-demo-bucket/MyHBaseStore"
           }
       },
       {
           "Classification": "hbase",
           "Properties": {
               "hbase.emr.storageMode": "s3",
               "hbase.emr.wal.enabled": "true"
           }
       }
   ]
   ```

새로 생성된 클러스터에서 HBase가 온라인 상태이면 HBase는 자동으로 Amazon EMR WAL에 WAL 데이터를 쓰고 복구 목적으로 Amazon EMR WAL을 사용합니다.

**Example 1: Amazon EMR WAL을 사용하는 EMR 클러스터 생성**  

```
[
    {
        "Classification": "hbase-site",
        "Properties": {
            "hbase.rootdir": "s3://amzn-s3-demo-bucket/MyHBaseStore"
        }
    },
    {
        "Classification": "hbase",
        "Properties": {
            "hbase.emr.storageMode": "s3",
            "hbase.emr.wal.enabled": "true"
        }
    }
]
```

**Example 2: 사용자 지정 WAL 워크스페이스를 사용하여 EMR 클러스터 생성**  

```
[
    {
        "Classification": "hbase-site",
        "Properties": {
            "hbase.rootdir": "s3://amzn-s3-demo-bucket/MyHBaseStore",
            "emr.wal.workspace": "customWorkspaceName"
        }
    },
    {
        "Classification": "hbase",
        "Properties": {
            "hbase.emr.storageMode": "s3",
            "hbase.emr.wal.enabled": "true"
        }
    }
]
```

# Amazon EMR WAL에서 복원
<a name="emr-hbase-wal-restoring"></a>

원래 클러스터의 Amazon EMR WAL은 30일 동안 보존되므로 해당 30일 기간에 새로 생성된 클러스터에 대해 WAL을 복원하고 재사용할 수 있습니다. 동일한 S3 루트 디렉터리에서 새 클러스터를 시작하면 Amazon EMR은 이전 클러스터에서 WAL 인스턴스를 유지합니다. 이 새 클러스터를 종료하면 종료 시점부터 30일 클럭이 재시작됩니다.

다음 절차를 사용하여 새 클러스터로 기존 WAL을 복원합니다. 이 프로세스는 Amazon EMR WAL이 활성화된 상태에서 원래 클러스터를 생성했다고 가정합니다.

1. WAL 지원 클러스터를 생성한 후 30일 이내에 원래 클러스터 AWS 리전 와 동일한에 새 클러스터를 생성합니다. 새 클러스터는 원래 클러스터가 생성된 동일한 리전 내 동일한 AZ 또는 다른 AZ에 있을 수 있습니다.

   Amazon S3에서 스토리지 모드 및 루트 디렉터리 위치를 지정하도록 객체 속성을 구성합니다. 사용자가 지정하는 Amazon S3 위치는 EMR 클러스터와 동일한 리전에 있어야 하지만, 한 번에 하나의 활성 클러스터만 S3에서 동일한 HBase 루트 디렉터리를 사용할 수 있습니다.

   클러스터를 생성하는 콘솔 단계와를 사용하는 자세한 `create-cluster` 예제는 [HBase를 사용하여 클러스터 생성을](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hbase-create.html) AWS CLI참조하세요.

1. 새 클러스터에 대해 기존 Amazon EMR WAL을 사용하려면 `hbase.emr.wal.enabled` 속성을 `true`로 설정합니다. 다음 JSON 스니펫은 예제 구성 객체를 보여줍니다.

```
[
    {
        "Classification": "hbase-site",
        "Properties": {
            "hbase.rootdir": "s3://amzn-s3-demo-bucket/MyHBaseStore"
        }
    },
    {
        "Classification": "hbase",
        "Properties": {
            "hbase.emr.storageMode": "s3",
            "hbase.emr.wal.enabled": "true"
        }
    }
]
```

# Amazon EMR WAL을 사용하여 보안 구성 사용
<a name="emr-hbase-wal-security"></a>

Amazon EMR은 클러스터와 Amazon EMR WAL 서비스 간에 전송 중 데이터와 Amazon EMR WAL의 저장 데이터를 모두 자동으로 암호화합니다. 자세한 내용은 [Amazon EMR WAL에 대한 저장 데이터 암호화](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-encryption-options.html#emr-encryption-WAL)를 참조하세요. 보안 구성을 사용하여 AWS Key Management Service (KMS) 서비스에서 자체 키를 가져오고 Amazon EMR WAL에 저장하는 데이터를 암호화할 수도 있습니다.

클러스터를 생성하는 경우 다음 방법 중 하나를 사용하여 보안 구성을 선택합니다.

------
#### [ Console ]

의 **보안 구성 및 EC2 키 페어에서 구성을** AWS Management Console지정합니다.

![\[Security configuration section with search bar, refresh button, and options to browse or create configuration.\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ReleaseGuide/images/wal-configure-security.png)


------
#### [ CLI ]

create[-cluster](https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html) 명령을 사용할 때에서 `--security-configuration` 파라미터를 AWS CLI설정합니다.

------

자세한 내용은 **Amazon EMR 관리 안내서의 [Amazon EMR WAL에 대한 저장 데이터 암호화](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-encryption-options.html#emr-encryption-WAL) 및 [보안 구성을 사용하여 클러스터 보안 설정](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html)을 참조하세요.

WAL에 대한 자세한 보안 관련 정보는 [미리 쓰기 로깅을 위해 서비스 연결 역할 사용](https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html)을 참조하세요.

# 를 통해 Amazon EMR WAL에 액세스 AWS PrivateLink
<a name="emr-hbase-wal-privatelink"></a>

 AWS 네트워크 내에서 연결을 유지하려면 Amazon EMR WAL에서 AWS PrivateLink 지원을 제공합니다. 설정하려면 AWS Management Console 또는 AWS Command Line Interface (AWS CLI)를 AWS PrivateLink사용하여 Amazon EMR WAL에 연결하는 인터페이스 VPC 엔드포인트를 생성합니다. 자세한 내용은 *AWS PrivateLink 가이드*의 [인터페이스 VPC 엔드포인트를 사용하여 AWS 서비스 액세스를](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) 참조하세요.

기본 단계는 다음과 같습니다.

1. Amazon VPC 콘솔을 사용하여 [VPC 엔드포인트를 생성](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)합니다. **엔드포인트**를 선택한 다음, **엔드포인트 생성**을 선택합니다.

1. 서비스 카테고리를 **AWS 서비스**로 유지합니다.

1. **서비스** 패널의 검색창에서 **emrwal**을 입력하고 레이블이 `com.amazonaws.region.emrwal.prod`인 서비스를 선택합니다.

1. VPC를 선택하고 엔드포인트를 저장합니다. EMR 클러스터에 연결하는 VPC 엔드포인트에 동일한 보안 그룹을 연결해야 합니다.

1. 원하는 경우 이제 새 엔드포인트에 대한 프라이빗 DNS 호스트 이름을 활성화할 수 있습니다. VPC에 대해 **DNS 호스트 이름 활성화** 및 **DNS 지원 활성화**를 `true`로 설정합니다. 그런 다음, 엔드포인트 ID를 선택하고 **작업** 메뉴에서 **VPC 설정 편집**을 선택한 다음, 프라이빗 DNS 이름을 활성화합니다.
   + 엔드포인트의 프라이빗 DNS 호스트 이름은 `prod.emrwal.region.amazonaws.com` 형식을 따릅니다.
   + 프라이빗 DNS 호스트 이름을 활성화하지 않는 경우 Amazon VPC는 `endpointID.prod.emrwal.region.vpce.amazonaws.com` 형식으로 DNS 엔드포인트 이름을 자동으로 제공합니다.

1.  AWS PrivateLink 엔드포인트를 사용하려면 다음 예제와 같이 [Amazon EMR WAL 지원 클러스터](emr-hbase-wal-enabling.md)를 생성할 때 `emr.wal.client.endpoint` 구성을 수정합니다.

   ```
   [
       {
           "Classification": "hbase-site",
           "Properties": {
               "hbase.rootdir": "s3://amzn-s3-demo-bucket/MyHBaseStore",
               "emr.wal.workspace": "customWorkspaceName",
               "emr.wal.client.endpoint": "https://prod.emrwal.region.amazonaws.com"
           }
       },
       {
           "Classification": "hbase",
           "Properties": {
               "hbase.emr.storageMode": "s3",
               "hbase.emr.wal.enabled": "true"
           }
       }
   ]
   ```

VPCE 정책을 사용하여 Amazon EMR WAL API에 대한 액세스를 허용하거나 제한할 수도 있습니다. 자세한 정보는 *AWS PrivateLink 가이드*의 [엔드포인트 정책을 사용하여 VPC 엔드포인트에 대한 액세스 제어](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)를 참조하세요.

# Amazon EMR WAL 요금 및 지표 이해
<a name="emr-hbase-wal-metrics"></a>


| 핵심 기능 청구 단위 | 세부 정보 | 
| --- | --- | 
| EMR-WAL-Read-GiB | API calls to read data from your table are billed as ReadRequestGiB. This includes [`Get` and `Scan`](https://hbase.apache.org/book.html#_data_model_operations) operations. Reads are charged based on the sizes of the read items. Amazon EMR bills at a minimum of 1 byte. For example, if you read a 1234.12 bytes item, you're charged for 1235 bytes. Reads are aggregated every hour for billing and shown as GiBs. | 
| EMR-WAL-Write-GiB | API calls to write data from your table are billed as Write-GiB. This includes [https://hbase.apache.org/book.html#_data_model_operations](https://hbase.apache.org/book.html#_data_model_operations) operations. Writes are charged based on the sizes of the written items. Amazon EMR bills at a minimum of 1 byte. For example, if you write a 1234.12 bytes item, you're charged for 1235 bytes. Writes are aggregated every hour for billing and shown as GiBs. | 
| EMR-WAL-WALHours | 서비스에 저장하는 WAL 수는 `EMR-WAL-WALHours`로 청구됩니다. Amazon EMR에서는 HBase 리전당 하나의 WAL을 생성합니다. 예를 들어, 시스템 테이블을 포함하여 HBase 테이블 20개를 생성하고 각 테이블에서 HBase 리전이 2개인 경우 다음과 같이 계산된 28,800시간의 WAL을 사용합니다. <pre>  20 tables <br />x  2 Regions per table <br />x  1 WAL per Region <br />x 30 days <br />x 24 hours <br />-----------<br />28,800 EMR-WAL-WALHours</pre> | 

**예제 `EMRWALCount`:**

![\[Line graph showing ResourceCount fluctuations over time, ranging from about 18.87 to 19.20.\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ReleaseGuide/images/wal-metric.png)


**예제 `EMRWALWorkspaceCount`:**

![\[Graph showing ResourceCount fluctuations over time, ranging from 7.97 to 8.32.\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ReleaseGuide/images/wal-metric2.png)


# WAL 워크스페이스 태그 지정
<a name="emr-hbase-wal-tagging"></a>

새 워크스페이스를 생성하는 경우 워크스페이스에 태그를 추가할 수 있으며 실행 중인 클러스터에 대한 활성 워크스페이스에서 태그를 추가, 제거 또는 나열할 수 있습니다. 워크스페이스의 개별 리소스에 태그를 지정할 수 없으며, 기존 태그를 업데이트할 수 없습니다. 대신 워크스페이스에서 원하지 않는 태그를 제거하고 바꿉니다.

EMRWAL CLI에서 워크스페이스에 태그를 지정할 수 있습니다. 워크스페이스에 태그를 지정하기 위한 EMRWAL CLI 명령 목록은 [Amazon EMR WAL(EMRWAL) CLI 참조](emrwalcli-ref.md) 섹션을 참조하세요.

다음 예제 IAM 정책에서는 적절한 태그 지정 키 `resource_tag_allow_test_key` 및 값 `resource_tag_allow_test_value`의 워크스페이스 CRUDL 작업만 허용하는 시나리오를 보여줍니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:ListBucket"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/resource_tag_allow_test_key": [
            "resource_tag_allow_test_value"
          ]
        }
      },
      "Sid": "AllowEMRWAL"
    }
  ]
}
```

------

이제 워크스페이스 작업에 태그가 필요한지 확인하려면 [Amazon EMR WAL(EMRWAL) CLI 참조](emrwalcli-ref.md)를 사용하여 원하는 리소스 태그가 있는 워크스페이스에 대한 `tagAllowResourceTag`에서 [`listTagsForResource`](emrwalcli-ref.md#emrwalcli-ref-listtagsforresource) 명령을 직접 호출합니다. 조건을 올바르게 구성하면 명령에 성공합니다.

```
emrwal listTagsForResource -r us-east-1 -arn arn:aws:emrwal:us-east-1:arn:workspace/tagAllowResourceTag
Tag(Key=resource_tag_allow_test_key, Value=resource_tag_allow_test_value)
```

# EMR WAL 클러스터 간 복제
<a name="emr-hbase-wal-cross-cluster"></a>

EMR 7.5에서 EMR WAL은 미리 쓰기 로그의 HBase 클러스터 간 복제를 지원합니다. 이 항목에서는 기능을 활성화하고 작동 중인지 확인하는 방법을 보여줍니다. 클러스터 복제에 대한 자세한 내용은 Apache HBase 설명서의 [클러스터 복제](https://hbase.apache.org/book.html#_cluster_replication)를 참조하세요.

**참고**  
복제 프로세스는 로컬 EMR WAL에서 데이터를 읽기 때문에 미리 쓰기 로그와 관련된 추가 읽기 비용이 발생합니다. 비용에 대한 자세한 내용은 [Amazon EMR 릴리스 정보](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hbase-wal-metrics.html)를 참조하세요.

## 클러스터 간 복제 설정
<a name="emr-hbase-wal-cross-cluster-setup"></a>

동일한 사용자 경험을 제공하기 위해 EMR WAL에서 복제 기능을 활성화하는 것은 기본 HBase 미리 쓰기 로그와 동일합니다. 다음 절차는 간단한 예제를 보여줍니다. 자세한 내용은 [클러스터 복제](https://hbase.apache.org/book.html#_cluster_replication)의 HBase 설명서를 참조하세요.

1. EMR WAL이 활성화된 상태에서 복제 소스인 기본 클러스터를 시작합니다. 미리 쓰기 로그를 활성화하려면 [Amazon EMR WAL 활성화](emr-hbase-wal-enabling.md) 섹션을 참조하세요. 또한 피어 클러스터도 시작합니다. 이 피어 클러스터의 경우 EMR WAL을 활성화할지 여부를 선택할 수 있습니다.

1. 두 클러스터 모두에서 테이블을 생성합니다.

   ```
   HBASE_CMD="sudo -u hbase hbase"
   echo "create 'test_replication_table',{NAME => 'CF'}" | $HBASE_CMD shell
   ```

1. 기본 클러스터에 피어 설정을 추가하고 테이블 복제를 활성화합니다. 피어를 추가하는 동안 피어 클러스터 마스터 노드 호스트 이름인 **PEER\$1DNS**가 필요합니다.

   ```
   HBASE_CMD="sudo -u hbase hbase"
   PEER_DNS="ip-10-1-1-0.ec2.com"
   PEER_NAME="aws"
   TABLE_NAME="test_replication_table"
   
   ## Create peering with the destination cluster
   echo "add_peer '$PEER_NAME', CLUSTER_KEY => '$PEER_DNS:2181:/hbase'" | $HBASE_CMD shell
   
   ## List peers in the primary cluster to confirm peer setup
   echo "list_peers" | $HBASE_CMD shell
   
   ## Enable table replication
   echo "enable_table_replication '$TABLE_NAME'" | $HBASE_CMD shell
   ```

## 교차 클러스터 복제 확인
<a name="emr-hbase-wal-cross-cluster-confirm"></a>

설정 단계를 수행하면 기본 클러스터와 피어 클러스터 간에 복제가 활성화됩니다. 그런 다음 복제가 작동하는지 확인하는 테스트가 수행됩니다.

1. 기본 클러스터에 데이터를 추가하고 피어 클러스터에 복제된 데이터를 확인합니다.

   ```
   ## Write on primary cluster with HBase CLI
   
   put 'test_replication_table', 'aaa', 'CF:a', 'aaa_a1'
   put 'test_replication_table', 'bbb', 'CF:b', 'bbb_b1'
   put 'test_replication_table', 'ccc', 'CF:c', 'ccc_c1'
   ```

1. 피어 클러스터에서 복제가 성공했는지 확인합니다. 이 경우 기본 클러스터에서 피어 클러스터로 기록된 복제된 데이터가 표시되어야 합니다.

   ```
   ### Scan on peer cluster with HBase CLI
   
   scan 'test_replication_table'
   ```

# Amazon EMR WAL에 대한 고려 사항 및 리전
<a name="emr-hbase-wal-considerations"></a>

## Amazon EMR WAL에 대한 고려 사항
<a name="emr-hbase-wal-consid"></a>

다음 목록에서는 Amazon EMR WAL의 중요한 고려 사항 및 제한 사항을 설명합니다.
+ Amazon EMR WAL은 Amazon EMR 릴리스 6.15.0 이상에서 사용할 수 있습니다.
+ Amazon EMR WAL은 옵트인 유료 서비스입니다. 읽기, 쓰기 및 데이터 스토리지와 같은 사용 작업에 대한 비용을 지불합니다. 자세한 내용은 [Amazon EMR WAL 요금 및 지표 이해](emr-hbase-wal-metrics.md) 및 [Amazon EMR 요금](https://aws.amazon.com/emr/pricing/) 페이지를 참조하세요.
+ Amazon EMR WAL은 HBase 미리 쓰기 로그(WAL)를 사용합니다. Amazon EMR WAL을 사용하려면 클러스터에서 HBase WAL을 사용해야 합니다.
+ 클러스터를 생성할 때 Amazon EMR WAL을 활성화하려면 필수 역할 권한이 있어야 합니다. 자세한 내용은 [미리 쓰기 로깅에 대한 서비스 연결 역할 사용](https://docs.aws.amazon.com/emr/latest/ManagementGuide/using-service-linked-roles-wal.html)을 참조하세요.
+  AWS Management Console AWS CLI, 또는 API를 사용하여 클러스터를 생성할 때 Amazon EMR WAL을 활성화해야 하며 *인스턴스 그룹* 구성을 사용해야 합니다. Amazon EMR WAL을 사용하여 클러스터를 생성하지 않은 경우 실행 중인 클러스터에서 Amazon EMR WAL을 활성화할 수 없습니다. 또한 실행 중인 클러스터에서 Amazon EMR WAL을 활성화하도록 `hbase-site` 구성을 편집할 수 없습니다.
+ 루트 디렉터리에서 Amazon S3를 사용하는 클러스터에서만 Amazon EMR WAL을 활성화할 수 있습니다.
+ Amazon EMR 버전 7.5.0 이전의 경우 Amazon EMR WAL의 레코드가 4MB 이하여야 했습니다. 그러나 Amazon EMR 버전 7.5.0 이상에서는 `emr.wal.max.payload.size` 속성을 사용하여 EMR WAL의 최대 레코드 크기를 구성할 수 있습니다. 기본값은 1GB입니다. 다음 예제에서는 최대 레코드 크기를 2GB로 설정합니다.

  ```
  [
    {
      "Classification":"hbase-site",
      "Properties": {
         "emr.wal.max.payload.size": "2147483648"
      }
    }
  ]
  ```
+ Amazon S3의 동일한 HBase 루트 디렉터리에 활성 클러스터가 여러 개 있을 수 없습니다.
+ 읽기 전용 복제본 클러스터에서 Amazon EMR WAL을 활성화할 수 없습니다.
+ WAL은 관리형 서비스 내 여러 가용 영역에서 복제됩니다.
+ WAL은 클러스터의 수명을 초과하고 다음 클러스터에 계속 사용할 수 있습니다.
+ 시작 중에 또는 클러스터가 작동 중일 때(실행 중 상태) Amazon EMR WAL을 비활성화할 수 없습니다.
+ WAL 및 워크스페이스 제한에 대한 자세한 내용은 [Amazon EMR 엔드포인트 및 할당량 섹션](https://docs.aws.amazon.com/general/latest/gr/emr.html)을 참조하세요.

## Amazon EMR WAL에 대한 리전 가용성
<a name="emr-hbase-wal-regions"></a>

Amazon EMR WAL 서비스는 AWS 리전다음에서 사용할 수 있습니다.
+ `ap-northeast-1` – 아시아 태평양(도쿄)
+ `ap-northeast-2` – 아시아 태평양(서울)
+ `ap-southeast-1` – 아시아 태평양(싱가포르)
+ `ap-south-1` – 아시아 태평양(뭄바이)
+ `ap-southeast-2` – 아시아 태평양(시드니)
+ `eu-central-1` – 유럽(프랑크푸르트)
+ `eu-north-1` – 유럽(스톡홀름)
+ `eu-west-1` – 유럽(아일랜드)
+ `sa-east-1` – 남아메리카(상파울루)
+ `us-east-1` - 미국 동부(버지니아 북부)
+ `us-east-2` - 미국 동부(오하이오)
+ `us-west-2` - 미국 서부(오리건)

다음 리전은 Amazon EMR 버전 7.3.0 이상에서만 사용할 수 있습니다.
+ `ap-east-1` – 아시아 태평양(홍콩)
+ `af-south-1` – 아프리카(케이프타운) 
+ `ca-central-1` - 캐나다(중부)
+ `eu-west-2` – 유럽(런던)

# Amazon EMR WAL(EMRWAL) CLI 참조
<a name="emrwalcli-ref"></a>

**EMRWAL 명령줄 인터페이스(EMRWAL CLI)는 Amazon EMR에 대한 미리 쓰기 로그(WAL)를 관리하는 통합 도구입니다. 클러스터를 생성할 때 WAL을 활성화하면 EMRWAL CLI는 EMR 클러스터와 함께 제공됩니다. WAL 활성화에 대한 자세한 내용은 [Amazon EMR에 대한 미리 쓰기 로그(WAL)](emr-hbase-wal.md) 섹션을 참조하세요.

EMRWAL CLI에는 다음 명령이 포함됩니다.

**Topics**
+ [`createWorkspace`](#emrwalcli-ref-createworkspace)
+ [`deleteWal`](#emrwalcli-ref-deletewal)
+ [`deleteWorkspace`](#emrwalcli-ref-deleteworkspace)
+ [`listTagsForResource`](#emrwalcli-ref-listtagsforresource)
+ [`listWals`](#emrwalcli-ref-listwals)
+ [`listWorkspaces`](#emrwalcli-ref-listworkspaces)
+ [`tagResource`](#emrwalcli-ref-tagresource)
+ [`untagResource`](#emrwalcli-ref-untagresource)

## `createWorkspace`
<a name="emrwalcli-ref-createworkspace"></a>

`createWorkspace` 명령은 새 Amazon EMR WAL 워크스페이스를 생성합니다.

**사용량:**

```
emrwal createWorkspace [-tags <tags>] [-e {endpoint}] [-r {Region}] -w {workspacename} [-h]
```

**예:**

```
emrwal createWorkspace -w examplews
```

## `deleteWal`
<a name="emrwalcli-ref-deletewal"></a>

`deleteWals` 명령은 사용자가 지정한 Amazon EMR WAL을 삭제합니다.

**사용량:**

```
emrwal deleteWal [-e {endpoint}] [-r {Region}] [-w {workspacename}] [-p <tablePrefix>] [-n <walName>] [-N <fullName>] [-R] [-m] [-h]
```

**예:**

```
emrwal deleteWal -w examplews -p hbasetable -n examplewal
```

## `deleteWorkspace`
<a name="emrwalcli-ref-deleteworkspace"></a>

`deleteWorkspace` 명령은 사용자가 지정한 Amazon EMR WAL 워크스페이스를 삭제합니다.

**사용량:**

```
emrwal deleteWorkspace [-e {endpoint}] [-r {Region}] -w {workspacename} [-h]
```

**예:**

```
emrwal deleteWorkspace -w examplews
```

## `listTagsForResource`
<a name="emrwalcli-ref-listtagsforresource"></a>

`listTagsForResource` 명령은 사용자가 지정한 Amazon EMR WAL 워크스페이스의 모든 키-값 페어 태그를 나열합니다.

**사용량:**

```
emrwal listTagsForResource -arn {resource-arn} [-e {endpoint}] [-r {Region}] [-h]
```

**예:**

```
emrwal listTagsForResource -arn arn:aws:emrwal::1234567891234:workspace/examplews
```

## `listWals`
<a name="emrwalcli-ref-listwals"></a>

`listWals` 명령은 사용자가 지정한 워크스페이스의 모든 Amazon EMR WAL을 나열합니다.

**사용량:**

```
emrwal listWals [-nextToken {token-string}] [-pageSize {integer}] [-e {endpoint}] [-r {Region}] [-w {workspacename}] [-p <tablePrefix>] [-M {integer}] [-h]
```

**예:**

```
emrwal listWals -w examplews
```

## `listWorkspaces`
<a name="emrwalcli-ref-listworkspaces"></a>

이 `listWorkspaces` 명령은 사용 가능한 모든 Amazon EMR WAL 워크스페이스를 나열합니다.

**사용량:**

```
emrwal listWorkspaces [-nextToken {token-string}] [-pageSize {integer}] [-e {endpoint}] [-r {Region}] [-M {integer}] [-h]
```

**예:**

```
emrwal listWorkspaces
```

## `tagResource`
<a name="emrwalcli-ref-tagresource"></a>

`tagResource` 명령은 사용자가 지정한 Amazon EMR WAL 워크스페이스에 하나 이상의 키-값 페어 태그를 할당합니다.

**사용량:**

```
emrwal tagResource -arn {resource-arn} -tags <tags> [-e {endpoint}] [-r {Region}] [-h]
```

**예:**

```
emrwal tagResource -arn arn:aws:emrwal::1234567891234:workspace/examplews -tags tag_key=tag_value
```

## `untagResource`
<a name="emrwalcli-ref-untagresource"></a>

`untagResource` 명령은 사용자가 지정한 Amazon EMR WAL 워크스페이스에 하나 이상의 키-값 페어 태그를 할당 해제합니다.

**사용량:**

```
emrwal untagResource -arn {resource-arn} -tagKeys <tagKeys> [-e {endpoint}] [-r {Region}] [-h]
```

**예:**

```
emrwal untagResource -arn arn:aws:emrwal::1234567891234:workspace/examplews -tagKeys tag_key
```