

# 표준 로깅(레거시) 구성
<a name="standard-logging-legacy-s3"></a>

**참고**  
이 주제는 이전 버전의 표준 로깅에 관한 내용입니다. 최신 버전은 [표준 로깅(v2) 구성](standard-logging.md) 페이지를 참조하세요.
표준 로깅(레거시)을 이미 사용 설정했고 Amazon S3에 대한 표준 로깅(v2)을 사용하려는 경우 *다른* Amazon S3 버킷을 지정하거나 동일한 버킷에서 *별도의 경로*를 사용하는 것이 좋습니다(예: 로그 접두사 또는 파티셔닝 사용). 이렇게 하면 어떤 로그 파일이 어떤 배포와 연결되어 있는지 추적하고 로그 파일이 서로 덮어쓰는 것을 방지할 수 있습니다.

표준 로깅(레거시)을 시작하려면 다음 단계를 완료합니다.

1. 로그를 수신할 Amazon S3 버킷을 선택하고 필수 권한을 추가합니다.

1. CloudFront 콘솔 또는 CloudFront API에서 표준 로깅(레거시)을 구성합니다. 로그를 수신할 Amazon S3 버킷만 선택할 수 있습니다.

1. 액세스 로그를 확인합니다.

## 표준 로그용 Amazon S3 버킷 선택
<a name="access-logs-choosing-s3-bucket"></a>

배포에 대해 로깅을 활성화하는 경우 CloudFront에서 로그 파일을 저장할 Amazon S3 버킷을 지정할 수 있습니다. Amazon S3를 오리진으로 사용할 경우에는 로그 파일에 **별도의 버킷을 사용하는 것이 좋습니다.

CloudFront에서 액세스 로그를 저장하려는 Amazon S3 버킷을 지정합니다(예: `amzn-s3-demo-bucket.s3.amazonaws.com`).

동일 버킷에 여러 배포에 대한 로그 파일을 저장할 수 있습니다. 로깅을 활성화할 경우 파일 이름에 접두사(선택 사항)를 지정하여 배포와 연결되는 로그 파일을 추적할 수 있습니다.

**S3 버킷 선택 관련**  
버킷에 액세스 제어 목록(ACL)이 활성화되어 있어야 합니다. CloudFront 콘솔에서 ACL이 활성화되지 않은 버킷을 선택하면 오류 메시지가 표시됩니다. [권한](#AccessLogsBucketAndFileOwnership)을(를) 참조하세요.
**버킷 소유자**로 설정된 [S3 객체 소유권](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html)이 적용된 Amazon S3 버킷을 선택하지 마세요. 이 설정은 버킷과 그 안의 객체에 대한 ACL을 비활성화하여 CloudFront에서 버킷으로 로그 파일을 전송하지 못하도록 합니다.
레거시 로깅은 옵트인 리전의 Amazon S3 버킷을 지원하지 않습니다. 기본적으로 활성화된 리전을 선택하거나 옵트인 리전 및 추가 기능을 지원하는 [표준 로깅 V2](standard-logging.md)를 사용하세요. 기본 및 옵트인 리전 목록은 [AWS 리전](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html) 섹션을 참조하세요.

## 권한
<a name="AccessLogsBucketAndFileOwnership"></a>

**중요**  
2023년 4월부터 CloudFront 표준 로그에 사용되는 새 S3 버킷에 대해 S3 ACL을 활성화해야 합니다. [버킷을 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-new-bucket.html)할 때 ACL을 활성화하거나 [기존 버킷](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-ownership-existing-bucket.html)에 ACL을 활성화할 수 있습니다.  
변경 사항에 대한 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [새 S3 버킷에 대한 기본 설정 FAQ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-faq.html)와 *AWS 뉴스 블로그*의 [2023년 4월에 예정된 Amazon S3 보안 변경 사항](https://aws.amazon.com/blogs/aws/heads-up-amazon-s3-security-changes-are-coming-in-april-of-2023/)을 참조하세요.

로그 파일용으로 지정하는 버킷에 대해 AWS 계정에 다음 권한이 있어야 합니다.
+ 버킷의 ACL에서 `FULL_CONTROL` 권한을 부여받아야 합니다. 버킷 소유자인 경우 기본적으로 계정에 이 권한이 있습니다. 이 권한이 없을 경우 버킷 소유자가 버킷에 대한 ACL을 업데이트해야 합니다.
+ `s3:GetBucketAcl`
+ `s3:PutBucketAcl`

**버킷에 대한 ACL**  
배포를 생성하거나 업데이트하고 로깅을 활성화할 경우 CloudFront는 이러한 권한을 사용하여 버킷에 대한 ACL을 업데이트함으로써 `awslogsdelivery` 계정에 `FULL_CONTROL` 권한을 부여합니다. `awslogsdelivery` 계정이 로그 파일을 버킷에 기록합니다. ACL을 업데이트하는 데 필요한 권한이 계정에 없을 경우 배포를 생성하거나 업데이트할 수 없습니다.  
프로그래밍 방식으로 버킷 생성 요청을 제출했는데 지정한 이름의 버킷이 이미 존재하는 경우, S3는 해당 버킷에 대한 권한을 기본값으로 재설정합니다. 액세스 로그를 S3 버킷에 저장하도록 CloudFront를 구성했는데 더 이상 해당 버킷에서 로그를 가져오지 않는 경우, 버킷에 대한 권한을 점검하여 CloudFront가 필요한 권한을 가지고 있는지 확인하세요.

**버킷에 대한 ACL 복원**  
`awslogsdelivery` 계정에 대한 권한을 제거할 경우 CloudFront는 S3 버킷에 로그를 저장할 수 없습니다. CloudFront에서 배포에 대한 로그를 다시 저장할 수 있게 하려면 다음 중 하나를 수행하여 ACL 권한을 복원합니다.  
+ CloudFront의 배포에 대한 로깅을 비활성화한 다음 이를 다시 활성화합니다. 자세한 내용은 [표준 로깅](DownloadDistValuesGeneral.md#DownloadDistValuesLoggingOnOff) 섹션을 참조하세요.
+ Amazon S3 콘솔의 S3 버킷으로 이동하고 권한을 추가하여 `awslogsdelivery`에 대한 ACL 권한을 수동으로 추가합니다. `awslogsdelivery`에 대한 ACL을 추가하려면 계정에 대해 다음과 같이 정식 ID를 입력해야 합니다.

  `c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0`

  

  S3 버킷에 ACL을 추가하는 방법에 대한 자세한 내용은 **Amazon Simple Storage Service 사용 설명서의 [ACL 구성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html)을 참조하세요.

**각 로그 파일의 ACL**  
버킷의 ACL 외에도 각 로그 파일마다 ACL이 있습니다. 버킷 소유자에게는 각 로그 파일에 대한 `FULL_CONTROL` 권한이 있으며, 배포 소유자(버킷 소유자와 다른 경우)에게는 아무런 권한이 없습니다. `awslogsdelivery` 계정에는 읽기 및 쓰기 권한이 있습니다.

**로깅 비활성화**  
로깅을 비활성화하더라도 CloudFront가 버킷이나 로그 파일에 대한 ACL이 자동으로 삭제되지 않습니다. 필요한 경우 ACL을 삭제할 수 있습니다.

### SSE-KMS 버킷에 필요한 키 정책
<a name="AccessLogsKMSPermissions"></a>

표준 로그의 S3 버킷이 고객 관리형 키를 사용하여 AWS KMS keys(SSE-KMS)로 서버 측 암호화를 사용하는 경우, 고객 관리형 키의 키 정책에 다음 설명을 추가해야 합니다. 이렇게 하면 CloudFront가 버킷에 로그 파일을 쓸 수 있습니다. CloudFront는 로그 파일을 버킷에 쓸 수 없기 때문에 SSE-KMS와 함께 AWS 관리형 키를 사용할 수 없습니다.

```
{
    "Sid": "Allow CloudFront to use the key to deliver logs",
    "Effect": "Allow",
    "Principal": {
        "Service": "delivery.logs.amazonaws.com"
    },
    "Action": "kms:GenerateDataKey*",
    "Resource": "*"
}
```

표준 로그의 S3 버킷이 [S3 버킷 키](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)와 함께 SSE-KMS를 사용하는 경우 정책 설명에 `kms:Decrypt` 권한을 추가해야 합니다. 이 경우 전체 정책 설명은 다음과 같습니다.

```
{
    "Sid": "Allow CloudFront to use the key to deliver logs",
    "Effect": "Allow",
    "Principal": {
        "Service": "delivery.logs.amazonaws.com"
    },
    "Action": [
        "kms:GenerateDataKey*",
        "kms:Decrypt"
    ],
    "Resource": "*"
}
```

**참고**  
S3 버킷에 대해 SSE-KMS를 사용 설정할 때 고객 관리형 키에 대한 전체 ARN을 지정합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서**의 [AWS KMS keys(SSE-KMS)로 서버 측 암호화 지정](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html)을 참조하세요.

## 표준 로깅(레거시) 사용
<a name="standard-logs-legacy-enable"></a>

표준 로그를 사용하려면 CloudFront 콘솔 또는 CloudFront API를 사용합니다.

**Contents**
+ [표준 로깅(레거시) 사용(CloudFront 콘솔)](#standard-logs-legacy-enable-console)
+ [표준 로깅(레거시) 사용(CloudFront API)](#standard-logs-legacy-enable-api)

### 표준 로깅(레거시) 사용(CloudFront 콘솔)
<a name="standard-logs-legacy-enable-console"></a>

**CloudFront 배포에 대한 표준 로그를 사용하려면 다음과 같이 합니다(콘솔의 경우).**

1. CloudFront 콘솔을 사용하여 [새 배포](distribution-web-creating-console.md)를 만들거나 [기존 배포를 업데이트](HowToUpdateDistribution.md#HowToUpdateDistributionProcedure)합니다.

1. **표준 로깅** 섹션의 **로그 전송**에서 **켜기**를 선택합니다.

1. (선택 사항) **쿠키 로깅**에서 로그에 쿠키를 포함하려면 **켜기**를 선택합니다. 자세한 내용은 [쿠키 로깅](DownloadDistValuesGeneral.md#DownloadDistValuesCookieLogging) 섹션을 참조하세요.
**작은 정보**  
쿠키 로깅은 배포의 *모든 *표준 로그에 적용되는 전역 설정입니다. 별도의 전송 대상에서 이 설정을 재정의할 수 없습니다.

1. **전송 대상** 섹션에서 **Amazon S3(레거시)**를 지정합니다.

1. Amazon S3 버킷을 지정합니다. 버킷이 아직 없는 경우 **생성**을 선택하거나 설명서를 보고 [버킷을 만들](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) 수 있습니다.

1. (선택 사항) **로그 접두사**에서, CloudFront에서 이 배포에 대한 액세스 로그 파일 이름에 접두사로 지정하려는 문자열(해당하는 경우)을 지정합니다(예: `exampleprefix/`). 후행 슬래시(/)는 선택 사항이지만 로그 파일을 쉽게 검색할 수 있도록 넣는 것이 좋습니다. 자세한 내용은 [로그 접두사](DownloadDistValuesGeneral.md#DownloadDistValuesLogPrefix) 섹션을 참조하세요.

1. 배포를 업데이트하거나 만드는 단계를 완료합니다.

1. **로그** 페이지에서 배포 옆의 표준 로그 상태가 **활성화됨**인지 확인합니다.

   표준 로깅 전송 및 로그 필드에 대한 자세한 내용은 [표준 로깅 참조](standard-logs-reference.md) 섹션을 참조하시기 바랍니다.

### 표준 로깅(레거시) 사용(CloudFront API)
<a name="standard-logs-legacy-enable-api"></a>

CloudFront API를 사용하여 배포에 대한 표준 로그를 사용 설정할 수도 있습니다.

**배포에 대한 표준 로그를 사용하려면 다음과 같이 합니다(CloudFront API의 경우).**
+ [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html) 또는 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html) API 작업을 사용하고 [LoggingConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_LoggingConfig.html) 객체를 구성합니다.

## 표준 로깅 설정 편집
<a name="ChangeSettings"></a>

[CloudFront 콘솔](https://console.aws.amazon.com/cloudfront/v4/home) 또는 CloudFront API를 사용하여 로깅을 활성화/비활성화하거나, 로그가 저장되는 Amazon S3 버킷을 변경하고 로그 파일의 접두사를 변경할 수 있습니다. 로깅 설정에 대한 변경 내용은 12시간 내에 적용됩니다.

자세한 정보는 다음 주제를 참조하십시오.
+ CloudFront 콘솔을 사용하여 배포를 업데이트하려면 [배포 업데이트](HowToUpdateDistribution.md) 섹션을 참조하세요.
+ CloudFront API를 사용하여 배포를 업데이트하려면 *Amazon CloudFront API 참조*의 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)을 참조하세요.

## Amazon S3로 로그 전송
<a name="standard-logs-in-s3"></a>

Amazon S3로 로그를 전송하면 로그가 다음 형식으로 표시됩니다.

### 파일 이름 형식
<a name="AccessLogsFileNaming"></a>

CloudFront에서 Amazon S3 버킷에 저장하는 각 로그 파일의 이름에는 다음 파일 이름 형식이 사용됩니다.

`{{<optional prefix>}}/{{<distribution ID>}}.{{YYYY}}-{{MM}}-{{DD}}-{{HH}}.{{unique-ID}}.gz`

날짜 및 시간이 협정 세계시(UTC)로 표시됩니다.

예를 들어 접두사로 `example-prefix`를 사용하고 배포 ID가 `EMLARXS9EXAMPLE`이면 파일 이름은 다음과 같습니다.

`example-prefix/EMLARXS9EXAMPLE.2019-11-14-20.RT4KCN4SGK9.gz`

배포에 대한 로깅을 활성화할 경우 파일 이름에 접두사(선택 사항)를 지정하여 배포와 연결되는 로그 파일을 추적할 수 있습니다. 로그 파일 접두사의 값을 포함하고 접두사가 슬래시(`/`)로 끝나지 않으면 CloudFront에서 슬래시를 자동으로 추가합니다. 접두사가 슬래시로 끝나면 CloudFront에서 슬래시를 추가하지 않습니다.

파일 이름의 끝에 붙은 `.gz`는 CloudFront에서 로그 파일이 gzip으로 압축되었음을 나타냅니다.

## 표준 로그 파일 형식
<a name="LogFileFormat"></a>

로그 파일의 각 항목은 단일 최종 사용자 요청에 대한 세부 정보를 제공합니다. 이러한 로그 파일은 다음과 같은 특성을 갖습니다.
+ [W3C 확장 로그 파일 형식](https://www.w3.org/TR/WD-logfile.html)을 사용합니다.
+ 탭으로 구분된 값을 포함합니다.
+ 레코드를 포함합니다. 이 때 레코드가 시간 순서대로 나열되어 있지 않을 수도 있습니다.
+ 두 헤더 행(파일 형식 버전이 표시된 행과 각 레코드에 포함된 W3C 필드가 나열된 행)을 포함합니다.
+ 필드 값에서 공백 및 다른 특정 문자에 상응하는 URL 인코딩 값을 포함합니다.

  상응하는 URL 인코딩 값은 다음과 같은 문자에 사용됩니다.
  + ASCII 문자 코드 0\~32
  + ASCII 문자 코드 127 이상
  + 다음 표의 모든 문자

  URL 인코딩 표준은 [RFC 1738](https://tools.ietf.org/html/rfc1738.html)에 정의되어 있습니다.


|  URL 인코딩 값  |  문자  | 
| --- | --- | 
| %3C | < | 
| %3E | > | 
| %22 | " | 
| %23 | \# | 
| %25 | % | 
| %7B | { | 
| %7D | } | 
| %7C | \| | 
| %5C | \\ | 
| %5E | ^ | 
| %7E | \~ | 
| %5B | [ | 
| %5D | ] | 
| %60 | ` | 
| %27 | ' | 
| %20 | 공백 | 

## 로그 파일 삭제
<a name="DeletingLogFiles"></a>

CloudFront는 Amazon S3 버킷에서 로그 파일을 자동으로 삭제하지 않습니다. Amazon S3 버킷에서 로그 파일을 삭제하는 방법에 대한 자세한 내용은 *Amazon Simple Storage Service 콘솔 사용 설명서*의 [객체 삭제](https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjects.html)를 참조하시기 바랍니다.

## 가격 책정
<a name="AccessLogsCharges"></a>

표준 로깅은 CloudFront의 선택적 기능입니다. CloudFront는 표준 로그 사용에 대한 요금을 부과하지 않습니다. 하지만 Amazon S3에 파일을 저장하고 액세스하는 데 일반적인 Amazon S3 요금이 부과됩니다. 사용자는 언제든지 이를 삭제할 수 있습니다.

Amazon S3 요금에 대한 자세한 내용은 [Amazon S3 요금](https://aws.amazon.com/s3/pricing/)을 참조하세요.

CloudFront 요금에 대한 자세한 내용은 [CloudFront 요금](https://aws.amazon.com/cloudfront/pricing/)을 참조하세요.