클라우드 설치하기
exemONE으로 AWS·Azure를 모니터링하기 전에 클라우드 서비스 측에서 준비해야 하는 지원 환경, 네트워크 확인 사항, 필수 권한을 안내합니다. exemONE 화면에서 계정을 등록하고 리소스·수집 주기를 관리하는 방법은 설정하기 문서를 참고하세요.
AWS
지원 환경
| 서비스 | 지원 타입 | Metric Namespace (CloudWatch) | 주요 Dimension(예시) | 지원 가능 여부 |
|---|---|---|---|---|
| Cost Explorer | 전체 | Cost Explorer GetCostAndUsage API (CloudWatch 아님) | ServiceName, LinkedAccount, Region | O |
| Database Migration Service (DMS) | Replication Instance | AWS/DMS | ReplicationInstanceIdentifier | O |
| Database Migration Service (DMS) | Replication Task | AWS/DMS | ReplicationInstanceIdentifier, ReplicationTaskId | O |
| DocumentDB | Cluster | AWS/DocDB | DBClusterIdentifier | O |
| DocumentDB | Instance | AWS/DocDB | DBInstanceIdentifier | O |
| DynamoDB | Table | AWS/DynamoDB | TableName | O |
| DynamoDB | Global Table | AWS/DynamoDB | TableName | O |
| EC2 | Instance | AWS/EC2 | InstanceId | O |
| EC2 | Auto Scaling Group | AWS/EC2 | AutoScalingGroupName | X |
| ECS | Cluster | AWS/ECS | ClusterName | X |
| ECS | Service | AWS/ECS | ClusterName, ServiceName | X |
| ECS | Task | AWS/ECS | ClusterName, TaskDefinitionFamily | X |
| ElastiCache (Redis) | Cluster Mode Disabled | AWS/ElastiCache | CacheClusterId | O |
| ElastiCache (Redis) | Cluster Mode Enabled (Sharded) | AWS/ElastiCache | ReplicationGroupId, NodeGroupId | O |
| ElastiCache (Redis) | Serverless | AWS/ElastiCache | ClusterId | O |
| Lambda | Function | AWS/Lambda | FunctionName | O |
| Lambda | Version / Alias | AWS/Lambda | FunctionName, Resource | X |
| RDS (+Aurora) | DB Instance | AWS/RDS | DBInstanceIdentifier | O |
| RDS (+Aurora) | DB Cluster (Aurora) | AWS/RDS | DBClusterIdentifier | O |
| Redshift | Provisioned (Cluster) | AWS/Redshift | ClusterIdentifier | O |
| Redshift | Provisioned (Node) | AWS/Redshift | ClusterIdentifier, NodeID | X |
| Redshift | Serverless (Workgroup) | AWS/Redshift-Serverless | Workgroup | X |
| Redshift | Serverless (Namespace) | AWS/Redshift-Serverless | Namespace | X |
| S3 | Bucket (Storage Metrics) | AWS/S3 | BucketName, StorageType | O |
| S3 | Request Metrics | AWS/S3 | BucketName, FilterId | X |
수집 방식
AWS에서 제공하는 각 서비스별 성능 정보를 AWS API Call (GetMetricData) 방식으로 수집합니다.
- 수집 주기: 1분 / 10분 / 15분 / 30분 / 1시간 / 3시간 중 설정 가능
- 주의: AWS 요금 정책에 따른 API Call 비용이 별도로 발생합니다.
- 참고: https://aws.amazon.com/ko/cloudwatch/pricing/
네트워크 확인
exemONE 수집 서버에서 아래 AWS API 엔드포인트로 접근할 수 있어야 합니다. *.amazonaws.com 도메인과 443 포트가 허용되어 있는지 확인하세요.
rds.{region}.amazonaws.com - RDS 인스턴스 정보
ec2.{region}.amazonaws.com - 인스턴스 메타데이터
monitoring.{region}.amazonaws.com - CloudWatch 메트릭
logs.{region}.amazonaws.com - CloudWatch Logs
sts.{region}.amazonaws.com - 인증 토큰 서비스(STS)
ce.{region}.amazonaws.com - Cost Explorer 비용 정보
AWS가 사용하는 IP 주소 범위는 아래 명령으로 다운로드해 방화벽 허용 목록에 반영할 수 있습니다.
curl -O https://ip-ranges.amazonaws.com/ip-ranges.json
exemONE 계정 등록 화면에서 VPC Endpoint를 활성화하면 EC2, RDS, Monitoring, VPC Region, SSO, SSO OIDC, CloudWatch Logs 항목별로 프라이빗 엔드포인트 도메인을 직접 입력할 수 있습니다. 입력하지 않으면 각 항목은 공개 엔드포인트(Default Public Domain)를 사용합니다.
필수 권한
모니터링 대상 AWS 계정에 서비스별로 아래 IAM 권한을 부여해야 합니다.
| 서비스 | 필요한 IAM 권한 |
|---|---|
| 공통 | cloudwatch:GetMetricData, cloudwatch:ListMetrics |
| AWS 경보(Alarm) 수집 | cloudwatch:DescribeAlarms |
| CloudWatch Log 수집 | logs:DescribeLogGroups, logs:DescribeLogStreams, logs:GetLogEvents |
| RDS / Aurora | rds:DescribeDBInstances, rds:DescribeDBClusters |
| Redshift | redshift:DescribeClusters |
| DynamoDB | dynamodb:ListTables, dynamodb:DescribeTable |
| ElastiCache | elasticache:DescribeCacheClusters |
| DocumentDB | rds:DescribeDBClusters |
| DMS | dms:DescribeReplicationInstances |
| EC2 | ec2:DescribeInstances, ec2:DescribeVolumes |
| S3 | s3:ListAllMyBuckets, s3:GetBucketLocation |
| Lambda | lambda:ListFunctions, lambda:GetFunction |
| Cost Explorer | ce:GetCostAndUsage |
인증 준비
exemONE 계정 등록 화면의 Credential Type에서 아래 5가지 방식 중 고객사 환경에 맞는 방식을 선택합니다. 각 방식에 필요한 정보를 미리 준비하세요.
| Credential Type | 설명 |
|---|---|
| Token | Access Key ID / Secret Access Key로 인증하는 방식입니다. 임시 발급된 Key인 경우 만료에 따른 자동 갱신 관리가 필요합니다. |
| Assume Role | exemONE 수집 서버를 AWS 내부(EC2) 환경에 구축할 때 사용합니다. IAM Role(Assume Role)을 생성해 필요 권한을 부여하고, 수집 서버로 사용할 EC2에 연결합니다. |
| IAM Roles Anywhere | exemONE 수집 서버를 AWS 외부(온프레미스 등) 환경에 구축할 때 사용합니다. IAM Role 생성, Trust Anchor 생성(CA 인증서 등록), Profile 생성 및 IAM Role 연결이 필요합니다. |
| Vault | 보안 정책상 인증 정보를 직접 저장하지 못하는 경우, Vault를 통해 Access Key를 저장·관리할 때 사용합니다. |
| Server | exemONE 수집 서버가 AWS 내부(EC2)에 있고, 해당 EC2에 연결된 IAM Role을 그대로 사용할 때 선택합니다. 별도의 인증 정보 준비가 필요 없습니다. |
Token
임시로 발급받은 Token을 통해 인증하는 방식 (Token 만료에따른자동갱신관리필요)
연결 정보
Access Key ID
Secret Key
Assume Role
exemONE수집서버를 AWS 내부(EC2) 환경에 구축 시 사용할 수 있는 방식
Role Arn(예:
arn:aws:iam::123456789012:role/MyRole)Role Session Name(식별용 임의 값)
IAM Roles Anywhere
exemONE수집서버를 AWS 외부(온프레미스 등) 환경에 구축 시 사용할 수 있는 방식
IAM Role 생성(IAMRoleAnywhere)및 필요 권한 부여
Trust Anchor 생성(CA인증서 등록필요)
Profile 생성및IAM Role 연결
연결 정보
Certificate(인증서 파일)
Private Key(개인 키 파일)
Role ARN(예: arn:aws:iam::123456789012:role/MyRole)
Trust Anchor ARN
Profile ARN
Vault
주로 내부 보안 정책상 인증 정보를 직접 저장하지 못하는 경우 사용
Vault Key를 통해 Access Key (Access Key ID + Secret Access Key)를 저장 관리하는 경우 사용
연결 정보
Vault Token(예:
https://vault.example.com/v1/aws/creds/my-role)Namespace(예:
my-namespace)Request URL(예:
https://vault.example.com/v1/aws/creds/my-role)
Server
- EC2에 연결된 IAM Role을 사용하므로 별도 준비 항목이 없습니다.
Azure
지원 환경
| 서비스 | 지원 타입 | Metric Namespace | 주요 Dimension(예시) | 지원 가능 여부 |
|---|---|---|---|---|
| Azure Virtual Machines | Single VM | Microsoft.Compute/virtualMachines | 없음 | O |
| Azure Virtual Machines | VM Scale Set | Microsoft.Compute/virtualMachineScaleSets | InstanceId, VMName | X |
| Azure Functions | Consumption Plan | Microsoft.Web/sites | Instance | O |
| Azure Functions | Premium Plan | Microsoft.Web/sites | Instance | O |
| Azure Functions | Dedicated (App Service Plan) | Microsoft.Web/sites | Instance | O |
| Azure Blob Storage | GPv1 | Microsoft.Storage/storageAccounts | ApiName, Authentication, GeoType | O |
| Azure Blob Storage | GPv2 | Microsoft.Storage/storageAccounts | ApiName, Authentication, GeoType | O |
| Azure Blob Storage | Blob Storage Account | Microsoft.Storage/storageAccounts | ApiName, Authentication, GeoType | O |
| Azure Cache for Redis | Basic | Microsoft.Cache/redis | ShardId, Port, Primary | O |
| Azure Cache for Redis | Standard | Microsoft.Cache/redis | ShardId, Port, Primary | O |
| Azure Cache for Redis | Premium | Microsoft.Cache/redis | ShardId, Port, Primary | O |
| Azure Cache for Redis | Enterprise | Microsoft.Cache/redisEnterprise | InstanceId | O |
| Azure Cache for Redis | Enterprise Flash | Microsoft.Cache/redisEnterprise | InstanceId | O |
| Azure Cache for Redis | Azure Managed Redis | Microsoft.Cache/redisEnterprise | InstanceId | O |
| Azure Cosmos DB | SQL API | Microsoft.DocumentDB/databaseAccounts | DatabaseName, CollectionName, Region | O |
| Azure Cosmos DB | Mongo API (RU 기반 계정) | Microsoft.DocumentDB/databaseAccounts | Database, Collection, Region | O |
| Azure Cosmos DB | Cassandra API (RU 기반 계정) | Microsoft.DocumentDB/databaseAccounts | Keyspace, Region | O |
| Azure Cosmos DB | Gremlin API | Microsoft.DocumentDB/databaseAccounts | Database, Graph, Region | O |
| Azure Cosmos DB | Postgresql API | Microsoft.DBforPostgreSQL/serverGroupsv2 | - | X |
| Azure Cosmos DB | DB for Table | Microsoft.DocumentDB/databaseAccounts | - | O |
| Azure Cosmos DB | Managed Instance for Apache Cassandra | Microsoft.DocumentDB/cassandraClusters | Keyspace, Region | X |
| Azure Cosmos DB | Azure DocumentDB | Microsoft.DocumentDB/mongoClusters | - | X |
수집 방식
Azure에서 제공하는 각 서비스별 성능 정보도 Azure Monitor REST API (Metrics API) 방식으로 수집합니다.
- 수집 주기: 1분 / 10분 / 15분 / 30분 / 1시간 / 3시간 중 설정 가능
- 주의: Azure 요금 정책에 따른 Metrics API 호출 비용이 별도로 발생합니다.
- 참고: https://azure.microsoft.com/ko-kr/pricing/details/monitor/
네트워크 확인
exemONE 수집 서버에서 아래 도메인의 443 포트로 접근할 수 있어야 합니다.
| 용도 | 도메인 |
|---|---|
| 인증 | login.microsoftonline.com |
| 리소스 관리 API | management.azure.com |
필수 권한
모니터링 대상 리소스 종류에 따라 아래 역할(Role) 권한이 필요합니다.
Microsoft.DBforMySQL/flexibleServers/read
Microsoft.DBforMariaDB/servers/read
Microsoft.DBforPostgreSQL/flexibleServers/read
Microsoft.Sql/servers/databases/read
Microsoft.Cache/Redis/read
Microsoft.Insights/Metrics/Read
Microsoft.Compute/skus/read
Microsoft.AlertsManagement/alerts/read
Microsoft.Resources/subscriptions/read
인증 준비
exemONE 계정(테넌트) 등록 화면에서는 Tenant ID, Client ID, Client Secret 세 가지 정보를 입력합니다. Client ID와 Client Secret은 Azure Portal에서 앱 등록을 통해 발급받아야 합니다.
Azure Portal에서 앱 등록을 클릭합니다.
+ 새 등록을 클릭해 앱을 등록합니다.
Cloud Shell을 실행하고 아래 명령을 입력합니다.
az ad sp create-for-rbac -n (앱 등록 이름) --role Contributor --scopes /subscriptions/(Subscription Id)출력 결과 중
appId는 Client ID,password는 Client Secret 값이므로 확인하여 등록 화면에 입력합니다.
위 명령의 --scopes 파라미터에 사용하는 Subscription ID는 서비스 주체(Service Principal)에 권한을 부여하기 위한 값이며, exemONE 계정 등록 화면에는 Subscription ID를 입력하는 별도 항목이 없습니다. 계정 연동 후에는 리소스 목록 화면에서 Subscription 정보를 확인할 수 있습니다.
에이전트 설치
AWS·Azure 공통으로, 클라우드 리소스를 수집하려면 exemone-cloud-agent를 서버에 설치해야 합니다.
모듈 설명
exemone-cloud-agent는 AWS·Azure 클라우드 환경의 리소스를 모니터링하기 위한 에이전트입니다. bin 파일을 사용해 서버에 단독으로 설치합니다.
| 항목 | 내용 |
|---|---|
| OS | Linux |
| Arch | 64bit (AMD64 · ARM64) |
| Protocol | gRPC 9009 → Receiver |
설치를 시작하기 전에 이 문서의 AWS 필수 권한, Azure 필수 권한을 먼저 확인하세요.
에이전트 등록하기
서버에 Cloud Agent를 설치하기 전에 exemONE 웹 UI에서 에이전트를 먼저 등록해야 합니다. 등록 시 발급되는 Agent ID와 Access Token은 설치 후 agent.yaml 설정에 필요합니다.
좌측 메뉴 하단 Profile > 환경설정에서 Management > Agent를 선택하세요.

- Agent List & Management 탭에서 [Add Agent]를 클릭합니다.
- Agent Type을 Cloud로 선택하고 Agent Name을 입력합니다.
- [Regenerate]를 클릭해 Agent ID와 Access Token을 발급받고, 함께 기록해 둡니다.
- [Save]를 클릭합니다.

Access Token은 초기 등록 시와 재발급(Regenerate) 시에만 확인할 수 있습니다. [Regenerate] 이후 반드시 [Save]를 클릭해야 저장됩니다.
에이전트 설치하기
bin 파일로 설치하기
실행 권한을 부여합니다.
chmod +x setup_exemone-cloud-agent_{version}.bin설치 파일을 실행하고 새로 설치 여부를 확인하는 프롬프트에서
y를 입력합니다../setup_exemone-cloud-agent_{version}.bin=====================================================
exemone-cloud-agent Install
=====================================================
new install start
Would you like to do a new install? (y/n)
y
xmSuccess(0): Installation is complete.설치 완료 후
conf/agent.yaml파일을 열어 위에서 발급받은 에이전트 정보를 입력합니다.agent_id: <에이전트 ID>
access_token: <엑세스 토큰>
receiver_addr: <Receiver IP>:9009노트agent_id:등 키 뒤의 콜론(:) 다음에 반드시 한 칸을 띄워야 합니다.에이전트를 시작합니다.
./start.sh
Docker bin 파일로 설치하기
실행 권한을 부여합니다.
chmod +x setup_exemone-cloud-agent_{version}_docker.bin설치 파일을 실행하고 프롬프트에서
y를 입력합니다../setup_exemone-cloud-agent_{version}_docker.bin=====================================================
exemone-cloud-agent Install
=====================================================
new install start
Would you like to do a new install? (y/n)
y
Loaded image: maxgauge/exemone-cloud-agent:{version}
xmSuccess(0): Installation is complete.설치 완료 후
conf/agent.yaml파일을 열어 위에서 발급받은 에이전트 정보를 입력합니다.agent_id: <에이전트 ID>
access_token: <엑세스 토큰>
receiver_addr: <Receiver IP>:9009노트agent_id:등 키 뒤의 콜론(:) 다음에 반드시 한 칸을 띄워야 합니다.에이전트를 시작하고 컨테이너 상태를 확인합니다.
./start.sh
docker ps