문제 해결을 위해 앱 인스턴스에 연결
참고 항목
기본, 표준 및 엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.
표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.
이 문서는 기본/표준 ✅ 엔터프라이즈에✅ 적용됩니다.
이 문서에서는 애플리케이션 인스턴스 내의 셸 환경에 액세스하여 고급 문제 해결을 수행하는 방법을 설명합니다.
Azure Spring Apps는 다양한 관리형 문제 해결 방법을 제공하지만 셸 환경을 사용하여 고급 문제 해결을 수행할 수 있습니다. 예를 들어 다음과 같은 문제 해결 작업을 수행할 수 있습니다.
- JDK(Java Development Kit) 도구를 직접 사용합니다.
- 가상 네트워크 및 비 가상 네트워크 인스턴스 모두에 대한 네트워크 연결 및 API 호출 대기 시간에 대한 앱의 백 엔드 서비스에 대해 진단합니다.
- 스토리지 용량, 성능 및 CPU/메모리 문제를 진단합니다.
필수 조건
Azure Spring Apps 확장을 사용하는 Azure CLI. 다음 명령을 사용하여 이전 버전을 제거하고 최신 확장을 설치합니다. 이전에
spring-cloud
확장을 설치한 경우 구성 및 버전 불일치를 방지하기 위해 이 확장을 제거합니다.az extension remove --name spring az extension add --name spring az extension remove --name spring-cloud
Azure Spring Apps에 배포된 애플리케이션.
사용자 지정 컨테이너를 배포한 경우 셸 프로그램입니다. 기본값은
/bin/sh
입니다.
Azure 역할 할당
앱 인스턴스에 연결하기 전에 Azure Spring Apps Connect 역할이 부여되어야 합니다. 앱 인스턴스에 연결하려면 데이터 작업 권한 Microsoft.AppPlatform/Spring/apps/deployments/connect/action
이 필요합니다.
Azure Portal 또는 Azure CLI를 사용하여 Azure 역할을 할당할 수 있습니다.
다음 단계를 통해 Azure Portal을 사용하여 Azure 역할을 할당합니다.
Azure Portal을 엽니다.
기존 Azure Spring Apps 서비스 인스턴스를 엽니다.
왼쪽 메뉴에서 액세스 제어(IAM)를 선택합니다.
명령 모음에서 추가를 선택한 다음 역할 할당 추가를 선택합니다.
목록에서 Azure Spring Apps Connect 역할을 검색한 다음, 다음을 선택합니다.
멤버 선택을 선택한 다음 사용자 이름을 검색합니다.
검토 + 할당을 선택합니다.
앱 인스턴스에 연결
Azure Portal 또는 Azure CLI를 사용하여 앱 인스턴스를 연결할 수 있습니다.
다음 단계를 통해 Azure Portal 사용하여 앱 인스턴스를 연결합니다.
Azure Portal을 엽니다.
기존 Azure Spring Apps 서비스 인스턴스를 엽니다.
메뉴 왼쪽에서 앱을 선택한 다음 앱 가운데 하나를 선택합니다.
왼쪽 메뉴에서 콘솔을 선택합니다.
애플리케이션 인스턴스를 선택합니다.
컨테이너에서 실행할 셸을 선택하거나 입력합니다.
연결을 선택합니다.
앱 인스턴스 문제 해결
앱 인스턴스에 연결한 후 힙 메모리의 상태를 확인할 수 있습니다.
다음 명령을 사용하여 일반적으로 1
인 Java 프로세스 ID를 찾습니다.
jps
출력은 다음 예제와 같아야 합니다.
그런 후, 다음 명령을 사용해 JDK 도구를 실행하여 결과를 확인합니다.
jstat -gc 1
출력은 다음 예제와 같아야 합니다.
앱 인스턴스에서 연결 끊기
문제 해결을 마쳤으면 exit
명령을 사용하여 앱 인스턴스에서 연결을 끊거나 Ctrl+d
를 누릅니다.
문제 해결 도구
다음 목록에서는 문제 해결에 사용할 수 있는 미리 설치된 도구 중 일부에 대해 설명합니다.
lsof
- 열려 있는 파일을 나열합니다.top
- 시스템 요약 정보 및 현재 사용률을 표시합니다.ps
- 실행 중인 프로세스의 스냅샷을 가져옵니다.netstat
- 네트워크 연결 및 인터페이스 통계를 인쇄합니다.nslookup
- 인터넷 이름 서버를 대화형으로 쿼리합니다.ping
- 네트워크 호스트에 연결할 수 있는지 여부를 테스트합니다.nc
- TCP 또는 UDP를 사용하여 네트워크 연결에서 읽고 씁니다.wget
- 파일을 다운로드하고 REST API와 상호 작용할 수 있습니다.df
- 사용 가능한 디스크 공간을 표시합니다.
jps
, jcmd
및 jstat
와 같은 JDK 번들 도구를 사용할 수도 있습니다.
다음 목록에서는 서비스 계획 및 앱 배포 유형에 따라 사용 가능한 도구를 보여 줍니다.
- 소스 코드, JAR 및 아티팩트 배포:
- 기본, 표준 및 표준 사용량 및 전용 플랜:
- 일반 도구 - 예
- JDK 도구 - 예(Java 워크로드에만 해당)
- 엔터프라이즈 계획:
- 일반적인 도구 - 작성기에서 선택한 OS 스택에 따라 달라집니다. 예(전체 OS 스택의 경우) 아니요(기본 OS 스택의 경우)
- JDK 도구 - 예(Java 워크로드에만 해당)
- 기본, 표준 및 표준 사용량 및 전용 플랜:
- 사용자 지정 이미지 배포: 이미지에 설치된 도구 집합에 따라 달라집니다.
참고 항목
JDK 도구는 소스 코드 배포 유형의 경로에 포함되지 않습니다. JDK 명령을 실행하기 전에 export PATH="$PATH:/layers/tanzu-buildpacks_microsoft-openjdk/jdk/bin"
을 실행합니다.
제한 사항
애플리케이션 인스턴스 내에서 셸 환경을 사용하는 경우 다음과 같은 제한 사항이 있습니다.
앱이 루트가 아닌 사용자로 실행 중이므로 루트 권한이 필요한 일부 작업을 실행할 수 없습니다. 예를 들어 시스템 패키지 관리자
apt / yum
을 사용하여 새 도구를 설치할 수 없습니다.일부 Linux 기능은 금지되어 있으므로
tcpdump
과 같은 특별한 권한이 필요한 도구는 작동하지 않습니다.