

# Amazon EC2 리소스 관리
<a name="resources"></a>

**리소스는 사용할 수 있는 엔터티입니다. Amazon EC2는 서비스의 기능을 사용할 때 리소스를 생성합니다. 예를 들어 Amazon EC2 리소스에는 이미지, 인스턴스, 플릿, 키 페어, 보안 그룹이 있습니다. 모든 Amazon EC2 리소스 유형에는 리소스를 설명하는 속성이 포함되어 있습니다. 예를 들어 이름, 설명, 리소스 식별자, Amazon 리소스 이름(ARN)이 있습니다.

Amazon EC2 리소스는 상주하는 AWS 리전 또는 영역에서만 사용됩니다. 예를 들어, Amazon Machine Image(AMI)는 AWS 리전에 한정되지만, AMI에서 시작하는 인스턴스는 이를 시작하는 영역에 한정됩니다. ARN을 사용하여 권한 정책에서 Amazon EC2 리소스를 지정할 수 있습니다.

AWS 계정에는 Amazon EC2에 대한 기본 할당량이 있습니다. 이러한 할당량은 생성할 수 있는 최대 리소스 수를 정의합니다. 예를 들어, 실행 중인 인스턴스 전반의 최대 vCPU 수에 대한 할당량이 있습니다. 인스턴스를 시작하거나 중지된 인스턴스를 시작할 때 할당량을 초과하게 되면 작업이 실패합니다.

리소스 ID나 태그를 사용하여 리전별로 AWS 계정의 특정 리소스를 검색할 수 있습니다. 여러 리전에서 특정 리소스 또는 리소스 유형을 검색하려면 Amazon EC2 Global View를 사용합니다.

**Topics**
+ [

# Amazon EC2 리소스에 대한 리전 선택
](using-regions-availability-zones-setup.md)
+ [

# Amazon EC2 리소스 찾기
](Using_Filtering.md)
+ [

# AWS Global View를 사용하여 리전 간 리소스 보기
](global-view.md)
+ [

# Amazon EC2 리소스 태깅
](Using_Tags.md)
+ [

# Amazon EC2 서비스 할당량
](ec2-resource-limits.md)

# Amazon EC2 리소스에 대한 리전 선택
<a name="using-regions-availability-zones-setup"></a>

Amazon EC2 리소스는 상주하는 AWS 리전 또는 영역에서만 사용됩니다. Amazon EC2 리소스를 생성할 때 리소스에 대한 리전을 선택합니다.

**고려 사항**
+ AWS 리소스는 일부 리전에서 사용할 수 없습니다. 리전에서 AWS 리소스 생성을 시작하기 전에 리전에서 필요한 리소스를 모두 생성할 수 있는지 확인합니다.
+ 일부 리전은 기본적으로 비활성화되어 있습니다. 이 리전을 사용하려면 먼저 활성화해야 합니다. 자세한 내용은 [AWS 리전](https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html)을 참조하세요.

**콘솔을 사용하여 리소스에 대한 리전을 선택하려면 다음을 수행하세요.**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 모음에서 **Regions**(리전) 선택기를 선택한 다음 리전을 선택합니다.  
![\[사용자 리전 확인\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/EC2_select_region.png)

1. 리전 선택기에는 해당 AWS 계정에서 사용할 수 있는 모든 리소스가 포함됩니다. 목록 하단에서 밑줄이 그어진 텍스트를 선택하면 계정에 사용할 수 없는 리전을 확인할 수 있습니다.

**AWS CLI를 사용하여 리소스의 리전을 선택하려면**  
기본 리전을 사용하도록 AWS CLI를 구성할 수 있습니다. 명령에서 리전을 지정하지 않으면 기본 리전이 사용됩니다. 특정 명령에 다른 리전을 사용하려면 다음 옵션을 추가합니다.

```
--region us-east-1
```

**Tools for PowerShell을 사용하여 리소스의 리전을 선택하려면**  
기본 리전을 사용하도록 Tools for Windows PowerShell을 구성할 수 있습니다. 명령에서 리전을 지정하지 않으면 기본 리전이 사용됩니다. 특정 명령에 다른 리전을 사용하려면 다음 파라미터를 추가합니다.

```
-Region us-east-1
```

# Amazon EC2 리소스 찾기
<a name="Using_Filtering"></a>

Amazon EC2 콘솔을 사용하여 리소스의 유형 목록을 얻을 수 있습니다. 사용자는 해당 명령 또는 API 작업을 이용하여 리소스의 각 유형 목록을 획득할 수 있습니다. 리소스가 많은 경우에 결과를 필터링하여 특정 기준에 부합하는 리소스만 포함시키거나 제외할 수 있습니다.

**Topics**
+ [콘솔 단계](#advancedsearch)
+ [명령줄 예제](#Filtering_Resources_CLI)
+ [글로벌 보기(리전 간)](#global-view-intro)

## 콘솔을 사용하여 리소스 나열 및 필터링
<a name="advancedsearch"></a>

**Contents**
+ [

### 콘솔을 사용하여 리소스 나열
](#listing-resources)
+ [

### 콘솔을 사용하여 리소스 필터링
](#console-filter)
  + [

#### 지원되는 필터
](#console-filters)
+ [

### 콘솔을 사용하여 필터 세트 저장
](#saved-filter-sets-in-the-ec2-console)
  + [

#### 주요 기능
](#saved-filter-sets-key-features)
  + [

#### 필터 세트 생성
](#create-saved-filter-sets)
  + [

#### 필터 세트 수정
](#modify-saved-filter-sets)
  + [

#### 필터 세트 삭제
](#delete-saved-filter-sets)

### 콘솔을 사용하여 리소스 나열
<a name="listing-resources"></a>

사용자는 콘솔을 이용하여 자주 사용하는 Amazon EC2 리소스의 유형 목록을 확인할 수 있습니다. 추가 리소스를 확인하려면 명령줄 인터페이스 또는 API 작업을 사용합니다.

**콘솔을 이용하여 EC2 리소스를 목록화하려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. Amazon EC2 리소스는 AWS 리전에 한정됩니다. 탐색 모음의 **리전** 선택기에서 리전을 선택합니다.  
![\[사용자 리전 확인\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/EC2_select_region.png)

1. 탐색 창에서 리소스 유형에 해당하는 옵션을 선택합니다. 예를 들어, 모든 인스턴스를 나열하려면 **인스턴스**를 선택합니다.

### 콘솔을 사용하여 리소스 필터링
<a name="console-filter"></a>

**리소스 목록을 필터링하려면**

1. 탐색 창에서 리소스 유형(예: [**인스턴스**])을 선택합니다.

1. 검색 필드를 선택합니다.

1. 목록에서 필터를 선택합니다.

1. 연산자를 선택합니다(예: **=(같음)(= (Equals))**. 일부 속성에는 선택할 수 있는 연산자가 더 많습니다. 모든 화면에서 운영자 선택을 지원하는 것은 아닙니다.

1. 필터 값을 선택합니다.

1. 선택한 필터를 편집하려면 필터 토큰(파란색 상자)을 선택하고 필요한 내용을 편집한 다음 **적용(Apply)**을 선택합니다. 모든 화면에서 선택한 필터 편집을 지원하는 것은 아닙니다.  
![\[필터를 편집합니다.\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/filter-edit.png)

1. 작업을 마쳤으면 필터를 제거합니다.

#### 지원되는 필터
<a name="console-filters"></a>

Amazon EC2 콘솔은 두 가지 유형의 필터링을 지원합니다.
+ *API 필터링*은 서버 측에서 발생합니다. 필터링은 API 호출에 적용되어 서버에서 반환되는 리소스 수를 줄일 수 있습니다. 대규모 리소스 집합을 빠르게 필터링할 수 있으며 서버와 브라우저 간의 데이터 전송 시간과 비용을 줄일 수 있습니다. API 필터링은 **=**(같음) 및 **:**(포함) 연산자를 지원하며 항상 대소문자를 구분합니다.
+ *클라이언트 필터링*은 클라이언트 측에서 발생합니다. 브라우저에서 이미 사용 가능한 데이터(즉, API에서 이미 반환된 데이터)를 필터링할 수 있습니다. 클라이언트 필터링은 API 필터와 함께 작동하여 브라우저에서 더 작은 데이터 세트로 필터링합니다. **=**(같음) 및 **:**(포함) 연산자 외에도, 클라이언트 필터링은 **>=**(크거나 같음)와 같은 범위 연산자와 **\$1=**(같지 않음)와 같은 부정(역) 연산자도 지원할 수 있습니다.

Amazon EC2 콘솔에서는 다음과 같은 유형의 검색을 지원합니다.

**키워드로 검색**  
키워드로 검색은 검색할 속성이나 태그 키를 지정하지 않고도 리소스의 모든 속성이나 태그에서 값을 검색할 수 있는 자유 텍스트 검색입니다.  
모든 키워드 검색은 *클라이언트 필터링*을 사용합니다.
키워드로 검색하려면 검색하려는 키워드를 검색 필드에 입력 또는 붙여넣기한 다음 **Enter**를 누릅니다. 예를 들어 `123`을 검색하면 IP 주소, 인스턴스 ID, VPC ID 또는 AMI ID 또는 이름과 같은 태그에 *123*이 있는 모든 인스턴스가 일치합니다. 자유 텍스트 검색에서 예기치 않은 일치 항목이 반환되는 경우 추가 필터를 적용하세요.

**속성으로 검색**  
속성으로 검색하면 모든 리소스에서 특정 속성을 검색할 수 있습니다.  
속성 검색은 선택한 속성에 따라 *API 필터링* 또는 *클라이언트 필터링*을 사용합니다. 속성 검색을 수행할 때 그에 따라 속성이 그룹화됩니다.
예를 들어, 모든 인스턴스에 대한 **인스턴스 상태** 속성을 검색하여 `stopped` 상태에 있는 인스턴스만 반환할 수 있습니다. 방법:  

1. **인스턴스** 화면의 검색 필드에 `Instance state`를 입력합니다. 문자를 입력하면 **인스턴스 상태**에 대해 **API 필터** 및 **클라이언트 필터**의 두 가지 필터 유형이 표시됩니다.

1. 서버 측에서 검색하려면 **API 필터** 아래 **인스턴스 상태**를 선택합니다. 클라이언트 측에서 검색하려면 **클라이언트 필터** 아래 **인스턴스 상태(클라이언트)**를 선택합니다.

   선택한 속성에 사용할 수 있는 연산자 목록이 나타납니다.

1. **=**(같음) 연산자를 선택합니다.

   선택한 속성 및 연산자에 사용할 수 있는 값 목록이 나타납니다.

1. 목록에서 **중지됨(Stopped)**을 선택합니다.

**태그로 검색**  
태그로 검색하면 현재 표시된 테이블의 리소스를 태그 키 또는 태그 값으로 필터링할 수 있습니다.  
태그 검색은 기본 설정 창의 설정에 따라 *API 필터링* 또는 *클라이언트 필터링* 중 하나를 사용합니다.  

**태그에 대한 API 필터링 보장**

1. **기본 설정(Preferences)** 창을 엽니다.

1. **정규식 일치 사용** 확인란을 선택 취소합니다. 이 확인란을 선택하면 클라이언트 필터링이 수행됩니다.

1. **대소문자 구분 일치 사용** 확인란을 선택합니다. 이 확인란을 선택 취소하면 클라이언트 필터링이 수행됩니다.

1. **확인**을 선택합니다.
태그별로 검색할 때 다음 값을 사용할 수 있습니다.  
+ **(비어 있음)((empty))** - 지정된 태그 키는 있지만 태그 값은 없는 모든 리소스를 찾습니다.
+ **모든 값(All values)** - 지정된 태그 키와 임의의 태그 값을 가진 모든 리소스를 찾습니다.
+ **태그 없음(Not tagged)** - 지정된 태그 키가 없는 모든 리소스를 찾습니다.
+ 표시된 값 - 지정된 태그 키와 지정된 태그 값을 가진 모든 리소스를 찾습니다.

다음 기법을 사용하여 검색을 향상시키거나 구체화할 수 있습니다.

**역검색**  
역검색을 통해, 지정된 값과 일치하지 **않는** 리소스를 검색할 수 있습니다. **인스턴스** 및 **AMI** 화면에서는 **\$1=**(같지 않음) 또는 **\$1:**(포함하지 않음) 연산자를 선택한 다음 값을 선택하여 역검색을 수행합니다. 다른 화면에서 역검색은 검색 키워드 앞에 느낌표(\$1)를 붙여 수행됩니다.  
역검색은 *클라이언트* 필터의 키워드 검색 및 속성 검색에서만 지원됩니다. API 필터에 대한 속성 검색에서는 지원되지 않습니다.
예를 들어, 모든 인스턴스의 **인스턴스 상태** 속성을 검색하여 `terminated` 상태의 모든 인스턴스를 제외할 수 있습니다. 방법:  

1. **인스턴스** 화면의 검색 필드에 `Instance state`를 입력합니다. 문자를 입력하면 **인스턴스 상태**에 대해 **API 필터** 및 **클라이언트 필터**의 두 가지 필터 유형이 표시됩니다.

1. **클라이언트 필터(Client filters)** 아래 **인스턴스 상태(클라이언트)(Instance state (client))**를 선택합니다. 역검색은 *클라이언트* 필터에서만 지원됩니다.

   선택한 속성에 사용할 수 있는 연산자 목록이 나타납니다.

1. **\$1=**(같지 않음)을 선택한 다음 **종료(terminated)**를 선택합니다.
인스턴스 상태 속성을 기준으로 인스턴스를 필터링하려면 **인스턴스 상태** 열의 검색 아이콘(![\[\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/search.png))을 사용할 수도 있습니다. 더하기 기호(**\$1**)의 검색 아이콘은 해당 속성에 *부합*하는 모든 인스턴스를 표시합니다. 빼기 기호(**-**)의 검색 아이콘은 해당 속성에 부합하는 모든 인스턴스를 *제외*합니다.  
다음은 역검색을 사용한 다른 예제입니다. `launch-wizard-1`라는 보안 그룹이 할당되지 **않은** 모든 인스턴스를 나열하려면 **클라이언트 필터(Client filters)**에서 **보안 그룹 이름(Security group name)** 속성으로 검색하여 **\$1=**을 선택한 다음 검색 창에서 `launch-wizard-1`을 입력합니다.

**부분 검색**  
부분 검색을 사용하면 부분 문자열 값을 검색할 수 있습니다. 부분 검색을 수행하려면 검색할 키워드의 일부만 입력합니다. **인스턴스(Instances)** 및 **AMI** 화면에서 부분 검색은 오직 **:**(포함) 연산자를 사용하여 수행할 수 있습니다. 다른 화면에서는 클라이언트 필터 속성을 선택하고 검색할 키워드의 일부만 즉시 입력할 수 있습니다. 예를 들어, **인스턴스 유형(Instance type)** 화면에서 모든 `t2.micro`, `t2.small` 및 `t2.medium` 인스턴스를 검색하려면 **인스턴스 유형(Instance Type)** 속성으로 검색하고 키워드로 `t2`를 입력합니다.

**정규식 검색**  
정규식 검색을 사용하려면 **기본 설정** 창에서 **정규식 일치 사용**을 선택해야 합니다.  
필드의 값이 특정 패턴에 맞아야 하는 경우 정규식을 유용하게 활용할 수 있습니다. 예를 들어, `s`로 시작하는 값을 검색하려면 `^s`를 검색합니다. `xyz`로 끝나는 값을 검색하려면 `xyz$`를 검색합니다. 또는 뒤에 하나 이상의 문자가 오는 숫자로 시작하는 값을 검색하려면 `[0-9]+.*`를 검색합니다.  
정규식 검색은 클라이언트 필터에 대한 키워드 검색 및 속성 검색에서만 지원됩니다. API 필터에 대한 속성 검색에서는 지원되지 않습니다.

**대소문자 구분 검색**  
대/소문자 구분 검색을 사용하려면 **기본 설정** 창에서 **대소문자 구분 일치 사용** 확인란을 선택해야 합니다. 대소문자를 구분하는 기본 설정은 클라이언트 및 태그 필터에만 적용됩니다.  
API 필터는 항상 대소문자를 구분합니다.

**와일드카드 검색**  
0개 이상의 문자와 일치시키려면 `*` 와일드카드를 사용합니다. 0개 또는 1개 이상의 문자와 일치시키려면 `?` 와일드카드를 사용합니다. 예를 들어, `prod`, `prods` 및 `production` 값이 있는 데이터 세트가 있는 경우 `prod*` 검색은 모든 값과 일치하지만 `prod?`는 `prod`와 `prods`와만 일치합니다. 리터럴 값을 사용하려면 백슬래시(\$1)로 이스케이프합니다. 예를 들어, "`prod\*`"는 `prod*`와 일치합니다.  
와일드카드 검색은 API 필터에 대한 속성 및 태그 검색에서만 지원됩니다. 클라이언트 필터에 대한 키워드 검색 및 속성 및 태그 검색에서는 지원되지 않습니다.

**검색 결합**  
일반적으로 동일한 속성을 가진 여러 필터는 `OR`을 사용하여 자동으로 조인됩니다. 예를 들어, `Instance State : Running` 및 `Instance State : Stopped`를 검색하면 실행 중이거나 중지된 모든 인스턴스가 반환됩니다. `AND`를 사용하여 검색을 조인하려면 여러 다른 속성을 검색합니다. 예를 들어 `Instance State : Running` 및 `Instance Type : c4.large`를 검색하면 `c4.large` 유형이면서 실행 중인 상태의 인스턴스만 반환됩니다.

### 콘솔을 사용하여 필터 세트 저장
<a name="saved-filter-sets-in-the-ec2-console"></a>

*저장된 필터 세트*는 Amazon EC2 리소스를 효율적으로 보기 위해 생성하고 재사용할 수 있는 사용자 지정 필터 그룹입니다. 이 기능은 워크플로를 간소화하여 특정 리소스 보기에 빠르게 액세스할 수 있도록 합니다.

저장된 필터 세트는 Amazon EC2 콘솔에서만 지원되며, 현재 **볼륨** 페이지에서만 사용할 수 있습니다.

#### 주요 기능
<a name="saved-filter-sets-key-features"></a>
+ **사용자 지정:** 필요에 맞게 조정된 필터 세트를 생성합니다. 예를 들어 지정된 날짜 이후에 생성된 `gp3` 볼륨만 표시하도록 필터 세트를 생성할 수 있습니다.
+ **기본 필터:** 페이지의 기본 필터 세트를 설정하면 페이지로 이동할 때 기본 필터가 자동으로 적용됩니다. 기본값이 설정되지 않으면 필터가 적용되지 않습니다.
+ **간편한 적용:** 저장된 필터 세트를 선택하여 즉시 적용합니다. 그러면 Amazon EC2에 관련 리소스가 표시되고 활성 필터는 파란색 토큰으로 표시됩니다.
+ **유연성:** 필요에 따라 필터 세트를 생성, 수정, 삭제합니다.

#### 필터 세트 생성
<a name="create-saved-filter-sets"></a>

**새 필터 세트를 생성하려면 다음과 같이 하세요.**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **볼륨**을 선택합니다.
**참고**  
저장된 필터 세트는 현재 **볼륨**에만 사용할 수 있습니다.

1. 검색 필드에서 필터 세트의 필터를 선택합니다.

1. **필터 지우기** 버튼 옆의 화살표를 선택하고 **새 필터 세트 저장**을 선택합니다.

1. **필터 세트 저장** 창에서 다음을 수행합니다.

   1. **필터 세트 이름**에서 필터 세트 이름을 입력합니다.

   1. (선택 사항) **필터 세트 설명** 필드에서 필터 세트 설명을 입력합니다.

   1. (선택 사항) 필터 세트를 기본 필터로 설정하려면 **기본값으로 설정** 확인란을 선택합니다.
**참고**  
콘솔 페이지를 열 때마다 기본 필터가 자동으로 적용됩니다.

   1. **저장**을 선택합니다.

#### 필터 세트 수정
<a name="modify-saved-filter-sets"></a>

**필터 세트를 수정하려면 다음과 같이 하세요.**

1. **저장된 필터 세트** 목록에서 수정할 필터를 선택합니다.

1. 필터를 추가하려면 검색 필드에서 필터 세트에 추가할 필터를 선택합니다. 세트에서 필터를 삭제하려면 필터 토큰에서 **X**를 선택합니다.

1. **필터 지우기** 버튼 옆의 화살표를 선택하고 **필터 세트 수정**을 선택합니다.

1. **필터 세트 수정** 창에서 다음을 수행합니다.

   1. (선택 사항) 필터 세트를 기본 필터로 설정하려면 **기본값으로 설정** 확인란을 선택합니다.
**참고**  
콘솔 페이지를 열 때마다 기본 필터가 자동으로 적용됩니다.

   1. **수정**을 선택합니다.

#### 필터 세트 삭제
<a name="delete-saved-filter-sets"></a>

**필터 세트를 삭제하려면 다음과 같이 하세요.**

1. **저장된 필터 세트** 목록에서 삭제할 필터를 선택합니다.

1. **필터 지우기** 버튼 옆의 화살표를 선택하고 **필터 세트 삭제**를 선택합니다.

1. **필터 세트 삭제** 창에서 필터를 검토하여 삭제하려는 필터임을 확인한 다음 **삭제**를 선택합니다.

## 명령줄을 사용하여 나열 및 필터링
<a name="Filtering_Resources_CLI"></a>

각 리소스 유형에는 본인이 해당 유형의 리소스를 설명하거나 나열하거나 가져오는 데 사용하는 해당 API 작업이 있습니다. 결과 리소스 목록은 길이가 길 수 있기 때문에 결과를 필터링하여 특정 기준에 부합하는 리소스만 포함시키는 것이 더 빠르고 유용할 수 있습니다.

**필터링 고려 사항**
+ 단일 요청에서 최대 50개의 필터와 필터당 최대 200개의 값을 지정할 수 있습니다.
+ 필터 문자열의 최대 길이는 255자입니다.
+ 또한 필터 값과 함께 와일드카드를 사용할 수 있습니다. 별표(\$1)는 0개 이상의 문자에 해당하고 물음표(?)는 0개 또는 1개의 문자에 해당합니다.
+ 필터 값은 대소문자를 구분합니다.
+ 검색에는 와이드카드 문자의 리터럴 값이 포함될 수 있고 문자 앞에 백슬래시를 사용하면 벗어날 수 있습니다. 예를 들어, `\*amazon\?\\` 값은 리터럴 문자열 `*amazon?\`을 검색합니다.
+ null의 필터 값은 지정할 수 없습니다. 대신 클라이언트 측 필터링을 사용합니다. 예를 들어 다음 명령은 **--query** 옵션을 사용하고 키 페어 없이 시작된 인스턴스의 ID를 반환합니다.

  ```
  aws ec2 describe-instances \
      --query 'Reservations[*].Instances[?!not_null(KeyName)].InstanceId' \
      --output text
  ```

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

**Example 예: 단일 필터 지정**  
[https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html)를 사용하여 Amazon EC2 인스턴스를 나열할 수 있습니다. 필터가 없으면 응답에는 모든 리소스에 대한 정보가 포함됩니다. 다음 옵션을 사용하여 출력에 실행 중인 인스턴스만 포함할 수 있습니다.  

```
--filters Name=instance-state-name,Values=running
```
실행 중인 인스턴스의 인스턴스 ID만 나열하려면 다음과 같이 `--query` 옵션을 추가합니다.  

```
--query "Reservations[*].Instances[*].InstanceId"
```

**Example 예: 여러 필터 또는 필터 값 지정**  
여러 필터 또는 여러 필터 값을 지정하는 경우, 리소스는 출력에 포함할 모든 필터와 일치해야 합니다.  
다음 옵션을 사용하여 유형이 `m5.large` 또는 `m5d.large`인 모든 인스턴스를 나열할 수 있습니다.  

```
--filters Name=instance-type,Values=m5.large,m5d.large
```
다음 옵션을 사용하여 유형이 `t2.micro`인 중지된 모든 인스턴스를 나열할 수 있습니다.  

```
--filters Name=instance-state-name,Values=stopped Name=instance-type,Values=t2.micro
```

**Example 예: 필터 값에 와일드카드 사용**  
[describe-snapshots](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html)와 함께 다음 옵션을 사용하여 설명이 ‘database’인 스냅샷만 반환할 수 있습니다.  

```
--filters Name=description,Values=database
```
\$1 와일드카드는 0개 이상의 문자와 일치합니다. 다음 옵션을 사용하여 설명에 database 단어가 포함된 스냅샷만 반환할 수 있습니다.  

```
--filters Name=description,Values=*database*
```
? 와일드카드는 정확히 1개 문자와 일치합니다. 다음 옵션을 사용하여 설명이 문자 하나가 뒤에 있는 ‘database’ 또는 ‘database’인 스냅샷만 반환할 수 있습니다.  

```
--filters Name=description,Values=database?
```
다음 옵션을 사용하여 설명이 문자 4개까지 뒤에 있는 ‘database’인 스냅샷만 반환할 수 있습니다. ‘database’ 뒤에 5개 이상의 문자가 있는 설명은 제외됩니다.  

```
--filters Name=description,Values=database????
```

**Example 예: 날짜를 기준으로 필터링**  
AWS CLI를 사용하면 JMESPath를 통해 표현식을 사용하여 결과를 필터링할 수 있습니다. 예를 들어, 다음 [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html) 명령에서는 지정된 날짜 이전에 지정된 AWS 계정에서 생성된 모든 스냅샷의 ID가 표시됩니다. 소유자를 지정하지 않으면 모든 퍼블릭 스냅샷이 결과에 포함됩니다.  

```
aws ec2 describe-snapshots \
    --filters Name=owner-id,Values=123456789012 \
    --query "Snapshots[?(StartTime<='2024-03-31')].[SnapshotId]" \
    --output text
```
다음 예제에서는 지정된 날짜 범위에 생성된 모든 스냅샷의 ID가 표시됩니다.  

```
aws ec2 describe-snapshots \
    --filters Name=owner-id,Values=123456789012 \
    --query "Snapshots[?(StartTime>='2024-01-01') && (StartTime<='2024-12-31')].[SnapshotId]" \
    --output text
```

**예: 태그를 기준으로 필터링**  
태그에 따라 리소스 목록을 필터링하는 방법에 대한 예는 [태그로 Amazon EC2 리소스 필터링](filtering-the-list-by-tag.md) 단원을 참조하십시오.

------
#### [ PowerShell ]

**Example 예: 단일 필터 지정**  
[https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html)를 사용하여 Amazon EC2 인스턴스를 나열할 수 있습니다. 필터가 없으면 응답에는 모든 리소스에 대한 정보가 포함됩니다. 다음과 같은 파라미터를 사용하여 출력에 실행 중인 인스턴스만 포함할 수 있습니다.  

```
-Filter @{Name="instance-state-name"; Values="running"}
```

다음 예제에서는 실행 중인 인스턴스의 인스턴스 ID만 나열됩니다.

```
(Get-EC2Instance -Filter @{Name="instance-state-name"; Values="stopped"}).Instances | Select InstanceId
```

**Example 예: 여러 필터 또는 필터 값 지정**  
여러 필터 또는 여러 필터 값을 지정하는 경우, 리소스는 결과에 포함할 모든 필터와 일치해야 합니다.  
다음 옵션을 사용하여 유형이 `m5.large` 또는 `m5d.large`인 모든 인스턴스를 나열할 수 있습니다.  

```
-Filter @{Name="instance-type"; Values="m5.large", "m5d.large"}
```
다음 옵션을 사용하여 유형이 `t2.micro`인 중지된 모든 인스턴스를 나열할 수 있습니다.  

```
-Filter @{Name="instance-state-name"; Values="stopped"}, @{Name="instance-type"; Values="t2.micro"}
```

------

## Amazon EC2 Global View를 사용하여 리전 간 리소스 보기
<a name="global-view-intro"></a>

Amazon EC2 Global View를 사용하면 Amazon EC2 및 Amazon VPC 리소스를 단일 AWS 리전에서, 또는 단일 콘솔에서 동시에 여러 리전에서 보고 검색할 수 있습니다. 자세한 내용은 [AWS Global View를 사용하여 리전 간 리소스 보기](global-view.md) 섹션을 참조하세요.

# AWS Global View를 사용하여 리전 간 리소스 보기
<a name="global-view"></a>

AWS Global View를 사용하면 일부 Amazon EC2 및 Amazon VPC 리소스를 단일 콘솔에서 단일 AWS 리전에 사용하거나 여러 리전에 걸쳐 사용할 수 있습니다. AWS 또한 Global View는 여러 리전에서 특정 리소스 또는 특정 리소스 유형을 동시에 검색할 수 있는 *글로벌 검색* 기능을 제공합니다.

AWS Global View에서는 어떤 식으로든 리소스를 수정할 수 없습니다.

**지원되는 리소스**  
AWS Global View를 사용하면 AWS 계정이 활성화된 모든 리전에서 다음 리소스에 대한 글로벌 요약을 볼 수 있습니다.
+ Auto Scaling 그룹
+ 가용 영역
+ 용량 예약 및 용량 블록
+ DB 클러스터
+ DB 인스턴스
+ DHCP 옵션 세트
+ 외부 전용 인터넷 게이트웨이
+ 탄력적 IP
+ 엔드포인트 서비스
+ 인스턴스
+ 인터넷 게이트웨이
+ 관리형 접두사 목록
+ NAT 게이트웨이
+ 네트워크 ACL
+ 네트워크 인터페이스
+ Outpost
+ 라우팅 테이블
+ S3 버킷
+ 보안 그룹
+ 서브넷
+ 볼륨
+ VPC
+ VPC 엔드포인트
+ VPC 피어링 연결

**필수 권한**  
사용자에게 다음과 같은 AWS Global View 사용 권한이 있어야 합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
  {
    "Effect": "Allow",
    "Action": [
      "autoscaling:DescribeAutoScalingGroups",
      "ec2:DescribeRegions",
      "ec2:DescribeCapacityReservations",
      "ec2:DescribeDhcpOptions",
      "ec2:DescribeEgressOnlyInternetGateways",
      "ec2:DescribeAddresses",
      "ec2:DescribeVpcEndpointServices",
      "ec2:DescribeInstances",
      "ec2:DescribeInternetGateways",
      "ec2:DescribePrefixLists",
      "ec2:DescribeNatGateways",
      "ec2:DescribeNetworkAcls",
      "ec2:DescribeNetworkInterfaces",
      "ec2:DescribeRouteTables",
      "ec2:DescribeSecurityGroups",
      "ec2:DescribeSubnets",
      "ec2:DescribeVolumes",
      "ec2:DescribeVpcs",
      "ec2:DescribeVpcEndpoints",
      "ec2:DescribeVpcPeeringConnections",
      "ec2:DescribeAvailabilityZones",
      "ec2:DescribeVpcEndpointServiceConfigurations",
      "ec2:DescribeManagedPrefixLists",
      "outposts:ListOutposts",
      "rds:DescribeDBInstances",
      "rds:DescribeDBClusters",
      "s3:ListAllMyBuckets"
  ],
  "Resource": "*"
  }]
}
```

------

**AWS Global View를 사용하려면**  
[AWS Global View 콘솔](https://console.aws.amazon.com/ec2globalview/home#RegionsAndZones)에 로그인합니다.

**중요**  
Firefox의 프라이빗 창을 사용하여 AWS Global View에 액세스할 수 없습니다.

콘솔은 다음 구성 요소로 이루어져 있습니다.
+ **리전 탐색기** - 이 페이지에는 다음 섹션이 포함되어 있습니다.
  + **요약** - 모든 리전의 리소스에 대한 전반적인 개요를 제공합니다.

    **모든 리소스 요약 표시**를 확장하면 AWS 계정이 활성화된 리전 수가 표시됩니다. 나머지 필드는 현재 해당 리전에 있는 리소스의 수를 나타냅니다. 모든 리전에서 해당 유형의 리소스를 보려면 링크 중 하나를 선택합니다. 예를 들어 **인스턴스(Instances)** 레이블 아래의 링크가 **10개 리전의 29개(29 in 10 Regions)**인 경우 현재 `10`개 리전에 `29`개의 인스턴스가 있음을 나타냅니다. 29개 인스턴스의 전체 목록을 보려면 링크를 선택합니다.
  + **리전 탐색기** - 모든 AWS 리전(계정이 활성화되지 않은 리전 포함)을 나열하고 각 리전의 각 리소스 유형에 대한 합계를 제공합니다.

    해당 리전에 있는 모든 유형의 모든 리소스를 보려면 리전 이름을 선택합니다. 예를 들어 해당 리전의 모든 VPC, 서브넷, 인스턴스, 보안 그룹, 볼륨 및 Auto Scaling 그룹을 보려면 **아프리카(케이프타운) af-south-1(Africa(Cape Town) af-south-1)**을 선택합니다. 또는 리전을 선택하고 **선택한 리전의 리소스 보기(View resources for selected Region)**를 선택합니다.

    특정 리전에 있는 특정 유형의 리소스만 보려면 해당 리전의 해당 리소스 유형에 대한 값을 선택합니다. 예를 들어 해당 리전의 인스턴스만 보려면 **아프리카(케이프타운) af-south-1(Africa (Cape Town) af-south-1)**의 인스턴스에 대한 값을 선택합니다.
+ **글로벌 검색** - 이 페이지에서는 단일 리전 또는 여러 리전의 특정 리소스 또는 특정 리소스 유형을 검색할 수 있습니다. 또한 특정 리소스에 대한 세부 정보를 볼 수 있습니다.

  리소스를 검색하려면 그리드 앞의 필드에 검색 기준을 입력합니다. 리전, 리소스 유형 및 리소스에 할당된 태그를 기준으로 검색할 수 있습니다.

  특정 리소스에 대한 세부 정보를 보려면 그리드에서 해당 리소스를 선택합니다. 리소스의 리소스 ID를 선택하여 해당 콘솔에서 리소스를 열 수도 있습니다. 예를 들어 인스턴스 ID를 선택하여 Amazon EC2 콘솔에서 인스턴스를 열거나, 서브넷 ID를 선택하여 Amazon VPC 콘솔에서 서브넷을 엽니다.
+ **리전 및 영역** - 이 페이지에서는 사용 가능한 모든 리전, 가용 영역, 로컬 영역 및 Wavelength 영역을 보고 관리할 수 있습니다.

  **리전** 탭에서 모든 AWS 리전을 볼 수 있습니다. **상태** 열에는 AWS 계정이 활성화된 리전이 표시됩니다. 이 페이지에서 리전을 선택하여 다음을 수행할 수 있습니다.
  + 리전 코드, 지역 및 각 영역 유형의 수와 같은 리전 세부 정보를 봅니다.

    가용 영역, 로컬 영역 및 Wavelength 영역 목록과 리전의 리소스 목록을 볼 수도 있습니다.
  + 리전을 활성화 또는 비활성화합니다.

  각 영역 탭에서 해당 영역 유형의 목록을 볼 수 있습니다. **로컬 영역** 탭에서 로컬 영역을 옵트인할 수 있습니다.

**작은 정보**  
특정 리전 또는 리소스 유형만 사용하는 경우 해당 리전 및 리소스 유형만 표시하도록 AWS Global View를 사용자 지정할 수 있습니다. 표시된 리전 및 리소스 유형을 사용자 지정하려면 탐색 패널에서 **설정**을 선택한 다음 **리소스** 및 **리전** 탭에서 AWS Global View에 표시하지 않으려는 리전 및 리소스 유형을 선택합니다.

# Amazon EC2 리소스 태깅
<a name="Using_Tags"></a>

고유 메타데이터를 *태그*의 형태로 각 리소스에 배정하면 인스턴스, 이미지 및 기타 Amazon EC2 리소스를 쉽게 관리할 수 있습니다. 태그를 사용하면 용도, 소유자 또는 환경을 기준으로 하는 등 AWS 리소스를 다양한 방식으로 분류할 수 있습니다. 이 기능은 동일 유형의 리소스가 많을 때 유용합니다. 지정한 태그에 따라 특정 리소스를 빠르게 식별할 수 있습니다. 이 주제에서는 태그를 설명하고 태그를 생성하는 방법을 보여 줍니다.

**주의**  
태그 키 및 해당 값은 다양한 API 호출에 의해 반환됩니다. `DescribeTags`에 대한 액세스를 거부해도 다른 API가 반환한 태그에 대한 액세스는 자동으로 거부되지 않습니다. 민감한 데이터를 태그에 포함하지 않는 것이 가장 좋습니다.

**Topics**
+ [

## 태그 기본 사항
](#tag-basics)
+ [

## 리소스에 태그 지정
](#tag-resources)
+ [

## 태그 제한
](#tag-restrictions)
+ [

## 태그 및 액세스 관리
](#tag-resources-access-management)
+ [

## 결제를 위한 리소스 태깅
](#tag-resources-for-billing)
+ [리소스 태그 지정 권한](supported-iam-actions-tagging.md)
+ [태그 추가 및 제거](Using_Tags_Console.md)
+ [태그로 리소스 필터링](filtering-the-list-by-tag.md)
+ [인스턴스 메타데이터를 사용하여 태그 보기](work-with-tags-in-IMDS.md)

## 태그 기본 사항
<a name="tag-basics"></a>

태그는 AWS 리소스에 할당하는 레이블입니다. 각 태그는 사용자가 정의하는 *키*와 선택적 *값*으로 구성됩니다.

태그를 사용하면 용도, 소유자 또는 환경을 기준으로 하는 등 AWS 리소스를 다양한 방식으로 분류할 수 있습니다. 예를 들어, 계정의 Amazon EC2 인스턴스에 대해 각 인스턴스의 소유자나 스택 수준을 추적하는 데 도움이 되는 태그 세트를 정의할 수 있습니다.

다음 다이어그램은 태그 지정 방식을 설명합니다. —이 예에서는 두 가지 태그, 즉 `Owner`라는 키가 있는 태그 하나와 `Stack`이라는 키가 있는 태그 하나를 각 인스턴스에 배정했습니다. 또한 각 태그에는 연결된 값이 있습니다.

![\[태그 예제\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/Tag_Example.png)


각 리소스 유형에 대한 요건을 충족하는 태그 키 세트를 고안하는 것이 좋습니다. 일관된 태그 키 세트를 사용하면 리소스를 보다 쉽게 관리할 수 있습니다. 추가하는 태그에 따라 리소스를 검색하고 필터링할 수 있습니다. 효과적인 리소스 태깅 전략을 구현하는 방법에 관한 자세한 내용은 [태깅 모범 사례 AWS 백서](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html)를 참조하세요.

태그는 Amazon EC2에는 의미가 없으며 엄격하게 문자열로 해석됩니다. 또한 태그는 리소스에 자동으로 배정되지 않습니다. 태그 키와 값을 편집할 수 있으며 언제든지 리소스에서 태그를 제거할 수 있습니다. 태그의 값을 빈 문자열로 설정할 수 있지만 태그의 값을 Null로 설정할 수는 없습니다. 해당 리소스에 대해 키가 기존 태그와 동일한 태그를 추가하는 경우 새 값이 이전 값을 덮어씁니다. 리소스를 삭제하면 리소스 태그도 삭제됩니다.

**참고**  
리소스를 삭제한 후에도 해당 태그가 콘솔, API 및 CLI 출력에 잠시 동안 표시될 수 있습니다. 이러한 태그는 리소스에서 서서히 연결이 해제되고 영구적으로 삭제됩니다.

## 리소스에 태그 지정
<a name="tag-resources"></a>

Amazon EC2 콘솔을 사용하는 경우, 관련 리소스 화면에서 **태그** 탭을 사용하여 리소스에 태그를 적용하거나 AWS Resource Groups 콘솔에서 **태그 편집기**를 사용할 수 있습니다. 일부 리소스 화면을 사용하면 리소스를 생성할 때 리소스에 대해 태그를 지정할 수 있습니다. 예를 들어 `Name`의 키가 있는 태그와 지정하는 값이 있습니다. 대부분의 경우, 콘솔은 리소스 생성 직후(리소스 생성 중이 아니라) 태그를 적용합니다. 콘솔은 `Name` 태그에 따라 리소스를 조직할 수도 있지만 이 태그는 Amazon EC2 서비스에 대한 의미가 없습니다.

Amazon EC2 API, AWS CLI 또는 AWS SDK를 사용하는 경우 `CreateTags` EC2 API 작업을 사용하여 기존 리소스에 태그를 적용할 수 있습니다. 또한 일부 리소스 생성 작업에서는 리소스 생성 시 리소스의 태그를 지정할 수 있습니다. 리소스 생성 도중 태그를 적용할 수 없는 경우, 리소스 생성 프로세스가 롤백됩니다. 이는 태그를 사용하여 리소스가 생성되거나 아예 리소스가 생성되지 않도록 하고 언제든 태그 지정되지 않은 리소스가 남지 않게 합니다. 생성 시 리소스에 태그를 지정하면 리소스 생성 후 사용자 지정 태그 지정 스크립트를 실행할 필요가 없습니다. 사용자가 생성 시 리소스 태그를 지정할 수 있도록 하는 방법에 대한 자세한 내용은 [생성 시 Amazon EC2 리소스 태그 지정에 대한 권한 부여](supported-iam-actions-tagging.md) 섹션을 참조하세요.

생성 시 태그를 지원하는 Amazon EC2 API 작업에 IAM 정책의 태그 기반 리소스 수준 권한을 적용하여 생성 시 리소스에 태그를 지정할 수 있는 사용자와 그룹을 세밀하게 제어할 수 있습니다. 리소스를 생성하면 태그가 즉시 적용되기 때문에 생성 단계부터 리소스를 적절하게 보호할 수 있습니다. 따라서 태그를 기반으로 리소스 사용을 제어하는 리소스 권한이 즉시 발효됩니다.— 이에 따라 더욱 정확한 리소스 추적 및 보고가 가능합니다. 새 리소스에서 태그 지정 사용을 적용하고 리소스에서 어떤 태그 키와 값이 설정되는지 제어할 수 있습니다.

IAM 정책에서 `CreateTags` 및 `DeleteTags` Amazon EC2 API 작업에 리소스 수준 권한을 적용하여 기존 리소스에서 어떤 태그 키와 값이 설정되는지 제어할 수도 있습니다. 자세한 내용은 [예: 태그 리소스](ExamplePolicies_EC2.md#iam-example-taggingresources) 섹션을 참조하세요.

결제를 위한 리소스 태깅에 대한 자세한 내용은 *AWS Billing 사용 설명서*에서 [비용 할당 태그 사용](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)을 참조하세요.

## 태그 제한
<a name="tag-restrictions"></a>

태그에 적용되는 기본 제한은 다음과 같습니다.
+ 리소스당 최대 태그 수 – 50개
+ 각 리소스에 대해 각 태그 키는 고유하며 하나의 값만 가질 수 있습니다.
+ 최대 키 길이 - UTF-8 형식의 유니코드 문자 128자
+ 최대 값 길이 - UTF-8 형식의 유니코드 문자 256자
+ 허용되는 문자
  + EC2는 태그에 모든 문자를 사용할 수 있지만, 다른 AWS 서비스에는 제한이 적용되기도 합니다. 모든 AWS 서비스에서 허용되는 문자는 UTF-8로 표현할 수 있는 문자(`a-z`, `A-Z`), 숫자(`0-9`) 및 공백과 특수 문자(`+ - = . _ : / @`)입니다.
  + 인스턴스 메타데이터에서 인스턴스 태그를 활성화하면 인스턴스 태그 *키*는 문자(`a-z`, `A-Z`), 숫자(`0-9`) 및 `+ - = . , _ : @` 문자만 사용할 수 있습니다. 인스턴스 태그 *키*에는 공백 또는 `/`가 포함될 수 없으며, `.`(마침표 1개), `..`(마침표 2개) 또는 `_index`만으로 구성될 수 없습니다. 자세한 내용은 [인스턴스 메타데이터를 사용하여 EC2 인스턴스의 태그 보기](work-with-tags-in-IMDS.md) 섹션을 참조하세요.
+ 태그 키와 값은 대/소문자를 구분합니다.
+ `aws:` 접두사는 AWS용으로 예약되어 있습니다. 태그에 이 접두사가 있는 태그 키가 있는 경우 태그의 키 또는 값을 편집하거나 삭제할 수 없습니다. `aws:` 접두사가 지정된 태그는 리소스당 태그 수 제한에 포함되지 않습니다.

태그에만 기초하여 리소스를 종료, 중지 또는 삭제할 수 없습니다. 리소스 식별자를 지정해야 합니다. 예를 들어 `DeleteMe`라는 태그 키로 태그를 지정한 스냅샷을 삭제하려면 해당 스냅샷의 리소스 식별자(예: `DeleteSnapshots`)를 지정하여 `snap-1234567890abcdef0` 작업을 사용해야 합니다.

퍼블릭 또는 공유 리소스에 태그를 지정할 경우 할당하는 태그는 사용자의 AWS 계정에만 사용할 수 있으며 다른 AWS 계정은 해당 태그에 액세스할 수 없습니다. 공유 리소스에 대한 태그 기반 액세스 제어의 경우 각 AWS 계정은 리소스에 대한 액세스를 제어하기 위해 자체 태그 세트를 할당해야 합니다.

## 태그 및 액세스 관리
<a name="tag-resources-access-management"></a>

AWS Identity and Access Management(IAM)를 사용하는 경우 AWS 계정에서 태그를 생성, 편집 또는 삭제할 수 있는 권한이 있는 사용자를 제어할 수 있습니다. 자세한 내용은 [생성 시 Amazon EC2 리소스 태그 지정에 대한 권한 부여](supported-iam-actions-tagging.md) 섹션을 참조하세요.

리소스 태그를 사용하여 속성 기반 제어(ABAC)를 구현할 수도 있습니다. 리소스에 대한 태그를 기반으로 작업을 허용하는 IAM 정책을 생성할 수 있습니다. 자세한 내용은 [속성 기반 액세스를 사용하여 액세스 제어](iam-policies-for-amazon-ec2.md#control-access-with-tags) 섹션을 참조하세요.

## 결제를 위한 리소스 태깅
<a name="tag-resources-for-billing"></a>

또한 태그를 사용하여 비용 구조를 반영하도록 AWS 청구서를 구성할 수 있습니다. 이렇게 하려면 가입하여 태그 키 값이 포함된 AWS 계정 청구서를 가져옵니다. 태그를 사용한 비용 할당 보고서 설정에 대한 자세한 내용은 *AWS Billing 사용 설명서*에서 [월간 비용 할당 보고서](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/configurecostallocreport.html)를 참조하세요. 결합된 리소스의 비용을 확인하려면 태그 키 값을 동일한 리소스에 따라 결제 정보를 구성할 수 있습니다. 예를 들어, 특정 애플리케이션 이름으로 여러 리소스에 태그를 지정한 다음 결제 정보를 구성하여 여러 서비스에 걸친 해당 애플리케이션의 총 비용을 볼 수 있습니다. 자세한 내용은 *AWS Billing 사용 설명서*에서 [비용 할당 태그 사용](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)을 참조하세요.

**참고**  
방금 보고서를 활성화한 경우, 24시간 후에 이번 달의 데이터를 볼 수 있습니다.

비용 할당 태그는 비용에 기여하는 리소스를 나타낼 수 있지만, 리소스를 삭제하거나 비활성화한다고 해서 비용이 항상 절감되는 것은 아닙니다. 예를 들어, 원본 데이터가 포함된 스냅샷을 삭제하더라도 다른 스냅샷에서 참조하는 스냅샷 데이터는 보존됩니다. 자세한 내용은 *AWS Billing 사용 설명서*에서 [Amazon Elastic Block Store 볼륨 및 스냅샷](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/checklistforunwantedcharges.html#checkebsvolumes)을 참조하세요.

**참고**  
태그된 탄력적 IP 주소는 비용 할당 보고서에 나타나지 않습니다.

# 생성 시 Amazon EC2 리소스 태그 지정에 대한 권한 부여
<a name="supported-iam-actions-tagging"></a>

일부 리소스 생성 Amazon EC2 API 작업에서는 리소스를 생성할 때 태그를 지정할 수 있습니다. 리소스 태그를 사용하여 속성 기반 제어(ABAC)를 구현할 수 있습니다. 자세한 내용은 [리소스에 태그 지정](Using_Tags.md#tag-resources) 및 [속성 기반 액세스를 사용하여 액세스 제어](iam-policies-for-amazon-ec2.md#control-access-with-tags) 섹션을 참조하세요.

사용자가 생성 시 리소스에 태그를 지정할 수 있으려면 리소스를 생성하는 작업을 사용할 권한이 있어야 합니다(예: `ec2:RunInstances` 또는 `ec2:CreateVolume`). 리소스 생성 작업에서 태그가 지정되면 Amazon은 `ec2:CreateTags` 작업에서 추가 권한 부여를 수행해 사용자에게 태그를 생성할 권한이 있는지 확인합니다. 따라서 사용자는 `ec2:CreateTags` 작업을 사용할 명시적 권한도 가지고 있어야 합니다.

`ec2:CreateTags` 작업에 대한 IAM 정책 정의에서 `Condition` 조건 키와 함께 `ec2:CreateAction` 요소를 사용하여 리소스를 만드는 작업에 태그 지정 권한을 부여합니다.

다음 예제의 정책은 사용자가 인스턴스를 시작하고 시작 도중 인스턴스와 볼륨에 임의의 태그를 적용하는 것을 허용합니다. 사용자는 기존 리소스에 태그를 지정할 수 없습니다(`ec2:CreateTags` 작업을 직접 호출할 수 없습니다).

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
         "StringEquals": {
             "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

마찬가지로 다음 정책은 사용자가 볼륨을 생성하고 볼륨 생성 도중 볼륨에 임의의 태그를 적용하는 것을 허용합니다. 사용자는 기존 리소스에 태그를 지정할 수 없습니다(`ec2:CreateTags` 작업을 직접 호출할 수 없습니다).

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateVolume"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
         "StringEquals": {
             "ec2:CreateAction" : "CreateVolume"
          }
       }
    }
  ]
}
```

`ec2:CreateTags` 작업은 리소스 생성 작업 도중 태그가 적용되는 경우에만 평가됩니다. 따라서 리소스를 생성할 권한이 있는 사용자(태그 지정 조건은 없다고 가정)는 요청에서 태그가 지정되지 않은 경우, `ec2:CreateTags` 작업을 사용할 권한이 필요하지 않습니다. 하지만 사용자가 태그를 사용하여 리소스 생성을 시도하는 경우, 사용자에게 `ec2:CreateTags` 작업을 사용할 권한이 없다면 요청은 실패합니다.

시작 템플릿에 태그가 제공되는 경우 `ec2:CreateTags` 작업도 평가됩니다. 정책 예제는 [시작 템플릿의 태그](ExamplePolicies_EC2.md#iam-example-tags-launch-template)을 참조하세요.

## 특정 태그에 대한 액세스 제어
<a name="control-tagging"></a>

IAM 정책의 `Condition` 요소에 추가 조건을 사용하여 리소스에 적용할 수 있는 태그 키와 값을 제어할 수 있습니다.

앞 섹션의 예제에 다음 조건 키를 사용할 수 있습니다.
+ `aws:RequestTag`: 특정 태그 키 또는 태그 키 및 값이 요청에 존재해야 함을 표시. 요청에서 다른 태그도 지정할 수 있습니다.
  + 특정한 태그와 키 및 가치의 조합을 적용하려면(예를 들어 태그 `StringEquals`=`cost-center`:를 적용하려면) `cc123` 조건 연산자와 함께 사용합니다.

    ```
    "StringEquals": { "aws:RequestTag/cost-center": "cc123" }
    ```
  + 요청에서 특정 태그 키를 적용하려면(예를 들어 태그 키 `StringLike`:를 적용하려면) `purpose` 조건 연산자와 함께 사용합니다.

    ```
    "StringLike": { "aws:RequestTag/purpose": "*" }
    ```
+ `aws:TagKeys`: 요청에서 사용되는 태그 키를 적용.
  + 요청 시 지정하려면 `ForAllValues` 변경자와 함께 특정 태그 키를 적용합디다(요청에서 태그가 지정되면 특정 태그 키만 허용되고 다른 태그는 허용되지 않습니다). 예를 들어 태그 키 `environment` 또는 `cost-center`가 허용됩니다.

    ```
    "ForAllValues:StringEquals": { "aws:TagKeys": ["environment","cost-center"] }
    ```
  + 요청에서 지정된 태그 키 중 최소한 1개의 존재를 적용하려면 `ForAnyValue` 변경자와 함께 사용합니다. 예를 들어 요청:에 태그 키 `environment` 또는 `webserver` 중 최소한 1개가 존재해야 합니다.

    ```
    "ForAnyValue:StringEquals": { "aws:TagKeys": ["environment","webserver"] }
    ```

이들 조건 키는 `ec2:CreateTags` 및 `ec2:DeleteTags` 작업뿐 아니라 태그 지정을 지원하는 리소스 생성 작업에 적용될 수 있습니다. Amazon EC2 API 작업에서 태그 지정을 지원하는지 알아보려면 [Amazon EC2에 사용되는 작업, 리소스 및 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html)를 참조하세요.

사용자가 리소스를 생성할 때 강제로 태그를 지정하도록 하려면 리소스 생성 작업에서`aws:RequestTag` 조건 키 또는 `aws:TagKeys` 조건 키를 `ForAnyValue` 변경자와 함께 사용해야 합니다. 이때 사용자가 리소스 생성 시 태그를 지정하지 않으면 `ec2:CreateTags` 작업이 평가되지 않습니다.

조건의 경우 조건 키는 대소문자를 구분하지 않고 조건 값은 대소문자를 구분합니다. 따라서 태그 키의 대소문자 구별을 설정하려면 태그 키가 조건의 값으로 지정된 `aws:TagKeys` 조건 키를 사용합니다.

예제 IAM 정책은 [Amazon EC2 API에 대한 액세스를 제어하는 정책 예제](ExamplePolicies_EC2.md) 섹션을 참조하세요. 자세한 내용은 *IAM 사용 설명서*에서 [다수의 컨텍스트 키 또는 값을 사용하는 조건](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-logic-multiple-context-keys-or-values.html)를 참조하세요.

# Amazon EC2 리소스에 대한 태그 추가 및 제거
<a name="Using_Tags_Console"></a>

Amazon EC2 리소스(예: Amazon EC2 인스턴스)를 생성할 때 리소스에 추가할 태그를 지정할 수 있습니다. 또한 Amazon EC2 콘솔을 사용하여 특정 Amazon EC2 리소스에 대한 태그를 표시할 수 있습니다. 기존 Amazon EC2 리소스에 태그를 추가하거나 리소스에서 태그를 제거할 수도 있습니다.

AWS Resource Groups 콘솔의 **태그 편집기**를 사용하여 모든 리전에 있는 모든 AWS 리소스의 태그를 보거나 추가 또는 제거할 수 있습니다. 동시에 여러 유형의 리소스에서 태그를 적용하거나 제거할 수 있습니다. 자세한 내용을 알아보려면 [AWS 리소스 태깅 사용 설명서](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)를 참조하세요.

**Topics**
+ [

## 콘솔을 사용하여 태그 추가
](#adding-or-deleting-tags)
+ [

## AWS CLI를 사용하여 태그 추가
](#create-tag-examples)
+ [

## PowerShell을 사용하여 태그 추가
](#powershell-add-tag-specifications)
+ [

## CloudFormation을 사용하여 태그 추가
](#cloudformation-add-tag-specifications)

## 콘솔을 사용하여 태그 추가
<a name="adding-or-deleting-tags"></a>

리소스에 대한 페이지에서 바로 기존 리소스에 태그를 추가할 수 있습니다.

**기존 리소스에 태그 추가**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 모음에서 리소스가 있는 리전을 선택합니다.

1. 탐색 창에서 리소스 유형(예: [**인스턴스**])을 선택합니다.

1. 목록에서 리소스를 선택합니다.

1. **태그** 탭에서 **태그 관리**를 선택합니다.

1. **새 태그 추가**를 선택하고 태그의 키와 값을 입력합니다.

1. **저장**을 선택합니다.

## AWS CLI를 사용하여 태그 추가
<a name="create-tag-examples"></a>

리소스를 생성할 때 또는 기존 리소스에 태그를 추가할 수 있습니다.

**리소스 생성 시 태그를 추가하는 방법**  
생성 시 `-tag-specifications` 옵션을 사용하여 리소스에 태그를 지정합니다. 태그 사양에는 태그를 지정할 리소스 유형, 태그 키, 태그 값이 필요합니다. 다음 예제에서는 태그를 생성하고 태그 사양에 추가합니다.

```
--tag-specifications 'ResourceType=instance,Tags=[{Key=stack,Value=production}]'
```

**기존 리소스에 태그를 추가하는 방법**  
다음 예제에서는 [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) 명령을 사용하여 기존 리소스에 태그를 추가하는 방법을 보여줍니다.

**Example 예제: 리소스에 태그 추가**  
이 예제에서는 지정된 이미지에 **Stack=production** 태그를 추가하거나 태그 키가 stack인 AMI의 기존 태그를 덮어씁니다. 이 명령이 성공하면 출력이 반환되지 않습니다.  

```
aws ec2 create-tags \
    --resources ami-0abcdef1234567890 \
    --tags Key=stack,Value=production
```

**Example 예제: 여러 리소스에 태그 추가**  
이 예제에서는 AMI와 인스턴스에 대해 두 개의 태그를 추가(또는 덮어쓰기)합니다. 태그 중 하나에 값이 없는 키(webserver)만 포함되어 있습니다(값을 빈 문자열로 설정). 다른 태그는 키(stack)와 값(**Production**)으로 구성됩니다. 이 명령이 성공하면 출력이 반환되지 않습니다.  

```
aws ec2 create-tags \
    --resources ami-0abcdef1234567890 i-1234567890abcdef0 \
    --tags Key=webserver,Value=  Key=stack,Value=Production
```

**Example 예제: 특수 문자에 태그 추가**  
이 예제에서는 [Group]=test 태그를 인스턴스에 추가합니다. 대괄호([ 및 ])는 이스케이프해야 하는 특수 문자입니다.  
Linux 또는 OS X를 사용하는 경우 특수 문자를 이스케이프하려면 특수 문자가 있는 요소를 큰 따옴표(")로 묶은 다음 전체 키 및 값 구조를 작은 따옴표(')로 묶으십시오.  

```
aws ec2 create-tags \
    --resources i-1234567890abcdef0 \
    --tags 'Key="[Group]",Value=test'
```
Windows를 사용하는 경우 특수 문자를 이스케이프하려면 다음과 같이 특수 문자가 있는 요소를 큰 따옴표(“)로 묶은 다음 각 큰 따옴표 문자 앞에 백슬래시(**\$1**)를 붙입니다.  

```
aws ec2 create-tags ^
    --resources i-1234567890abcdef0 ^
    --tags Key=\"[Group]\",Value=test
```
Windows PowerShell을 사용하는 경우 특수 문자를 이스케이프하려면 다음과 같이 특수 문자가 있는 값을 큰 따옴표(**"**)로 묶고 각 큰 따옴표 문자 앞에 백슬래시(**\$1**)를 붙인 다음 전체 키 및 값 구조를 작은 따옴표(**'**)로 묶습니다.  

```
aws ec2 create-tags `
    --resources i-1234567890abcdef0 `
    --tags 'Key=\"[Group]\",Value=test'
```

## PowerShell을 사용하여 태그 추가
<a name="powershell-add-tag-specifications"></a>

리소스를 생성할 때 또는 기존 리소스에 태그를 추가할 수 있습니다.

**리소스 생성 시 태그를 추가하는 방법**  
생성 시 `-TagSpecification` 파라미터를 사용하여 리소스에 태그를 지정합니다. 태그 사양에는 태그를 지정할 리소스 유형, 태그 키, 태그 값이 필요합니다. 다음 예제에서는 태그를 생성하고 태그 사양에 추가합니다.

```
$tag = @{Key="stack"; Value="production"}
$tagspec = new-object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "instance"
$tagspec.Tags.Add($tag)
```

다음 예제에서는 `-TagSpecification` 파라미터에 이 태그를 지정합니다.

```
-TagSpecification $tagspec
```

**기존 리소스에 태그를 추가하는 방법**  
[New-EC2Tag](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Tag.html) cmdlet을 사용합니다. 리소스, 태그 키, 태그 값을 지정해야 합니다.

```
New-EC2Tag `
    -Resource i-1234567890abcdef0 `
    -Tag @{Key="purpose"; Value="production"}
```

## CloudFormation을 사용하여 태그 추가
<a name="cloudformation-add-tag-specifications"></a>

Amazon EC2 리소스 유형에서는 `Tags` 또는 `TagSpecifications` 속성을 사용하여 태그를 지정합니다.

다음 예에서는 `Tags` 속성을 사용하여 [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html)에 **Stack=Production** 태그를 추가합니다.

**Example 예: YAML 태그**  

```
Tags:
  - Key: "Stack"
    Value: "Production"
```

**Example 예: JSON 태그**  

```
"Tags": [
    {
        "Key": "Stack",
        "Value": "Production"
    }
]
```

다음 예에서는 **Stack=Production** 속성을 사용하여 [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html)에 `TagSpecifications` 태그를 추가합니다.

**Example 예: YAML TagSpecifications**  

```
TagSpecifications:
  - ResourceType: "instance"
    Tags:
    - Key: "Stack"
      Value: "Production"
```

**Example 예: JSON TagSpecifications**  

```
"TagSpecifications": [
    {
        "ResourceType": "instance",
        "Tags": [
            {
                "Key": "Stack",
                "Value": "Production"
            }
        ]
    }
]
```

# 태그로 Amazon EC2 리소스 필터링
<a name="filtering-the-list-by-tag"></a>

태그를 추가한 후 태그 키와 태그 값을 기준으로 Amazon EC2 리소스를 필터링할 수 있습니다.

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

**태그로 리소스를 필터링하는 방법**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 리소스 유형(예: [**인스턴스**])을 선택합니다.

1. 검색 필드를 선택합니다.

1. 목록의 **태그**에서 태그 키를 선택합니다.

1. 목록에서 해당 태그 값을 선택합니다.

1. 작업을 마쳤으면 필터를 제거합니다.

Amazon EC2 콘솔에서의 필터 사용에 관한 자세한 내용은 [Amazon EC2 리소스 찾기](Using_Filtering.md) 섹션을 참조하세요.

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

**지정된 태그 키가 있는 단일 유형의 리소스를 설명하는 방법**  
태그 값과 관계없이 다음 필터를 `describe` 명령에 추가하여 Stack 태그가 있는 해당 유형의 리소스를 설명합니다.

```
--filters Name=tag-key,Values=Stack
```

**지정된 태그가 있는 단일 유형의 리소스를 설명하는 방법**  
다음 필터를 `describe` 명령에 추가하여 Stack=production 태그가 있는 해당 유형의 리소스를 설명합니다.

```
--filters Name=tag:Stack,Values=production
```

**지정된 태그 값이 있는 단일 유형의 리소스를 설명하는 방법**  
태그 키와 관계없이 다음 필터를 `describe` 명령에 추가하여 값이 production인 태그가 있는 해당 유형의 리소스를 설명합니다.

```
--filters Name=tag-value,Values=production
```

**지정된 태그가 있는 모든 EC2 리소스를 설명하는 방법**  
다음 필터를 [describe-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-tags.html) 명령에 추가하여 Stack=test 태그가 있는 모든 EC2 리소스를 설명합니다.

```
--filters Name=key,Values=Stack Name=value,Values=test
```

------
#### [ PowerShell ]

**태그 키 기준으로 단일 유형의 리소스를 필터링하는 방법**  
태그 값과 관계없이 다음 필터를 `Get` cmdlet에 추가하여 Stack 태그가 있는 해당 유형의 리소스를 설명합니다.

```
-Filter @{Name="tag-key"; Values="Stack"}
```

**태그 기준으로 단일 유형의 리소스를 필터링하는 방법**  
다음 필터를 `Get` cmdlet에 추가하여 Stack=production 태그가 있는 해당 유형의 리소스를 설명합니다.

```
-Filter @{Name="tag:Stack"; Values="production"}
```

**태그 값을 기준으로 단일 유형의 리소스를 필터링하는 방법**  
태그 키 값과 관계없이 다음 필터를 `Get` cmdlet에 추가하여 값이 production인 태그가 있는 해당 유형의 리소스를 설명합니다.

```
-Filter @{Name="tag-value"; Values="production"}
```

**태그로 모든 EC2 리소스를 필터링하는 방법**  
다음 필터를 [Get-EC2Tag](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Tag.html) cmdlet에 추가하여 Stack=test 태그가 있는 모든 EC2 리소스를 설명합니다.

```
-Filter @{Name="tag:Stack"; Values="test"}
```

------

# 인스턴스 메타데이터를 사용하여 EC2 인스턴스의 태그 보기
<a name="work-with-tags-in-IMDS"></a>

인스턴스 메타데이터에서 인스턴스의 태그에 액세스할 수 있습니다. 인스턴스 메타데이터에서 태그에 액세스하면 더 이상 `DescribeInstances` 또는 `DescribeTags` API 호출을 사용하여 태그 정보를 검색할 필요가 없습니다. 그러면 초당 API 트랜잭션이 줄어들고 제어하는 인스턴스 수에 따라 태그 검색이 확장될 수 있습니다. 또한 인스턴스에서 실행 중인 로컬 프로세스는 인스턴스 메타데이터에서 직접 인스턴스의 태그 정보를 볼 수 있습니다.

기본적으로 태그는 인스턴스 메타데이터에서 사용할 수 없으므로 액세스를 명시적으로 허용해야 합니다. 인스턴스 시작 시 또는 실행 중이거나 중지된 인스턴스에서 시작 후 액세스를 허용할 수 있습니다. 시작 템플릿에서 이를 지정하여 태그에 대한 액세스를 허용할 수도 있습니다. 템플릿을 사용하여 시작된 인스턴스는 인스턴스 메타데이터의 태그에 대한 액세스를 허용합니다.

인스턴스 태그를 추가하거나 제거하면 인스턴스가 실행되는 동안 인스턴스를 중지했다가 시작할 필요 없이 인스턴스 메타데이터가 업데이트됩니다.

**Topics**
+ [

## 인스턴스 메타데이터에서 태그에 대한 액세스 활성화
](#allow-access-to-tags-in-IMDS)
+ [

## 인스턴스 메타데이터에서 태그 검색
](#retrieve-tags-from-IMDS)
+ [

## 인스턴스 메타데이터에서 태그에 대한 액세스 비활성화
](#turn-off-access-to-tags-in-IMDS)

## 인스턴스 메타데이터에서 태그에 대한 액세스 활성화
<a name="allow-access-to-tags-in-IMDS"></a>

기본적으로 인스턴스 메타데이터의 인스턴스 태그에 액세스할 수 없습니다. 각 인스턴스에 대해 명시적으로 액세스를 활성화해야 합니다.

**참고**  
인스턴스 메타데이터의 태그에 대한 액세스를 허용하는 경우 인스턴스 태그 *키*에 특정 제한이 적용됩니다. 규정을 준수하지 않으면 새 인스턴스의 시작이 실패하거나 기존 인스턴스에 대한 오류가 발생합니다. 제한 사항은 다음과 같습니다.  
문자(`a-z`, `A-Z`), 숫자(`0-9`), 다음 문자(`+ - = . , _ : @`)만 포함할 수 있습니다.
공백 또는 `/`를 포함할 수 없습니다.
`.`(1기간), `..`(2기간) 또는 `_index`로만 구성할 수 없습니다.
자세한 내용은 [태그 제한](Using_Tags.md#tag-restrictions) 섹션을 참조하세요.

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

**인스턴스 시작 중 인스턴스 메타데이터의 태그에 대한 액세스를 활성화하는 방법**

1. [인스턴스 시작](ec2-launch-instance-wizard.md) 절차를 따릅니다.

1. **고급 세부 정보**를 확장하고 **메타데이터에서 태그 허용**에 대해 **활성화**를 선택합니다.

1. **Summary**(요약) 패널에서 인스턴스 구성을 검토한 다음 **Launch instance**(인스턴스 시작)를 선택합니다. 자세한 내용은 [콘솔에서 인스턴스 시작 마법사를 사용하여 EC2 인스턴스 시작](ec2-launch-instance-wizard.md) 섹션을 참조하세요.

**인스턴스 시작 후 인스턴스 메타데이터의 태그에 대한 액세스를 활성화하는 방법**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택합니다.

1. 인스턴스를 선택한 다음 **작업**, **인스턴스 설정**, **인스턴스 메타데이터의 태그 허용**을 선택합니다.

1. 인스턴스 메타데이터의 태그에 대한 액세스를 허용하려면 **허용** 확인란을 선택합니다.

1. **저장**을 선택합니다.

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

**인스턴스 시작 중 인스턴스 메타데이터의 태그에 대한 액세스를 활성화하는 방법**  
[run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 명령을 사용하고 다음 `--metadata-options` 옵션을 추가합니다.

```
--metadata-options "InstanceMetadataTags=enabled"
```

**인스턴스 시작 후 인스턴스 메타데이터의 태그에 대한 액세스를 활성화하는 방법**  
다음 [modify-instance-metadata-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-options.html) 명령을 사용합니다.

```
aws ec2 modify-instance-metadata-options \
    --instance-id i-1234567890abcdef0 \
    --instance-metadata-tags enabled
```

**인스턴스 메타데이터의 태그에 대한 액세스가 활성화되었는지 확인하는 방법**  
[describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 명령을 사용하고 `InstanceMetadataTags` 값을 확인합니다.

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query "Reservations[*].Instances[].MetadataOptions[].InstanceMetadataTags"
```

다음은 예제 출력입니다. 이때 값은 `enabled` 또는 `disabled`입니다.

```
[
    "enabled"
]
```

------
#### [ PowerShell ]

**인스턴스 시작 중 인스턴스 메타데이터의 태그에 대한 액세스를 활성화하는 방법**  
[New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet을 사용하고 다음 `-MetadataOptions_InstanceMetadataTags` 파라미터를 추가합니다.

```
-MetadataOptions_InstanceMetadataTags enabled
```

**인스턴스 시작 후 인스턴스 메타데이터의 태그에 대한 액세스를 활성화하는 방법**  
[Edit-EC2InstanceMetadataOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMetadataOption.html) cmdlet을 사용합니다.

```
Edit-EC2InstanceMetadataOption `
    -InstanceId i-1234567890abcdef0 `
    -InstanceMetadataTags enabled
```

**인스턴스 메타데이터의 태그에 대한 액세스가 활성화되었는지 확인하는 방법**  
[Get-EC2Instance](https://docs.aws.amazon.com/cli/latest/reference/ec2/Get-EC2Instance.html) cmdlet을 사용하고 `InstanceMetadataTags` 값을 확인합니다.

```
(Get-EC2Instance `
    -InstanceId i-1234567890abcdef0).Instances.MetadataOptions.InstanceMetadataTags.Value
```

다음은 예제 출력입니다. 이때 값은 `enabled` 또는 `disabled`입니다.

```
enabled
```

------

## 인스턴스 메타데이터에서 태그 검색
<a name="retrieve-tags-from-IMDS"></a>

인스턴스 메타데이터에서 인스턴스 태그 액세스를 허용한 이후 인스턴스 메타데이터에서 `tags/instance` 카테고리에 액세스할 수 있습니다. 자세한 내용은 [EC2 인스턴스에 대한 인스턴스 메타데이터에 액세스](instancedata-data-retrieval.md) 섹션을 참조하세요.

------
#### [ IMDSv2 ]

**Linux**  
Linux 인스턴스에서 다음 명령을 실행하여 인스턴스에 대한 모든 태그 키를 나열합니다.

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance
```

이 예제에서는 이전 예제에서 얻은 키 값을 가져옵니다. IMDSv2 요청은 이전 예제의 명령을 사용하여 생성한 저장된 토큰을 사용합니다. 토큰이 만료되지 않아야 합니다.

```
curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/tag-key
```

**Windows**  
Windows 인스턴스에서 다음 cmdlet을 실행하여 인스턴스에 대한 모든 태그 키를 나열합니다.

```
$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/tags/instance
```

이 예제에서는 이전 예제에서 얻은 키 값을 가져옵니다. IMDSv2 요청은 이전 예제의 명령을 사용하여 생성한 저장된 토큰을 사용합니다. 토큰이 만료되지 않아야 합니다.

```
Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/tags/instance/tag-key
```

------
#### [ IMDSv1 ]

**Linux**  
Linux 인스턴스에서 다음 명령을 실행하여 인스턴스에 대한 모든 태그 키를 나열합니다.

```
curl http://169.254.169.254/latest/meta-data/tags/instance
```

이 예제에서는 이전 예제에서 얻은 키 값을 가져옵니다.

```
curl http://169.254.169.254/latest/meta-data/tags/instance/tag-key
```

**Windows**  
Windows 인스턴스에서 다음 cmdlet을 실행하여 인스턴스에 대한 모든 태그 키를 나열합니다.

```
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/tags/instance
```

이 예제에서는 이전 예제에서 얻은 키 값을 가져옵니다.

```
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/tags/instance/tag-key
```

------

## 인스턴스 메타데이터에서 태그에 대한 액세스 비활성화
<a name="turn-off-access-to-tags-in-IMDS"></a>

인스턴스 메타데이터에서 인스턴스 태그에 대한 액세스를 비활성화할 수 있습니다. 인스턴스 메타데이터의 인스턴스 태그에 대한 액세스는 기본적으로 해제되어 있으므로 시작 시 비활성화할 필요가 없습니다.

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

**인스턴스 메타데이터에서 태그에 대한 액세스를 비활성화하는 방법**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택합니다.

1. 인스턴스를 선택한 다음 **작업(Actions)**, **인스턴스 설정(Instance settings)**, **인스턴스 메타데이터의 태그 허용(Allow tags in instance metadata)**을 선택합니다.

1. 인스턴스 메타데이터의 태그에 대한 액세스를 해제하려면 **허용** 확인란 선택을 취소합니다.

1. **저장**을 선택합니다.

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

**인스턴스 메타데이터에서 태그에 대한 액세스를 비활성화하는 방법**  
다음 [modify-instance-metadata-options](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-metadata-options.html) 명령을 사용합니다.

```
aws ec2 modify-instance-metadata-options \
    --instance-id i-1234567890abcdef0 \
    --instance-metadata-tags disabled
```

------
#### [ PowerShell ]

**인스턴스 메타데이터에서 태그에 대한 액세스를 비활성화하는 방법**  
[Edit-EC2InstanceMetadataOption](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceMetadataOption.html) cmdlet을 사용합니다.

```
Edit-EC2InstanceMetadataOption `
    -InstanceId i-1234567890abcdef0 `
    -InstanceMetadataTag disabled
```

------

# Amazon EC2 서비스 할당량
<a name="ec2-resource-limits"></a>

AWS 계정을 생성하면 AWS 리소스에 대한 기본 **할당량(한도라고도 함)이 리전별로 설정됩니다. 리소스 할당량을 초과하려고 하면 요청이 실패합니다. 예를 들어 한 리전에서 온디맨드 인스턴스용으로 프로비저닝할 수 있는 최대 Amazon EC2 vCPU 수가 있습니다. 한 리전에서 인스턴스를 시작하려고 하는데 이 요청으로 인해 사용량이 할당량을 초과하면 요청은 실패합니다. 이 경우 리소스 사용량을 줄이거나 할당량 증가를 요청할 수 있습니다.

Service Quotas 콘솔은 AWS 서비스에 대한 할당량을 보고 관리할 수 있으며 사용하는 많은 리소스에 대한 할당량 증가를 요청할 수 있는 중앙 위치입니다. 제공되는 할당량 정보를 사용하여 AWS 인프라를 관리하세요. 실제로 필요할 시점보다 미리 할당량 증가를 요청하도록 계획하세요.

**관련 할당량 설명서**
+ [Amazon EC2 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/ec2-service.html)
+ [Amazon EC2 인스턴스 유형 할당량](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-instance-quotas.html)
+ [Amazon EBS 할당량](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-resource-quotas.html)
+ [Amazon VPC 할당량](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html)

## 현재 할당량 보기
<a name="view-limits"></a>

Service Quotas 콘솔을 사용하여 각 리전에 대한 할당량을 볼 수 있습니다.

**Service Quotas 콘솔을 사용하여 현재 할당량 보기**

1. [https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/)에서 Service Quotas 콘솔을 엽니다.

1. 탐색 모음(화면 상단)에서 리전을 선택합니다.

1. **할당량 관리** 창에서 **Amazon Elastic Compute Cloud(Amazon EC2)**와 같은 서비스를 선택합니다. **할당량 보기**를 선택합니다.

1. 필터 필드를 사용하여 리소스 이름별로 목록을 필터링합니다. 예를 들어, 온디맨드 인스턴스의 할당량을 찾으려면 **On-Demand**을(를) 입력합니다.

1. 자세한 정보를 보려면 할당량 이름을 선택하여 할당량에 대한 세부 정보 페이지를 엽니다.

## 증가 요청
<a name="request-increase"></a>

각 리전에 대해 할당량 증가 요청을 할 수 있습니다.

**Service Quotas 콘솔을 사용하여 증가 요청**

1. [https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/)에서 Service Quotas 콘솔을 엽니다.

1. 탐색 모음(화면 상단)에서 리전을 선택합니다.

1. 필터 필드를 사용하여 리소스 이름별로 목록을 필터링합니다. 예를 들어, 온디맨드 인스턴스의 할당량을 찾으려면 **On-Demand**을(를) 입력합니다.

1. 할당량을 조정할 수 있는 경우 할당량을 선택한 다음 **할당량 증가 요청**을 선택합니다.

1. **할당량 값 변경**에 새 할당량 값을 입력합니다.

1. **요청**을 선택합니다.

1. 콘솔에서 보류 중이거나 최근에 해결된 요청을 보려면 탐색 창에서 **대시보드**를 선택합니다. 보류 중인 요청의 경우 요청 상태를 선택하여 요청 접수증을 엽니다. 요청의 초기 상태는 **Pending**(보류 중)입니다. 상태가 **할당량 요청됨**으로 변경되면 지원의 케이스 번호가 표시됩니다. 이 케이스 번호를 선택하여 요청의 티켓을 엽니다.

AWS CLI 또는 SDK를 사용하여 할당량 증가를 요청하는 방법을 비롯한 자세한 내용은 *Service Quotas 사용 설명서*의 [할당량 증가 요청](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)을 참조하세요.

## 포트 25를 사용하여 전송되는 이메일 관련 제한
<a name="port-25-throttle"></a>

기본적으로, Amazon EC2에서는 프라이빗 IPv4 주소에 대한 포트 25 경유 아웃바운드 트래픽이 허용됩니다. 퍼블릭 IPv4 주소 및 IPv6 주소에 대한 포트 25 경유 트래픽은 차단됩니다.

이 제한을 제거하도록 요청할 수 있습니다. 자세한 내용은 에서 [Amazon EC2 인스턴스 또는 Lamda 함수에서 포트 25와 관련한 제한을 없애려면 어떻게 해야 하나요?](https://repost.aws/knowledge-center/ec2-port-25-throttle)를 참조하세요.

대상이 다음과 같은 포트 25 경유 아웃바운드 트래픽에는 이 제한이 적용되지 않습니다.
+ 원래 네트워크 인터페이스가 있는 VPC의 기본 CIDR 블록에 있는 IP 주소입니다.
+ [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918), [RFC 6598](https://datatracker.ietf.org/doc/html/rfc6598) 및 [ RFC 4193](https://datatracker.ietf.org/doc/html/rfc4193)에 정의된 CIDR의 IP 주소입니다.