

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

# 빠른 시작: Windows Server 2012 및 Windows Server 2008을 실행하는 Amazon EC2 인스턴스가 CloudWatch Logs로 로그를 전송하도록 설정
<a name="QuickStartWindows20082012"></a>

**작은 정보**  
CloudWatch는 EC2 인스턴스 및 온프레미스 서버에서 로그와 지표를 모두 수집할 수 있는 통합 에이전트가 새롭게 추가되었습니다. 새롭게 통합된 CloudWatch 에이전트의 사용을 권장합니다. 자세한 정보는 [CloudWatch Logs 시작하기](CWL_GettingStarted.md) 섹션을 참조하세요.  
이번 섹션의 나머지 부분에서는 이전 CloudWatch Logs 에이전트의 사용에 대해서 설명하겠습니다.

## Windows Server 2012 및 Windows Server 2008을 실행하는 Amazon EC2 인스턴스가 CloudWatch Logs로 로그를 전송하도록 설정
<a name="QuickStartWindows20082012-olderagent"></a>

다음 단계를 사용하면 Windows Server 2012 및 Windows Server 2008을 실행하는 인스턴스가 로그를 CloudWatch Logs로 보내도록 설정할 수 있습니다.

### 샘플 구성 파일 다운로드
<a name="configure_cwl_download2012"></a>

컴퓨터에 다음 샘플 JSON 파일을 다운로드합니다. [https://s3.amazonaws.com/ec2-downloads-windows/CloudWatchConfig/AWS.EC2.Windows.CloudWatch.json](https://s3.amazonaws.com/ec2-downloads-windows/CloudWatchConfig/AWS.EC2.Windows.CloudWatch.json) 다음 단계에서 이 파일을 편집합니다.

### CloudWatch에 JSON 파일 구성
<a name="send_logs_to_cwl_json2012"></a>

JSON 구성 파일에서 선택 항목을 지정하여 CloudWatch로 전송할 로그를 결정합니다. 이 파일을 만들고 선택 항목을 지정하는 프로세스를 완료하는 데 30분 이상 걸릴 수 있습니다. 이 작업을 한 번 완료한 후 모든 인스턴스에 구성 파일을 재사용할 수 있습니다.

**Topics**
+ [1단계: CloudWatch Logs 활성화](#enable-CloudWatchLogs-in-JSON-file2012)
+ [2단계: CloudWatch의 설정 구성](#configure_cwl_credentials2012)
+ [3단계: 전송할 데이터 구성](#configure_logs2012)
+ [4단계: 흐름 제어 구성](#configure_log_flow2012)

#### 1단계: CloudWatch Logs 활성화
<a name="enable-CloudWatchLogs-in-JSON-file2012"></a>

JSON 파일의 상단에서 `IsEnabled`을 'false'에서 'true'로 변경합니다.

```
"IsEnabled": true,
```

#### 2단계: CloudWatch의 설정 구성
<a name="configure_cwl_credentials2012"></a>

자격 증명, 리전, 로그 그룹 이름, 로그 스트림 네임스페이스를 지정합니다. 그러면 인스턴스가 CloudWatch Logs로 로그 데이터를 보낼 수 있습니다. 동일한 로그 데이터를 여러 위치로 보내려는 경우 ID가 고유하고(예: 'CloudWatchLogs2', 'CloudWatchLogs3') ID별로 리전이 다른 섹션을 추가할 수 있습니다.

**CloudWatch Logs로 로그 데이터를 전송하기 위해 설정을 구성하려면**

1. JSON 파일에서 `CloudWatchLogs` 섹션을 찾습니다.

   ```
   {
       "Id": "CloudWatchLogs",
       "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch",
       "Parameters": {
           "AccessKey": "",
           "SecretKey": "",
           "Region": "us-east-1",
           "LogGroup": "Default-Log-Group",
           "LogStream": "{instance_id}"
       }
   },
   ```

1.  `AccessKey` 및 `SecretKey` 필드는 비워둡니다. IAM 역할을 사용하여 자격 증명을 구성합니다.

1. `Region`에 로그 데이터를 보내려는 리전을 입력합니다(예: `us-east-2`).

1. `LogGroup`에 로그 그룹의 이름을 입력합니다. 이 이름은 CloudWatch 콘솔에서 **로그 그룹** 화면에 나타납니다.

1. `LogStream`에 대상 로그 스트림을 입력합니다. 이 이름은 CloudWatch 콘솔에서 **로그 그룹 > 스트림** 화면에 나타납니다.

   `{instance_id}`을 사용하는 경우 기본적으로 로그 스트림 이름은 이 인스턴스의 인스턴스 ID입니다.

   아직 존재하지 않는 로그 스트림 이름을 지정하면 CloudWatch Logs에서 이 이름을 자동으로 생성합니다. 리터럴 문자열, 미리 정의된 변수 `{instance_id}`, `{hostname}` 및 `{ip_address}` 또는 이들의 조합을 사용하여 로그 스트림 이름을 정의할 수 있습니다.

#### 3단계: 전송할 데이터 구성
<a name="configure_logs2012"></a>

이벤트 로그 데이터, ETW(Windows용 이벤트 추적) 데이터 및 기타 로그 데이트를 CloudWatch Logs로 전송할 수 있습니다.

**CloudWatch Logs로 Windows 애플리케이션 이벤트 로그 데이터를 보내려면**

1. JSON 파일에서 `ApplicationEventLog` 섹션을 찾습니다.

   ```
   {
       "Id": "ApplicationEventLog",
       "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch",
       "Parameters": {
           "LogName": "Application",
           "Levels": "1"
       }
   },
   ```

1. `Levels`에 업로드할 메시지의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.
   + **1** - 오류 메시지만 업로드됩니다.
   + **2** - 경고 메시지만 업로드됩니다.
   + **4** - 정보 메시지만 업로드됩니다.

   값을 적절히 조합하여 두 가지 이상의 메시지 유형을 포함할 수 있습니다. 예를 들어, **3**의 값은 오류 메시지(**1**) 및 경고 메시지(**2**)를 업로드합니다. 값 **7**을 지정하면 오류 메시지(**1**), 경고 메시지(**2**) 및 정보 메시지(**4**)가 업로드됩니다.

**CloudWatch Logs로 보안 로그 데이터를 보내려면**

1. JSON 파일에서 `SecurityEventLog` 섹션을 찾습니다.

   ```
   {
       "Id": "SecurityEventLog",
       "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch",
       "Parameters": {
           "LogName": "Security",
           "Levels": "7"
       }
   },
   ```

1. 모든 메시지를 업로드하려면 `Levels`에 **7**을 입력합니다.

**CloudWatch Logs에 시스템 이벤트 로그 데이터를 보내려면**

1. JSON 파일에서 `SystemEventLog` 섹션을 찾습니다.

   ```
   {
       "Id": "SystemEventLog",
       "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch",
       "Parameters": {
           "LogName": "System",
           "Levels": "7"
       }
   },
   ```

1. `Levels`에 업로드할 메시지의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.
   + **1** - 오류 메시지만 업로드됩니다.
   + **2** - 경고 메시지만 업로드됩니다.
   + **4** - 정보 메시지만 업로드됩니다.

   값을 적절히 조합하여 두 가지 이상의 메시지 유형을 포함할 수 있습니다. 예를 들어, **3**의 값은 오류 메시지(**1**) 및 경고 메시지(**2**)를 업로드합니다. 값 **7**을 지정하면 오류 메시지(**1**), 경고 메시지(**2**) 및 정보 메시지(**4**)가 업로드됩니다.

**CloudWatch Logs로 다른 유형의 이벤트 로그 데이터를 보내려면**

1. JSON 파일에서 새 섹션을 추가합니다. 각 섹션에는 고유한 `Id`이 있어야 합니다.

   ```
   {
       "Id": "Id-name",
       "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch",
       "Parameters": {
           "LogName": "Log-name",
           "Levels": "7"
       }
   },
   ```

1. `Id`에 업로드할 로그의 이름을 입력합니다(예: **WindowsBackup**).

1. `LogName`에 업로드할 로그의 이름을 입력합니다. 로그 이름은 다음과 같이 확인할 수 있습니다.

   1. 이벤트 뷰어를 엽니다.

   1. 탐색 창에서 **애플리케이션 및 서비스 로그**를 선택합니다.

   1. 로그로 이동한 다음 **작업**, **속성**을 선택합니다.

1. `Levels`에 업로드할 메시지의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.
   + **1** - 오류 메시지만 업로드됩니다.
   + **2** - 경고 메시지만 업로드됩니다.
   + **4** - 정보 메시지만 업로드됩니다.

   값을 적절히 조합하여 두 가지 이상의 메시지 유형을 포함할 수 있습니다. 예를 들어, **3**의 값은 오류 메시지(**1**) 및 경고 메시지(**2**)를 업로드합니다. 값 **7**을 지정하면 오류 메시지(**1**), 경고 메시지(**2**) 및 정보 메시지(**4**)가 업로드됩니다.

**CloudWatch Logs로 Windows용 이벤트 추적 데이터를 보내려면**

ETW(Windows용 이벤트 추적)는 애플리케이션이 로그를 기록할 수 있는 효율적이고 세부적인 로깅 메커니즘을 제공합니다. 로깅 세션을 시작하고 중지할 수 있는 세션 관리자가 각 ETW를 제어합니다. 각 세션에는 한 공급자와 하나 또는 그 이상의 소비자가 있습니다.

1. JSON 파일에서 `ETW` 섹션을 찾습니다.

   ```
   {
       "Id": "ETW",
       "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch",
       "Parameters": {
           "LogName": "Microsoft-Windows-WinINet/Analytic",
           "Levels": "7"
       }
   },
   ```

1. `LogName`에 업로드할 로그의 이름을 입력합니다.

1. `Levels`에 업로드할 메시지의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.
   + **1** - 오류 메시지만 업로드됩니다.
   + **2** - 경고 메시지만 업로드됩니다.
   + **4** - 정보 메시지만 업로드됩니다.

   값을 적절히 조합하여 두 가지 이상의 메시지 유형을 포함할 수 있습니다. 예를 들어, **3**의 값은 오류 메시지(**1**) 및 경고 메시지(**2**)를 업로드합니다. 값 **7**을 지정하면 오류 메시지(**1**), 경고 메시지(**2**) 및 정보 메시지(**4**)가 업로드됩니다.

**CloudWatch Logs로 사용자 지정 로그(텍스트 기반 로그 파일)를 보내려면**

1. JSON 파일에서 `CustomLogs` 섹션을 찾습니다.

   ```
   {
       "Id": "CustomLogs",
       "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch",
       "Parameters": {
           "LogDirectoryPath": "C:\\CustomLogs\\",
           "TimestampFormat": "MM/dd/yyyy HH:mm:ss",
           "Encoding": "UTF-8",
           "Filter": "",
           "CultureName": "en-US",
           "TimeZoneKind": "Local",
           "LineCount": "5"
       }
   },
   ```

1. `LogDirectoryPath`에서 인스턴스에 로그가 저장된 경로를 입력합니다.

1. `TimestampFormat`에 사용할 타임스탬프 형식을 입력합니다. 지원되는 값에 대한 자세한 내용은 MSDN의 [Custom Date and Time Format Strings](https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx) 주제를 참조하세요.
**중요**  
원본 로그 파일에는 각 로그 줄의 시작 부분에 타임스탬프가 있어야 하며, 타임스탬프 뒤에는 공백이 있어야 합니다.

1. `Encoding`에 사용할 파일 인코딩을 입력합니다(예: UTF-8). 지원되는 값에 대한 자세한 내용은 MSDN의 [인코딩 클래스](http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx) 주제를 참조하세요.
**참고**  
표시 이름이 아니라 인코딩 이름을 사용합니다.

1. (선택 사항) `Filter`에 로그 이름의 접두사를 입력합니다. 모든 파일을 모니터링하려면 이 파라미터를 공백으로 둡니다. 지원되는 값에 대한 자세한 내용은 MSDN의 [FileSystemWatcherFilter 속성](https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.filter.aspx) 주제를 참조하세요.

1. (선택 사항) `CultureName`에 타임스탬프가 로그되는 로케일을 입력합니다. `CultureName`이 공백이면 기본적으로 Windows 인스턴스에서 현재 사용 중인 것과 같은 로케일로 설정됩니다. 지원되는 값에 대한 자세한 내용은 MSDN에서 [제품 동작](https://msdn.microsoft.com/en-us/library/cc233982.aspx) 주제의 표에 있는 `Language tag` 열을 참조하세요.
**참고**  
`div`, `div-MV`, `hu` 및 `hu-HU` 값은 지원되지 않습니다.

1. (선택 사항) `TimeZoneKind`에 `Local` 또는 `UTC`를 입력합니다. 로그의 타임스탬프에 표준 시간대 정보가 포함되어 있지 않을 때 이렇게 설정하여 표준 시간대 정보를 제공할 수 있습니다. 이 파라미터가 공백으로 남겨져 있고 타임스탬프에 시간대 정보가 포함되어 있지 않으면 CloudWatch Logs가 기본적으로 현지 표준 시간대로 설정됩니다. 타임스탬프에 표준 시간대 정보가 이미 포함된 경우 이 파라미터는 무시됩니다.

1. (선택 사항) `LineCount`에 로그 파일을 식별할 헤더의 줄의 수를 입력합니다. 예를 들어, IIS 로그 파일에 있는 헤더들은 사실상 동일합니다. **5**을 입력하면 로그 파일 헤더에서 처음 나오는 세 줄을 읽어 식별하는 식입니다. IIS 로그 파일에서 처음 나오는 세 줄은 날짜와 타임스탬프이지만 로그 파일 간에 타임스탬프가 반드시 다르지는 않습니다. 이러한 이유로, 로그 파일에 고유한 지문을 남기기 위해 실제 로그 데이터를 한 줄 이상 포함하는 것이 좋습니다.

**CloudWatch Logs로 IIS 로그 데이터를 보내려면**

1. JSON 파일에서 `IISLog` 섹션을 찾습니다.

   ```
   {
       "Id": "IISLogs",
       "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch",
       "Parameters": {
           "LogDirectoryPath": "C:\\inetpub\\logs\\LogFiles\\W3SVC1",
           "TimestampFormat": "yyyy-MM-dd HH:mm:ss",
           "Encoding": "UTF-8",
           "Filter": "",
           "CultureName": "en-US",
           "TimeZoneKind": "UTC",
           "LineCount": "5"
       }
   },
   ```

1. `LogDirectoryPath`에 개별 사이트에 대해 IIS 로그가 저장되는 폴더를 입력합니다(예: `C:\inetpub\logs\LogFiles\W3SVCn`).
**참고**  
W3C 로그 형식만 지원됩니다. IIS, NCSA 및 사용자 지정 형식은 지원되지 않습니다.

1. `TimestampFormat`에 사용할 타임스탬프 형식을 입력합니다. 지원되는 값에 대한 자세한 내용은 MSDN의 [사용자 지정 날짜 및 시간 형식 문자열](https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx) 주제를 참조하세요.

1. `Encoding`에 사용할 파일 인코딩을 입력합니다(예: UTF-8). 지원되는 값에 대한 자세한 내용은 MSDN의 [인코딩 클래스](http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx) 주제를 참조하세요.
**참고**  
표시 이름이 아니라 인코딩 이름을 사용합니다.

1. (선택 사항) `Filter`에 로그 이름의 접두사를 입력합니다. 모든 파일을 모니터링하려면 이 파라미터를 공백으로 둡니다. 지원되는 값에 대한 자세한 내용은 MSDN의 [FileSystemWatcherFilter 속성](https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.filter.aspx) 주제를 참조하세요.

1. (선택 사항) `CultureName`에 타임스탬프가 로그되는 로케일을 입력합니다. `CultureName`이 공백이면 기본적으로 Windows 인스턴스에서 현재 사용 중인 것과 같은 로케일로 설정됩니다. 지원되는 값에 대한 자세한 내용은 MSDN에서 [제품 동작](https://msdn.microsoft.com/en-us/library/cc233982.aspx) 주제의 표에 있는 `Language tag` 열을 참조하세요.
**참고**  
`div`, `div-MV`, `hu` 및 `hu-HU` 값은 지원되지 않습니다.

1. (선택 사항) `TimeZoneKind`에 `Local` 또는 `UTC`를 입력합니다. 로그의 타임스탬프에 표준 시간대 정보가 포함되어 있지 않을 때 이렇게 설정하여 표준 시간대 정보를 제공할 수 있습니다. 이 파라미터가 공백으로 남겨져 있고 타임스탬프에 시간대 정보가 포함되어 있지 않으면 CloudWatch Logs가 기본적으로 현지 표준 시간대로 설정됩니다. 타임스탬프에 표준 시간대 정보가 이미 포함된 경우 이 파라미터는 무시됩니다.

1. (선택 사항) `LineCount`에 로그 파일을 식별할 헤더의 줄의 수를 입력합니다. 예를 들어, IIS 로그 파일에 있는 헤더들은 사실상 동일합니다. **5**을 입력하면 로그 파일 헤더에서 처음 나오는 다섯 줄을 읽어 식별하는 식입니다. IIS 로그 파일에서 처음 나오는 세 줄은 날짜와 타임스탬프이지만 로그 파일 간에 타임스탬프가 반드시 다르지는 않습니다. 이러한 이유로, 로그 파일에 고유한 지문을 남기기 위해 실제 로그 데이터를 한 줄 이상 포함하는 것이 좋습니다.

#### 4단계: 흐름 제어 구성
<a name="configure_log_flow2012"></a>

각 데이터 형식의 `Flows` 섹션에 해당 대상이 있어야 합니다. 예를 들어 사용자 지정 로그, ETW 로그 및 시스템 로그를 CloudWatch Logs로 전송하려면 `Flows` 섹션에 `(CustomLogs,ETW,SystemEventLog),CloudWatchLogs`를 추가합니다.

**주의**  
유효하지 않은 단계를 추가하면 흐름이 차단됩니다. 예를 들어, 디스크 지표 단계를 추가하지만 인스턴스에 디스크가 없는 경우 흐름의 모든 단계가 차단됩니다.

같은 로그 파일을 두 개 이상의 대상으로 보낼 수 있습니다. 예를 들어, 애플리케이션 로그를 `CloudWatchLogs` 섹션에 정의된 두 개의 대상으로 전송하려면 `Flows` 섹션에 `ApplicationEventLog,(CloudWatchLogs,CloudWatchLogs2)`를 추가합니다.

**흐름 제어를 구성하는 방법**

1. `AWS.EC2.Windows.CloudWatch.json` 파일에서 `Flows` 섹션을 찾습니다.

   ```
   "Flows": {
       "Flows": [
         "PerformanceCounter,CloudWatch",
         "(PerformanceCounter,PerformanceCounter2), CloudWatch2",
         "(CustomLogs, ETW, SystemEventLog),CloudWatchLogs",
         "CustomLogs, CloudWatchLogs2",
         "ApplicationEventLog,(CloudWatchLogs, CloudWatchLogs2)"
       ]
   }
   ```

1. `Flows`에서 업로드할 각 데이터 형식(예: `ApplicationEventLog`) 및 대상(예: `CloudWatchLogs`)을 추가합니다.

이제 JSON 파일 편집이 끝났습니다. 이후 단계에서 사용하게 됩니다.

### 에이전트 시작
<a name="ec2config2012"></a>

Windows Server 2012 또는 Windows Server 2008을 실행하는 Amazon EC2 인스턴스가 CloudWatch Logs로 로그를 전송하도록 설정하려면 EC2Config 서비스(`EC2Config.exe)`를 사용합니다. 인스턴스에 EC2Config 4.0 이상이 있어야 다음 절차를 사용할 수 있습니다.

**EC2Config 4.x를 사용하여 CloudWatch를 구성하려면**

1. 이 절차에서 앞서 편집한 `AWS.EC2.Windows.CloudWatch.json` 파일의 인코딩을 확인합니다. BOM 없는 UTF-8 인코딩만 지원됩니다. Windows Server 2008 - 2012 R2 instance: `C:\Program Files\Amazon\SSM\Plugins\awsCloudWatch\`에서 다음 폴더에 파일을 저장합니다.

1. Windows Services 제어판을 사용하거나 PowerShell에서 다음 명령을 사용하여 SSM 에이전트(`AmazonSSMAgent.exe`)를 시작하거나 다시 시작합니다.

   ```
   PS C:\> Restart-Service AmazonSSMAgent
   ```

SSM 에이전트가 다시 시작한 후 구성 파일을 감지하고 CloudWatch 통합에 맞게 인스턴스를 구성합니다. 로컬 구성 파일에서 파라미터와 설정을 변경할 경우 SSM 에이전트를 다시 시작하여 변경 사항을 선택해야 합니다. 인스턴스에서 CloudWatch 통합을 비활성화하려면 `IsEnabled`을 `false`로 변경하고 구성 파일에 변경 사항을 저장합니다.