비고
Azure SRE 에이전트가 있습니다. SRE 에이전트를 사용하면 Microsoft Azure에 대한 제품별 추가 사용 약관에 동의하게 됩니다.
SRE(사이트 안정성 엔지니어링)는 자동화와 자동 관리 관리를 통해 안정적이고 확장성 있는 시스템을 만드는 데 중점을 둡니다. Azure SRE Agent는 AI 기반 모니터링, 문제 수정 및 수정 기능을 제공하여 이러한 원칙을 클라우드 환경에 적용합니다.
SRE Agent는 일상적인 운영 작업을 자동화하고 합리적인 인사이트를 제공하여 수동 개입을 줄이는 동시에 애플리케이션 안정성을 유지하는 데 도움이 됩니다. SRE Agent는 챗봇으로 제공되므로 질문을 하고 자연어 명령을 내려 애플리케이션과 서비스를 유지 관리할 수 있습니다. 정확도와 제어력을 보장하기 위해, 에이전트가 사용자를 대신하여 수행하는 모든 조치에는 사용자의 승인이 필요합니다.
이 자습서의 샘플 앱은 제어된 방식으로 HTTP 500 오류를 시뮬레이션하여 오류 검색을 보여 줍니다. Azure App Service 배포 슬롯을 사용하여 다양한 앱 구성을 나란히 실행하면 이러한 시나리오를 안전하게 테스트할 수 있습니다.
INJECT_ERROR 앱 설정을 1로 설정하여 오류 시뮬레이션을 사용하도록 설정합니다. 이 설정을 사용하도록 설정하면 단추를 여러 번 선택한 후 앱에서 HTTP 500 오류가 throw됩니다. 그러면 SRE 에이전트가 애플리케이션 오류에 어떻게 대응하는지 확인할 수 있습니다.
이 자습서에서는 다음을 수행합니다.
- Azure Portal을 사용하여 App Service 앱을 만듭니다.
- GitHub에서 샘플 앱을 배포합니다.
- 시작 명령을 사용하여 앱을 구성하고 로깅을 사용하도록 설정합니다.
- 실패를 시뮬레이션하는 배포 슬롯을 만듭니다.
- 앱을 모니터링할 에이전트를 설정합니다.
- 고장난 슬롯으로 전환하여 오류를 발생시킵니다.
- AI 기반 채팅을 사용하여 교환을 롤백하여 문제를 진단하고 해결합니다.
필수 조건
에이전트를 만들려면 에이전트에 올바른 권한을 부여하고, 올바른 설정을 구성하고, 올바른 리소스에 대한 액세스 권한을 부여해야 합니다.
Azure 계정: 활성 구독이 있는 Azure 계정이 필요합니다. 계정이 아직 없는 경우 계정을 무료로 만들 수 있습니다.
보안 컨텍스트: 사용자 계정에
Microsoft.Authorization/roleAssignments/write역할 기반 액세스 제어 관리자 또는 사용자 액세스 관리자 권한으로 사용 권한이 있는지 확인합니다.방화벽 설정: 방화벽 설정의 허용 목록에 추가
*.azuresre.ai합니다. 일부 네트워킹 프로필은 기본적으로*.azuresre.ai도메인에 대한 액세스를 차단할 수 있습니다.
1. App Service 앱 만들기
SRE Agent가 모니터링할 수 있는 웹앱을 만드는 것부터 시작합니다.
Azure Portal에 로그인합니다.
검색 창에서 App Services를 검색한 다음 결과에서 선택합니다.
+>웹앱 만들기를 선택합니다.
기본 탭에서 다음 세부 정보를 제공합니다.
프로젝트 세부 정보에 다음 값을 입력합니다.
설정 가치 Subscription Azure 구독 리소스 그룹 새로운>my-app-service-group을 만듭니다. 인스턴스 세부 정보에 다음 값을 입력합니다.
설정 가치 이름 my-sre-app 출판하다 코드 런타임 스택 .NET 9(STS) 운영 체제 Windows 지역 가까운 지역 배포 탭을 선택합니다.
인증 설정에서 기본 인증을 사용하도록 설정합니다.
비고
기본 인증은 나중에 GitHub에서 일회성 배포에 사용됩니다. 프로덕션 환경에서 기본 인증을 사용하지 않도록 설정합니다.
검토 및 만들기를 선택한 다음, 유효성 검사가 통과되면 만들기를 선택합니다.
배포가 완료되면 배포가 완료되었습니다라는 메시지가 나타납니다.
2. 샘플 앱 배포
이제 App Service 앱이 만들어졌으므로 GitHub에서 샘플 애플리케이션을 배포합니다.
Azure Portal에서 리소스로 이동을 선택하여 새로 만든 App Service 앱으로 이동합니다.
왼쪽 메뉴의 배포 섹션에서 배포 센터를 선택합니다.
설정 탭에서 다음 값을 구성합니다.
재산 가치 출처 외부 Git 리포지토리 https://github.com/Azure-Samples/app-service-dotnet-agent-tutorial분기 main 저장을 선택하여 배포 설정을 적용합니다.
3. 샘플 앱 확인
배포 후 샘플 앱이 예상대로 실행되는지 확인합니다.
App Service 앱의 왼쪽 메뉴에서 개요를 선택합니다.
찾아보기를 선택하여 새 브라우저 탭에서 앱을 엽니다. 로딩하는 데 1분 정도 걸릴 수 있습니다.
앱에는 큰 카운터와 두 개의 단추가 표시됩니다.
증분 단추를 여러 번 선택하여 카운터 증가를 관찰합니다.
4. 오류 시뮬레이션을 위한 배포 슬롯 설정
앱 오류 시나리오를 시뮬레이션하려면 보조 배포 슬롯을 추가합니다.
App Service 앱의 왼쪽 메뉴에 있는 배포 섹션에서 배포 슬롯을 선택합니다.
슬롯 추가를 선택합니다.
다음 값을 입력합니다.
재산 가치 비고 이름 broken 오류 시나리오는 이 슬롯에서 트리거됩니다. 다음의 설정 복제 my-sre-app 이 속성은 메인 앱의 구성을 복사합니다. 창의 맨 아래로 스크롤하여 추가를 선택합니다. 슬롯 만들기를 완료하는 데 1분 정도 걸릴 수 있습니다.
슬롯에 샘플 앱 배포
슬롯이 만들어진 후 목록에서 손상된 슬롯을 선택합니다.
왼쪽 메뉴의 배포 섹션에서 배포 센터를 선택합니다.
설정 탭에서 다음 값을 구성합니다.
재산 가치 출처 외부 Git 리포지토리 https://github.com/Azure-Samples/app-service-dotnet-agent-tutorial분기 main 저장을 선택하여 배포 설정을 적용합니다.
오류 시뮬레이션을 사용하도록 설정하는 앱 설정 추가
오류 시뮬레이션을 제어하려면 앱이 런타임에 확인하는 앱 설정을 구성합니다.
App Service 앱의 왼쪽 메뉴에 있는 설정 섹션에서 환경 변수를 선택합니다.
맨 위에서 올바른 슬롯이 선택되었는지 확인합니다(예: broken).
앱 설정 탭에서 + 추가를 선택합니다.
다음 값을 입력합니다.
재산 가치 비고 이름 INJECT_ERROR 정확히 INJECT_ERROR(모두 대문자, 공백 없음) 값 1 앱에서 오류 시뮬레이션 사용하도록 설정 배포 슬롯 설정 상자가 선택되어 있지 않았는지 확인합니다.
적용을 선택하여 설정을 추가합니다.
환경 변수 페이지의 맨 아래에서 적용을 선택하여 변경 내용을 적용합니다.
메시지가 표시되면 확인을 선택하여 확인하고 선택한 슬롯에서 앱을 다시 시작합니다.
5. 에이전트 만들기
이제 App Service 앱을 모니터링하는 에이전트를 만듭니다.
온보딩 이메일에 제공된 링크에 따라 Azure Portal에서 SRE 에이전트에 액세스합니다.
+ 만들기를 선택합니다.
에이전트 만들기 창에서 다음 값을 입력합니다.
재산 가치 비고 Subscription Azure 구독 리소스 그룹 my-sre-agent-group 에이전트를 위한 새로운 그룹입니다. 이름 my-sre-agent 지역 미국 동부 2 리소스 그룹 선택을 선택합니다.
모니터링할 선택한 리소스 그룹 창에서 my-app-service-group 옆에 있는 확인란을 선택합니다.
저장을 선택합니다.
에이전트 만들기 창으로 돌아가서 만들기를 선택합니다. 에이전트 만들기 프로세스를 완료하는 데 몇 분 정도 걸립니다.
6. 에이전트와 채팅
에이전트가 배포되어 리소스 그룹에 연결되면 자연어를 사용하여 앱을 모니터링하고 문제를 해결하여 에이전트와 상호 작용할 수 있습니다.
Azure Portal에서 Azure SRE 에이전트를 검색하고 선택합니다.
에이전트 목록에서 my-app-service-sre-agent를 선택합니다.
에이전트와의 채팅을 선택합니다.
채팅 상자에서 다음 명령을 입력합니다.
List my App Service apps에이전트는 my-app-service-group 리소스 그룹에 배포된 App Service 앱 목록으로 응답합니다.
이제 에이전트가 앱을 볼 수 있으므로 장애를 시뮬레이션하고 에이전트가 문제를 해결하도록 할 준비가 되었습니다.
7. 앱 중단
손상된 배포 슬롯으로 바꿔서 실패 시나리오를 시뮬레이션합니다.
App Service 앱의 왼쪽 메뉴에 있는 배포 섹션에서 배포 슬롯을 선택합니다.
교환을 선택합니다.
교환 창에서 다음 값을 구성합니다.
재산 가치 비고 출처 my-sre-app-broken 결함이 있는 버전이 있는 슬롯 대상 my-sre-app 프로덕션 슬롯 아래쪽으로 스크롤하여 스왑 시작을 선택합니다. 교환 작업을 완료하는 데 1분 정도 걸릴 수 있습니다.
교환이 완료되면 앱의 URL로 이동합니다.
증가 단추를 6번 선택합니다.
앱이 실패하고 HTTP 500 오류가 반환됩니다.
더 많은 HTTP 500 오류를 생성하려면 페이지를 여러 번 새로 고칩니다(Command+R 또는 F5 키를 누름). 이러한 오류는 SRE 에이전트가 문제를 검색하고 진단하는 데 도움이 됩니다.
8. 앱 수정
이제 앱에 오류가 발생했으므로 SRE Agent를 사용하여 문제를 진단하고 해결합니다.
Azure Portal에서 Azure SRE 에이전트를 검색하고 선택합니다.
에이전트 목록에서 my-app-service-sre-agent를 선택합니다.
에이전트와의 채팅을 선택합니다.
채팅 상자에서 다음 명령을 입력합니다.
What's wrong with my-sre-app?에이전트가 앱의 상태를 분석하기 시작합니다. 가용성, CPU 및 메모리 사용량 및 최근 슬롯 교환과 관련된 진단 메시지가 표시됩니다.
각 세션은 다를 수 있지만 다음 예와 비슷한 메시지가 나타납니다.
이제 슬롯을 다시 바꿔서 my-sre-app에 대한 완화 조치를 수행하여 애플리케이션을 정상 상태로 복구할 예정입니다. 슬롯을 다시 교환하는 것이 항상 즉시 상태를 복원하는 것은 아닙니다. 진행률을 계속 알려드리겠습니다.
일시 중지 후 에이전트는 롤백을 승인하라는 메시지를 표시합니다.
my-sre-app에 대한 애플리케이션 가용성을 복원하기 위한 슬롯 교환 롤백 수행
[승인][거부]
[승인]을 선택하여 롤백을 시작합니다.
롤백이 완료되면 에이전트가 다음을 확인합니다.
my-sre-app에 대한 슬롯 교환이 성공적으로 완료되었습니다(타임스탬프). 생산 슬롯이 복원되었습니다. 이제 완화 후 단계를 계속 진행합니다.
교환 관련 가동 중지 시간에 대한 문제를 제기하기 위해 올바른 GitHub 리포지토리 URL을 요청합니다.앱을 모니터링하고 5분 안에 가용성 업데이트를 제공합니다.
문제가 발생할 GitHub 리포지토리 URL을 제공하세요.
9. 수정 사항 확인
SRE 에이전트가 슬롯 교환을 롤백한 후 앱이 올바르게 작동하는지 확인합니다.
개요 페이지에서 찾아보기를 선택하여 브라우저에서 App Service 앱을 엽니다.
ERROR INJECTION ENABLED라는 텍스트가 더 이상 나타나지 않는 것을 보면 앱이 원래 상태로 돌아갔음을 알 수 있습니다.
오류가 나타나지 않는지 확인하려면 증가 단추를 6번 선택합니다.
자원을 정리하세요
이 자습서에서 만든 앱과 에이전트가 더 이상 필요하지 않은 경우, 요금이 부과되지 않도록 관련 리소스 그룹을 삭제할 수 있습니다.
이 자습서에서는 다음 리소스 그룹을 만들었습니다.
- my-app-service-group(App Service 리소스 그룹)
- my-sre-agent-group(SRE 에이전트 리소스 그룹)
각 리소스 그룹에 대해 다음 단계를 따릅니다.
Azure Portal에서 리소스 그룹으로 이동합니다.
삭제하려는 리소스 그룹을 선택합니다.
개요 탭에서 리소스 그룹 삭제를 선택합니다.
확인 대화 상자에서 리소스 그룹의 이름을 입력합니다.
을 선택하고을 삭제합니다. 삭제를 완료하는 데 몇 분 정도 걸립니다.