그래프 탐색기

그래프 탐색기

그래프 탐색기를 사용해 쿼리를 실행하고 사용자 지정 필터를 적용해서 인프라를 이해할 수 있어요. 그래프 탐색기에 접근하려면 HCP 조직의 왼쪽 탐색 패널에서 Graph explorer를 클릭하세요.

출처: 문서

본문

쿼리 실행

탐색기 보기에서는 다음 방법으로 쿼리를 실행할 수 있어요.

  • 쿼리 빌더 UI 사용하기.
  • JSON 쿼리 실행하기.

쿼리 빌더 사용

Infragraph는 인벤토리의 리소스 목록에서 쿼리를 빌드하는 UI를 제공해요. UI를 사용해 쿼리를 빌드하려면 다음 단계를 완료하세요.

  • Graph explorer로 이동하세요.
  • Add resource type을 클릭하세요.
  • Resource types 목록에서 탐색(traversal)의 루트로 사용할 노드 유형을 선택하세요.
  • 선택적으로 특정 Source type을 선택하세요. 예를 들어 Virtual Machine 리소스 유형을 선택하거나 더 정확하게 AWS EC2 Instance를 선택할 수 있어요.
  • Add as resource type을 클릭하세요.
  • Add conditional relationship or filter를 클릭해 다른 노드 유형과 그 관계를 선택하거나, 기존 노드 결과를 필터링할 속성을 선택하세요.

JSON 쿼리 실행

Infragraph는 쿼리를 코드로 작성할 수 있는 JSON 기반 쿼리 언어를 제공해요. 그래프 탐색기에서 JSON 쿼리를 실행하려면 다음 단계를 완료하세요.

  • Clear query 버튼 옆의 </> 버튼을 클릭하세요.
  • 텍스트 상자에 쿼리를 작성하세요.
  • 텍스트 상자 밖을 클릭해 쿼리를 실행하세요.

전체 JSON 쿼리 언어 명세는 Infragraph 쿼리 언어 레퍼런스 문서를 참고하세요.

쿼리 저장

쿼리 빌더로 쿼리를 만든 후 저장해서 쿼리 카탈로그에 추가할 수 있어요. 쿼리를 저장하려면 다음 단계를 완료하세요.

  • Graph explorer에서 쿼리 위의 Save를 클릭하세요.
  • Name과 선택적인 Description을 입력하세요.
  • Save to query catalog를 클릭하세요.

그래프 보기

리소스 그래프는 리소스 간의 관계를 시각화해요. 이 그래프는 관련 리소스 사이에 선을 그려 환경을 이해하는 데 도움을 줘요. 리소스 노드를 클릭해 세부 정보를 검사할 수 있어요.

Infragraph는 리소스 지형을 다음 방식으로 시각화할 수 있어요.

  • Force directed: 관계가 가까운 서로 다른 리소스를 자동으로 클러스터링해요.
  • Stacked by type: 리소스를 유형에 따라 세로로 쌓아 클러스터링해요.
  • Radial: 리소스를 원형으로 배치해 연결 볼륨과 연결이 많은 허브를 강조해요.

Force directed

이 모드를 사용해 리소스가 서로 어떻게 관련되는지 이해할 수 있어요.

이 그래프는 한 리전의 가상 머신과 연결된 EC2 볼륨을 사용 중인 서브넷과 VPC에 따라 매핑해요. 보기 영역에서의 분포는 리소스가 서로 얼마나 밀접하게 관련되는지 대략적으로 보여줘서, 활성화하는 워크로드에 따라 서브넷과 VPC를 이해하는 데 도움을 줘요.

Stacked by type

이 모드를 사용해 쿼리 결과에서 리소스의 상대적 분포를 이해할 수 있어요.

이 그래프는 한 리전의 가상 머신과 연결된 EC2 볼륨을 사용 중인 서브넷과 VPC에 따라 매핑해요. 보기 영역에서의 분포는 VPC와 서브넷 리소스를 다른 리소스와 분리해서 특정하기 쉽게 도와줘요.

Radial 보기

이 모드를 사용해 연결을 나란히 비교하고 연결이 많은 의존성을 즉시 식별할 수 있어요.

이 그래프는 인프라 리소스를 원의 바깥 둘레를 따라 배치하고 중심을 가로지르는 연결선을 그려요. 이 레이아웃은 중요한 리소스를 찾아내고 서로 다른 리소스나 리소스 유형 간의 관계 볼륨과 분포를 비교하는 데 도움을 줘요.

테이블 보기

Table을 클릭해 리소스 이름과 데이터 소스를 나열하는 테이블로 결과를 표시하세요. 리소스의 이름을 클릭해 리소스 세부 정보를 검사하세요.

연결된 리소스의 테이블을 반환해 리소스 간 의존성을 이해할 수도 있어요.

예시 소스 쿼리

이 페이지의 이미지에 있는 예시는 다음 쿼리로 생성했어요.

{
  "edge": {
    "absent": false,
    "edgeTypes": [
      "CONTAINS"
    ],
    "nodeQuery": {
      "edge": {
        "absent": false,
        "edgeTypes": [
          "CONTAINS"
        ],
        "nodeQuery": {
          "edge": {
            "absent": false,
            "edgeTypes": [
              "CONTAINS"
            ],
            "nodeQuery": {
              "edge": {
                "absent": false,
                "edgeTypes": [
                  "ATTACHES_TO"
                ],
                "direction": "INCOMING",
                "nodeQuery": {
                  "edge": {
                    "absent": false,
                    "edgeTypes": [
                      "CONTAINS"
                    ],
                    "direction": "INCOMING",
                    "nodeQuery": {
                      "node": {
                        "unifiedTypes": [
                          "ZONE"
                        ]
                      }
                    }
                  },
                  "node": {
                    "unifiedTypes": [
                      "VOLUME"
                    ]
                  }
                }
              },
              "node": {
                "unifiedTypes": [
                  "VIRTUAL_MACHINE"
                ]
              }
            }
          },
          "node": {
            "unifiedTypes": [
              "SUBNET"
            ]
          }
        }
      },
      "node": {
        "unifiedTypes": [
          "VIRTUAL_NETWORK"
        ]
      }
    }
  },
  "node": {
    "unifiedTypes": [
      "REGION"
    ]
  }
}

더 알아보기 (Learn more)