Skip to main content
NetApp data management solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

AWS Lambda 함수를 사용한 FSx ONTAP 모니터링 및 자동 크기 조정

기여자 kevin-hoke

이 페이지에서는 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 버킷 설정
  1. AWS 콘솔 > *S3*로 이동하여 *버킷 만들기*를 클릭합니다. 기본 설정으로 버킷을 생성합니다.

  2. 버킷에 들어가면 업로드 > *파일 추가*를 클릭하고 시스템의 복제된 GitHub 저장소에서 *Utilities.zip*을 선택합니다.

    이 이미지는 zip 파일이 업로드되는 S3 창을 보여줍니다.

3단계: AWS SES SMTP 설정(인터넷 접속이 불가능한 경우 필요)

인터넷 접속 없이 솔루션을 배포하려면 이 단계를 따르세요(참고: VPC 엔드포인트를 설정하는 데 추가 비용이 발생합니다.)

  1. AWS 콘솔 > AWS Simple Email Service(SES) > *SMTP 설정*으로 이동한 후 *SMTP 자격 증명 만들기*를 클릭합니다.

  2. IAM 사용자 이름을 입력하거나 기본값을 그대로 두고 *사용자 만들기*를 클릭합니다. 나중에 사용할 수 있도록 *SMTP 사용자 이름*과 *SMTP 비밀번호*를 저장하세요.

    참고 SES SMTP 설정이 이미 되어 있는 경우 이 단계를 건너뜁니다.

    이 이미지는 AWS SES에서 SMTP 자격 증명 생성 창을 보여줍니다.

4단계: AWS CloudFormation 배포
  1. 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 스택 생성 창을 보여줍니다.

    다음을 클릭하세요

  2. 스택 세부정보를 입력하세요. 다음을 클릭하고 "AWS CloudFormation이 IAM 리소스를 생성할 수 있음을 인정합니다" 확인란을 선택하고 제출을 클릭합니다.

    참고 "VPC에 인터넷 접속이 가능한가요?"가 False로 설정된 경우, "AWS SES의 SMTP 사용자 이름"과 "AWS SES의 SMTP 비밀번호"가 필요합니다. 그렇지 않으면 비워둘 수 있습니다.

    이 이미지는 AWS CloudFormation Stack Details 창을 보여줍니다.

    이 이미지는 AWS CloudFormation Stack Details 창을 보여줍니다.

    이 이미지는 AWS CloudFormation Stack Details 창을 보여줍니다.

    이 이미지는 AWS CloudFormation Stack Details 창을 보여줍니다.

  3. CloudFormation 배포가 시작되면 "발신자 이메일 ID"에 언급된 이메일 ID로 AWS SES에서 해당 이메일 주소 사용을 승인해 달라는 요청 이메일을 받게 됩니다. 링크를 클릭하여 이메일 주소를 확인하세요.

  4. CloudFormation 스택 배포가 완료되면 경고/알림이 있는 경우 알림 세부 정보가 포함된 이메일이 수신자 이메일 ID로 전송됩니다.

    이 이미지는 알림이 가능할 때 수신되는 이메일 알림을 보여줍니다.

    이 이미지는 알림이 가능할 때 수신되는 이메일 알림을 보여줍니다.

수동 배포

참고 단일 VPC에서 여러 FSx ONTAP 파일 시스템 모니터링을 지원합니다.

이 솔루션의 수동 배포를 완료하려면 다음 단계를 따르세요.

1단계: GitHub 저장소 복제

로컬 시스템에서 GitHub 저장소를 복제합니다.

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
2단계: AWS SES SMTP 설정(인터넷 접속이 불가능한 경우 필요)

인터넷 접속 없이 솔루션을 배포하려면 이 단계를 따르세요(참고: VPC 엔드포인트를 설정하는 데 추가 비용이 발생합니다.)

  1. AWS 콘솔 > AWS Simple Email Service(SES) > SMTP 설정으로 이동한 후 *SMTP 자격 증명 만들기*를 클릭합니다.

  2. IAM 사용자 이름을 입력하거나 기본값을 그대로 두고 '만들기'를 클릭합니다. 나중에 사용할 수 있도록 사용자 이름과 비밀번호를 저장하세요.

    이 이미지는 AWS SES에서 SMTP 자격 증명 생성 창을 보여줍니다.

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 파일 시스템에 대해 위의 단계를 반복합니다.

이 이미지는 AWS 콘솔에서 SSM 매개변수를 생성하는 창을 보여줍니다.

인터넷 접속 없이 솔루션을 배포하는 경우, 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에서 해당 이메일 주소 사용을 승인해 달라고 요청하는 이메일을 받게 됩니다. 링크를 클릭하여 이메일 주소를 확인하세요.

이 이미지는 AWS 콘솔에서 SES ID를 생성하는 창을 보여줍니다.

5단계: VPC 엔드포인트 설정(인터넷 접속이 불가능한 경우 필요)
참고 인터넷 접속 없이 배포하는 경우에만 필요합니다. VPC 엔드포인트와 관련하여 추가 비용이 발생합니다.
  1. 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>

    엔드포인트 만들기를 클릭합니다.

    이 이미지는 VPC 엔드포인트 생성 창을 보여줍니다.

    이 이미지는 VPC 엔드포인트 생성 창을 보여줍니다.

  2. SES 및 SSM VPC 엔드포인트를 생성하는 것과 동일한 프로세스를 따르세요. 모든 매개변수는 위와 동일하지만, 서비스는 각각 com.amazonaws.<region>.smtp 및 *com.amazonaws.<region>.ssm*에 해당합니다.

6단계: AWS Lambda 함수 생성 및 설정
  1. AWS 콘솔 > AWS Lambda > *함수*로 이동하고 FSx ONTAP 과 동일한 리전에서 *함수 생성*을 클릭합니다.

  2. 기본 설정인 *처음부터 작성자*를 사용하고 다음 필드를 업데이트하세요.

    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>

    *함수 만들기*를 클릭합니다.

    이 이미지는 AWS 콘솔에서 Lambda를 생성하는 창을 보여줍니다.

    이 이미지는 AWS 콘솔에서 Lambda를 생성하는 창을 보여줍니다.

  3. 새로 만든 람다 함수로 이동합니다. > 레이어 섹션까지 아래로 스크롤하여 *레이어 추가*를 클릭합니다.

    이 이미지는 AWS Lambda 함수 콘솔의 레이어 추가 버튼을 보여줍니다.

  4. 레이어 소스 아래의 *새 레이어 만들기*를 클릭하세요.

  5. 레이어를 만들고 Utilities.zip 파일을 업로드합니다. 호환 런타임으로 *Python 3.9*를 선택하고 *만들기*를 클릭합니다.

    이 이미지는 AWS 콘솔의 새 계층 만들기 창을 보여줍니다.

  6. AWS Lambda 함수 > 계층 추가 > *사용자 지정 계층*으로 돌아가서 유틸리티 계층을 추가합니다.

    이 이미지는 AWS Lambda 함수 콘솔의 레이어 추가 창을 보여줍니다.

    이 이미지는 AWS Lambda 함수 콘솔에 추가된 레이어를 보여줍니다.

  7. Lambda 함수의 구성 탭으로 이동하여 *일반 구성*에서 *편집*을 클릭합니다. 제한 시간을 *5분*으로 변경하고 *저장*을 클릭합니다.

  8. Lambda 함수의 권한 탭으로 이동하여 할당된 역할을 클릭합니다. 역할의 권한 탭에서 권한 추가 > *인라인 정책 만들기*를 클릭합니다.

    1. JSON 탭을 클릭하고 GitHub 저장소에서 policy.json 파일의 내용을 붙여넣습니다.

    2. ${AWS::AccountId}의 모든 항목을 귀하의 계정 ID로 바꾸고 *정책 검토*를 클릭하세요.

    3. 정책 이름을 입력하고 *정책 만들기*를 클릭하세요.

  9. git repo에서 *fsxn_monitoring_resizing_lambda.py*의 내용을 AWS Lambda 함수 코드 소스 섹션의 *lambda_function.py*로 복사합니다.

  10. 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를 입력하세요.

    이 이미지는 AWS Lambda 함수 콘솔의 람다 코드를 보여줍니다.

  11. *테스트*를 클릭하고 빈 JSON 객체로 테스트 이벤트를 만든 다음, *호출*을 클릭하여 테스트를 실행하고 스크립트가 제대로 실행되는지 확인합니다.

  12. 성공적으로 테스트가 완료되면 구성 > 트리거 > *트리거 추가*로 이동합니다.

    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>

    추가를 클릭하세요.

    이 이미지는 AWS Lambda 함수 콘솔에서 이벤트 브리지 생성 창을 보여줍니다.

결론

제공된 솔루션을 사용하면 FSx ONTAP 스토리지를 정기적으로 모니터링하고, 사용자가 지정한 임계값에 따라 스토리지 크기를 조정하고, 알림 메커니즘을 제공하는 모니터링 솔루션을 쉽게 설정할 수 있습니다. 이를 통해 FSx ONTAP 사용하고 모니터링하는 프로세스가 원활해져 관리자는 비즈니스에 중요한 활동에 집중할 수 있고, 필요에 따라 스토리지가 자동으로 증가합니다.