AWS Lambda 함수를 사용한 FSx ONTAP 모니터링 및 자동 크기 조정
이 페이지에서는 AWS FSx ONTAP 모니터링과 임계값에 따른 자동 크기 조정을 자동화하는 방법을 설명합니다.
개요: AWS Lambda 함수를 통한 FSx ONTAP 모니터링 및 자동 크기 조정
FSx ONTAP 은 AWS에서 제공되는 1자 엔터프라이즈급 클라우드 스토리지 서비스로, 인기 있는 NetApp ONTAP 파일 시스템을 기반으로 높은 안정성, 확장성, 고성능, 다양한 기능을 갖춘 파일 스토리지를 제공합니다.
FSx ONTAP 원활한 배포 및 관리 환경을 제공합니다. 시작하는 데 저장 전문 지식은 필요하지 않습니다. 모니터링을 간소화하기 위해 AWS 람다 함수(임계값에 따라 총 스토리지 용량, 볼륨 크기 또는 LUN 크기를 자동으로 조정)를 사용할 수 있습니다. 이 문서에서는 FSx ONTAP 정기적으로 모니터링하고, 사용자가 지정한 임계값을 넘을 때 알림을 보내고 크기를 조정하고, 관리자에게 크기 조정 활동을 알리는 자동화된 설정을 만드는 단계별 가이드를 제공합니다.
특징
이 솔루션은 다음과 같은 기능을 제공합니다.
-
모니터링 능력:
-
FSx ONTAP 의 전체 스토리지 용량 사용
-
각 볼륨의 사용(씬 프로비저닝/두꺼운 프로비저닝)
-
각 LUN의 사용(씬 프로비저닝/두꺼운 프로비저닝)
-
-
사용자 정의 임계값을 초과하면 위의 항목의 크기를 조정할 수 있는 기능
-
이메일을 통해 사용 경고 및 크기 조정 알림을 수신하는 알림 메커니즘
-
사용자 정의 임계값보다 오래된 스냅샷을 삭제하는 기능
-
FlexClone 볼륨 및 연관된 스냅샷 목록을 가져오는 기능
-
정기적으로 점검을 모니터링하는 기능
-
인터넷 접속 여부와 관계없이 솔루션을 사용할 수 있는 능력
-
수동으로 또는 AWS CloudFormation 템플릿을 사용하여 배포하는 기능
-
단일 VPC에서 여러 FSx ONTAP 파일 시스템을 모니터링하는 기능
필수 조건
시작하기 전에 다음 전제 조건이 충족되었는지 확인하세요.
-
FSx ONTAP 이 배포되었습니다
-
FSx ONTAP 에 연결할 수 있는 개인 서브넷
-
FSx ONTAP 에 "fsxadmin" 비밀번호가 설정되었습니다.
고수준 아키텍처
-
AWS Lambda 함수는 FSx ONTAP 에 API 호출을 수행하여 스토리지 용량, 볼륨 및 LUN의 크기를 검색하고 업데이트합니다.
-
보안을 강화하기 위해 "fsxadmin" 비밀번호가 AWS SSM Parameter Store에 보안 문자열로 저장됩니다.
-
AWS SES(Simple Email Service)는 크기 조정 이벤트가 발생할 때 최종 사용자에게 알리는 데 사용됩니다.
-
인터넷 접속이 없는 VPC에 솔루션을 배포하는 경우 AWS SSM, FSx 및 SES에 대한 VPC 엔드포인트가 설정되어 Lambda가 AWS 내부 네트워크를 통해 이러한 서비스에 도달할 수 있습니다.
솔루션 배포
자동 배포
|
단일 FSx ONTAP 파일 시스템을 포함합니다. |
이 솔루션의 자동 배포를 완료하려면 다음 단계를 따르세요.
1단계: GitHub 저장소 복제
로컬 시스템에서 GitHub 저장소를 복제합니다.
git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
2단계: AWS S3 버킷 설정
-
AWS 콘솔 > *S3*로 이동하여 *버킷 만들기*를 클릭합니다. 기본 설정으로 버킷을 생성합니다.
-
버킷에 들어가면 업로드 > *파일 추가*를 클릭하고 시스템의 복제된 GitHub 저장소에서 *Utilities.zip*을 선택합니다.
3단계: AWS SES SMTP 설정(인터넷 접속이 불가능한 경우 필요)
인터넷 접속 없이 솔루션을 배포하려면 이 단계를 따르세요(참고: VPC 엔드포인트를 설정하는 데 추가 비용이 발생합니다.)
-
AWS 콘솔 > AWS Simple Email Service(SES) > *SMTP 설정*으로 이동한 후 *SMTP 자격 증명 만들기*를 클릭합니다.
-
IAM 사용자 이름을 입력하거나 기본값을 그대로 두고 *사용자 만들기*를 클릭합니다. 나중에 사용할 수 있도록 *SMTP 사용자 이름*과 *SMTP 비밀번호*를 저장하세요.
SES SMTP 설정이 이미 되어 있는 경우 이 단계를 건너뜁니다.
4단계: AWS CloudFormation 배포
-
AWS 콘솔 > CloudFormation > 스택 생성 > 새 리소스 사용(표준)으로 이동합니다.
Prepare template: Template is ready Specify template: Upload a template file Choose file: Browse to the cloned GitHub repo and select fsxn-monitoring-solution.yaml
다음을 클릭하세요
-
스택 세부정보를 입력하세요. 다음을 클릭하고 "AWS CloudFormation이 IAM 리소스를 생성할 수 있음을 인정합니다" 확인란을 선택하고 제출을 클릭합니다.
"VPC에 인터넷 접속이 가능한가요?"가 False로 설정된 경우, "AWS SES의 SMTP 사용자 이름"과 "AWS SES의 SMTP 비밀번호"가 필요합니다. 그렇지 않으면 비워둘 수 있습니다. -
CloudFormation 배포가 시작되면 "발신자 이메일 ID"에 언급된 이메일 ID로 AWS SES에서 해당 이메일 주소 사용을 승인해 달라는 요청 이메일을 받게 됩니다. 링크를 클릭하여 이메일 주소를 확인하세요.
-
CloudFormation 스택 배포가 완료되면 경고/알림이 있는 경우 알림 세부 정보가 포함된 이메일이 수신자 이메일 ID로 전송됩니다.
수동 배포
|
단일 VPC에서 여러 FSx ONTAP 파일 시스템 모니터링을 지원합니다. |
이 솔루션의 수동 배포를 완료하려면 다음 단계를 따르세요.
1단계: GitHub 저장소 복제
로컬 시스템에서 GitHub 저장소를 복제합니다.
git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
2단계: AWS SES SMTP 설정(인터넷 접속이 불가능한 경우 필요)
인터넷 접속 없이 솔루션을 배포하려면 이 단계를 따르세요(참고: VPC 엔드포인트를 설정하는 데 추가 비용이 발생합니다.)
-
AWS 콘솔 > AWS Simple Email Service(SES) > SMTP 설정으로 이동한 후 *SMTP 자격 증명 만들기*를 클릭합니다.
-
IAM 사용자 이름을 입력하거나 기본값을 그대로 두고 '만들기'를 클릭합니다. 나중에 사용할 수 있도록 사용자 이름과 비밀번호를 저장하세요.
3단계: fsxadmin 암호에 대한 SSM 매개변수 생성
AWS 콘솔 > *매개변수 저장소*로 이동하여 *매개변수 생성*을 클릭합니다.
Name: <Any name/path for storing fsxadmin password> Tier: Standard Type: SecureString KMS key source: My current account KMS Key ID: <Use the default one selected> Value: <Enter the password for "fsxadmin" user configured on FSx ONTAP>
*매개변수 만들기*를 클릭합니다. 모니터링할 모든 FSx ONTAP 파일 시스템에 대해 위의 단계를 반복합니다.
인터넷 접속 없이 솔루션을 배포하는 경우, SMTP 사용자 이름과 SMTP 비밀번호를 저장하는 것과 동일한 단계를 수행합니다. 그렇지 않으면 이 2개의 매개변수를 추가하는 것을 건너뜁니다.
4단계: 이메일 서비스 설정
AWS 콘솔 > *Simple Email Service(SES)*로 이동하여 *ID 생성*을 클릭합니다.
Identity type: Email address Email address: <Enter an email address to be used for sending resizing notifications>
*신원 생성*을 클릭하세요
"발신자 이메일 ID"에 언급된 이메일 ID로 소유자에게 AWS SES에서 해당 이메일 주소 사용을 승인해 달라고 요청하는 이메일을 받게 됩니다. 링크를 클릭하여 이메일 주소를 확인하세요.
5단계: VPC 엔드포인트 설정(인터넷 접속이 불가능한 경우 필요)
|
인터넷 접속 없이 배포하는 경우에만 필요합니다. VPC 엔드포인트와 관련하여 추가 비용이 발생합니다. |
-
AWS 콘솔 > VPC > *엔드포인트*로 이동하여 *엔드포인트 생성*을 클릭하고 다음 세부 정보를 입력합니다.
Name: <Any name for the vpc endpoint> Service category: AWS Services Services: com.amazonaws.<region>.fsx vpc: <select the vpc where lambda will be deployed> subnets: <select the subnets where lambda will be deployed> Security groups: <select the security group> Policy: <Either choose Full access or set your own custom policy>
엔드포인트 만들기를 클릭합니다.
-
SES 및 SSM VPC 엔드포인트를 생성하는 것과 동일한 프로세스를 따르세요. 모든 매개변수는 위와 동일하지만, 서비스는 각각 com.amazonaws.<region>.smtp 및 *com.amazonaws.<region>.ssm*에 해당합니다.
6단계: AWS Lambda 함수 생성 및 설정
-
AWS 콘솔 > AWS Lambda > *함수*로 이동하고 FSx ONTAP 과 동일한 리전에서 *함수 생성*을 클릭합니다.
-
기본 설정인 *처음부터 작성자*를 사용하고 다음 필드를 업데이트하세요.
Function name: <Any name of your choice> Runtime: Python 3.9 Architecture: x86_64 Permissions: Select "Create a new role with basic Lambda permissions" Advanced Settings: Enable VPC: Checked VPC: <Choose either the same VPC as FSx ONTAP or a VPC that can access both FSx ONTAP and the internet via a private subnet> Subnets: <Choose 2 private subnets that have NAT gateway attached pointing to public subnets with internet gateway and subnets that have internet access> Security Group: <Choose a Security Group>
*함수 만들기*를 클릭합니다.
-
새로 만든 람다 함수로 이동합니다. > 레이어 섹션까지 아래로 스크롤하여 *레이어 추가*를 클릭합니다.
-
레이어 소스 아래의 *새 레이어 만들기*를 클릭하세요.
-
레이어를 만들고 Utilities.zip 파일을 업로드합니다. 호환 런타임으로 *Python 3.9*를 선택하고 *만들기*를 클릭합니다.
-
AWS Lambda 함수 > 계층 추가 > *사용자 지정 계층*으로 돌아가서 유틸리티 계층을 추가합니다.
-
Lambda 함수의 구성 탭으로 이동하여 *일반 구성*에서 *편집*을 클릭합니다. 제한 시간을 *5분*으로 변경하고 *저장*을 클릭합니다.
-
Lambda 함수의 권한 탭으로 이동하여 할당된 역할을 클릭합니다. 역할의 권한 탭에서 권한 추가 > *인라인 정책 만들기*를 클릭합니다.
-
JSON 탭을 클릭하고 GitHub 저장소에서 policy.json 파일의 내용을 붙여넣습니다.
-
${AWS::AccountId}의 모든 항목을 귀하의 계정 ID로 바꾸고 *정책 검토*를 클릭하세요.
-
정책 이름을 입력하고 *정책 만들기*를 클릭하세요.
-
-
git repo에서 *fsxn_monitoring_resizing_lambda.py*의 내용을 AWS Lambda 함수 코드 소스 섹션의 *lambda_function.py*로 복사합니다.
-
lambda_function.py와 같은 레벨에 새 파일을 만들고 이름을 *vars.py*로 지정한 다음 git 저장소에서 vars.py의 내용을 lambda 함수 vars.py 파일로 복사합니다. vars.py에서 변수 값을 업데이트합니다. 아래의 변수 정의를 참조하고 *배포*를 클릭하세요.
이름
유형
설명
fsx리스트
목록
(필수) 모니터링할 모든 FSx ONTAP 파일 시스템 목록입니다. 모니터링 및 자동 크기 조정을 위해 모든 파일 시스템을 목록에 포함합니다.
fsxMgmtIp
끈
(필수) AWS의 FSx ONTAP 콘솔에서 "관리 엔드포인트 - IP 주소"를 입력합니다.
fsx아이디
끈
(필수) AWS의 FSx ONTAP 콘솔에서 "파일 시스템 ID"를 입력합니다.
사용자 이름
끈
(필수) AWS의 FSx ONTAP 콘솔에서 FSx ONTAP "ONTAP 관리자 사용자 이름"을 입력하세요.
크기_임계값
정수
(필수) 0~100 사이의 임계값 백분율을 입력하세요. 이 임계값은 스토리지 용량, 볼륨 및 LUN 사용량을 측정하는 데 사용되며, 사용량이 이 임계값을 초과하면 크기 조정 활동이 발생합니다.
fsx_password_ssm_매개변수
끈
(필수) AWS Parameter Store에서 "fsxadmin" 비밀번호를 저장하는 데 사용되는 경로 이름을 입력하세요.
경고_알림
불
(필수) 스토리지 용량/볼륨/LUN 사용량이 75%를 초과하지만 임계값보다 낮을 때 알림을 받으려면 이 변수를 True로 설정합니다.
스냅샷 삭제 활성화
불
(필수) "snapshot_age_threshold_in_days"에 지정된 값보다 오래된 스냅샷에 대한 볼륨 레벨 스냅샷 삭제를 활성화하려면 이 변수를 True로 설정합니다.
스냅샷_연령_임계_일
정수
(필수) 볼륨 수준 스냅샷을 보관할 일수를 입력합니다. 제공된 값보다 오래된 스냅샷은 삭제되며, 해당 내용은 이메일을 통해 알려드립니다.
인터넷 접속
불
(필수) 이 람다가 배포된 서브넷에서 인터넷 접속이 가능한 경우 이 변수를 True로 설정합니다. 그렇지 않으면 False로 설정합니다.
smtp_지역
끈
(선택 사항) "internet_access" 변수가 False로 설정된 경우, 람다가 배포된 지역을 입력합니다. 예: us-east-1(이 형식)
smtp_사용자_이름_ssm_매개변수
끈
(선택 사항) "internet_access" 변수가 False로 설정된 경우 SMTP 사용자 이름을 저장하기 위해 AWS Parameter Store에서 사용되는 경로 이름을 입력합니다.
smtp_password_ssm_매개변수
끈
(선택 사항) "internet_access" 변수가 False로 설정된 경우 SMTP 비밀번호를 저장하기 위해 AWS Parameter Store에서 사용되는 경로 이름을 입력합니다.
발신자_이메일
끈
(필수) 모니터링 및 크기 조정과 관련된 알림을 보내는 람다 함수에서 사용할 SES에 등록된 이메일 ID를 입력하세요.
수신자_이메일
끈
(필수) 알림을 받으려는 이메일 ID를 입력하세요.
-
*테스트*를 클릭하고 빈 JSON 객체로 테스트 이벤트를 만든 다음, *호출*을 클릭하여 테스트를 실행하고 스크립트가 제대로 실행되는지 확인합니다.
-
성공적으로 테스트가 완료되면 구성 > 트리거 > *트리거 추가*로 이동합니다.
Select a Source: EventBridge Rule: Create a new rule Rule name: <Enter any name> Rule type: Schedule expression Schedule expression: <Use "rate(1 day)" if you want the function to run daily or add your own cron expression>
추가를 클릭하세요.
결론
제공된 솔루션을 사용하면 FSx ONTAP 스토리지를 정기적으로 모니터링하고, 사용자가 지정한 임계값에 따라 스토리지 크기를 조정하고, 알림 메커니즘을 제공하는 모니터링 솔루션을 쉽게 설정할 수 있습니다. 이를 통해 FSx ONTAP 사용하고 모니터링하는 프로세스가 원활해져 관리자는 비즈니스에 중요한 활동에 집중할 수 있고, 필요에 따라 스토리지가 자동으로 증가합니다.