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

AWS Lambda 기능을 사용한 FSx ONTAP 모니터링 및 자동 크기 조정

기여자

이 페이지에서는 AWS FSx ONTAP 모니터링과 임계값 기반 자동 크기 조정을 통한 자동화에 대해 설명합니다.

개요: AWS Lambda 함수를 통한 FSx ONTAP 모니터링 및 자동 크기 조정

FSx ONTAP은 AWS에서 제공되는 퍼스트 파티 엔터프라이즈급 클라우드 스토리지 서비스로서, 주요 NetApp ONTAP 파일 시스템을 기반으로 구축되어 매우 안정적이고 확장 가능하며 풍부한 기능을 갖춘 고성능 파일 스토리지를 제공합니다.

FSx ONTAP은 원활한 배포 및 관리 경험을 제공합니다. 스토리지 전문 지식이 없어도 시작할 수 있습니다. 모니터링을 간소화하기 위해 AWS Lambda 함수(임계값을 기준으로 총 스토리지 용량, 볼륨 크기 또는 LUN 크기의 크기를 자동으로 조정)를 사용할 수 있습니다.  이 문서는 FSx ONTAP를 정기적으로 모니터링하고, 사용자가 지정한 임계값에 도달했을 때 알림 및 크기를 조정하고, 관리자에게 크기 조정 작업을 알리는 자동 설정을 생성하는 단계별 가이드를 제공합니다.

피처

이 솔루션에서 제공하는 기능은 다음과 같습니다.

  • 모니터링 기능:

    • FSx ONTAP의 전체 스토리지 용량 사용

    • 각 볼륨의 사용(씬 프로비저닝/일반 프로비저닝)

    • 각 LUN의 사용(씬 프로비저닝/일반 프로비저닝)

  • 사용자 정의 임계값이 위반될 때 위 항목 중 하나를 조정할 수 있습니다

  • 이메일을 통해 사용 경고 및 크기 조정 알림을 수신하기 위한 경고 메커니즘

  • 사용자 정의 임계값보다 오래된 스냅샷을 삭제할 수 있습니다

  • 연결된 FlexClone 볼륨 및 스냅샷 목록을 가져오는 기능

  • 정기적으로 점검을 모니터링하는 기능

  • 인터넷 액세스 유무에 관계없이 솔루션을 사용할 수 있습니다

  • 수동으로 구축하거나 AWS CloudFormation Template을 사용하여 구축할 수 있습니다

  • 단일 VPC에서 여러 FSx ONTAP 파일 시스템을 모니터링할 수 있습니다

필수 구성 요소

시작하기 전에 다음 필수 구성 요소가 충족되었는지 확인하십시오.

  • FSx ONTAP이 배포됩니다

  • FSx ONTAP에 연결되는 프라이빗 서브넷입니다

  • FSx ONTAP에 대해 "fsxadmin" 암호가 설정되었습니다

고급 아키텍처
  • AWS Lambda 함수는 FSx ONTAP에 대한 API 호출을 수행하여 스토리지 용량, 볼륨 및 LUN의 크기를 검색하고 업데이트합니다.

  • 보안 계층을 추가하기 위해 AWS SSM 매개변수 저장소에 보안 문자열로 저장된 "fsxadmin" 암호

  • AWS SES(Simple Email Service)는 크기 조정 이벤트가 발생할 때 최종 사용자에게 알리는 데 사용됩니다.

  • 인터넷 액세스 없이 VPC에 솔루션을 구축하는 경우 Lambda가 AWS 내부 네트워크를 통해 이러한 서비스에 연결할 수 있도록 AWS SSM, FSx 및 SES용 VPC 엔드포인트를 설정합니다.

이 이미지는 이 솔루션에 사용된 고급 아키텍처를 보여 줍니다.

솔루션 구축

자동화된 배포

참고 단일 FSx ONTAP 파일 시스템을 다룹니다.

이 솔루션의 자동 배포를 완료하려면 다음 단계를 따르십시오.

1단계: GitHub 리포지토리 클론

로컬 시스템에서 GitHub 리포지토리 클론 생성:

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
2단계: AWS S3 버킷을 설정합니다
  1. AWS 콘솔 > * S3 * 로 이동하고 * Create Bucket * 을 클릭합니다. 기본 설정으로 버킷을 작성합니다.

  2. 버킷 안에 들어가면 * Upload * > * Add files * 를 클릭하고 시스템의 클론 복제된 GitHub 저장소에서 * Utilities.zip * 을 선택합니다.

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

3단계: AWS SES SMTP 설정(인터넷에 액세스할 수 없는 경우 필요)

인터넷 액세스 없이 솔루션을 배포하려는 경우 이 단계를 따르십시오(참고: VPC 엔드포인트를 설정할 때 추가 비용이 발생합니다).

  1. AWS Console > * AWS SES(Simple Email Service) * > * SMTP Settings * 로 이동하고 * 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. 스택 세부 정보를 입력합니다. Next(다음)를 클릭하고 "I ackAcknowledge that AWS CloudFormation might create IAM resources(AWS CloudFormation이 IAM 리소스를 생성할 수 있다는 것을 확인)" 확인란을 선택한 후 Submit(제출)을 클릭합니다.

    참고 "VPC에 인터넷 액세스가 있습니까?"인 경우 "SMTP Username for AWS SES" 및 "SMTP Password for AWS SES"가 False로 설정되어 있어야 합니다. 그렇지 않으면 빈 칸으로 남겨둘 수 있습니다.

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

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

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

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

  3. CloudFormation 배포가 시작되면 "sender email 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 SES(Simple Email Service) * > SMTP 설정 으로 이동하고 * SMTP 자격 증명 생성 * 을 클릭합니다

  2. IAM 사용자 이름을 입력하거나 기본값을 그대로 두고 Create(생성) 를 클릭합니다. 사용자 이름과 암호를 저장하여 나중에 사용하십시오.

    이 이미지는 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>

Create Parameter * 를 클릭합니다. 모니터링할 모든 FSx ONTAP 파일 시스템에 대해 위 단계를 반복합니다.

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

인터넷 액세스 없이 솔루션을 배포하는 경우 SMTP 사용자 이름과 SMTP 암호를 저장하는 것과 동일한 단계를 수행합니다. 그렇지 않으면 이 두 매개 변수 추가를 건너뜁니다.

4단계: 이메일 서비스 설정

AWS 콘솔 > * SES(Simple Email Service) * 로 이동하고 * ID 생성 * 을 클릭합니다.

Identity type: Email address
Email address: <Enter an email address to be used for sending resizing notifications>

ID 생성 * 을 클릭합니다

"보낸 사람 이메일 ID"에 언급된 이메일 ID는 소유자에게 AWS SES에서 이메일 주소 사용을 승인하도록 요청하는 이메일을 받게 됩니다. 링크를 클릭하여 이메일 주소를 확인합니다.

이 이미지는 AWS 콘솔의 SES ID 생성 창을 보여 줍니다.

5단계: VPC 엔드포인트 설정(인터넷 액세스가 없는 경우 필요)
참고 인터넷 액세스 없이 배포된 경우에만 필요합니다. VPC 엔드포인트와 관련하여 추가 비용이 발생합니다.
  1. AWS 콘솔 > * VPC * > * Endpoints * 로 이동하고 * Create Endpoint * 를 클릭하고 다음 세부 정보를 입력합니다.

    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 * > * Functions * 로 이동하고 FSx ONTAP과 동일한 영역에서 * Create Function * 을 클릭합니다

  2. 기본 * Author from scratch * 를 사용하고 다음 필드를 업데이트합니다.

    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>

    Create Function * 을 클릭합니다.

    이 이미지는 AWS 콘솔의 Lambda 생성 창을 보여줍니다.

    이 이미지는 AWS 콘솔의 Lambda 생성 창을 보여줍니다.

  3. 새로 생성된 Lambda 기능으로 이동하여 * Layers * 섹션으로 스크롤한 다음 * Add a layer * 를 클릭합니다.

    이 이미지는 AWS 람다 기능 콘솔의 Add layer 버튼을 보여줍니다.

  4. 레이어 소스 * 에서 * 새 레이어 만들기 * 를 클릭합니다

  5. 계층을 만들고 * Utilities.zip * 파일을 업로드합니다. 호환되는 런타임으로 * Python 3.9 * 를 선택하고 * Create * 를 클릭합니다.

    이 이미지는 AWS 콘솔에서 새 계층 생성 창을 보여줍니다.

  6. AWS Lambda 함수 > * 계층 추가 * > * 사용자 지정 계층 * 으로 다시 이동하고 유틸리티 계층을 추가합니다.

    이 이미지는 AWS 람다 기능 콘솔의 Add layer 창을 보여줍니다.

    이 이미지는 AWS 람다 기능 콘솔에 추가된 계층을 보여줍니다.

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

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

    1. JSON 탭을 클릭하고 GitHub repo에서 file policy.json의 내용을 붙여 넣습니다.

    2. ${AWS::AccountId}의 모든 항목을 계정 ID로 바꾸고 * 검토 정책 * 을 클릭합니다

    3. 정책 이름을 입력하고 * 정책 생성 * 을 클릭합니다

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

  10. lambda_function.py 과 같은 수준에서 새 파일을 만들고 이름을 * vars.py * 로 지정하고 git repo에서 lambda 함수 vars.py 파일로 vars.py 내용을 복사합니다. VAR.py의 변수 값을 업데이트합니다. 아래의 변수 정의를 참조하고 * deploy * 를 클릭합니다.

    * 이름 *

    * 유형 *

    * 설명 *

    * fsxList *

    목록

    (필수) 모니터링할 모든 FSx ONTAP 파일 시스템 목록입니다. 모니터링 및 자동 크기 조정을 위해 목록에 모든 파일 시스템을 포함합니다.

    fsxMgmtIp *

    문자열

    (필수) AWS의 FSx ONTAP 콘솔에서 "관리 엔드포인트 - IP 주소"를 입력합니다.

    fsxId * 입니다

    문자열

    (필수) AWS의 FSx ONTAP 콘솔에서 "파일 시스템 ID"를 입력합니다.

    * 사용자 이름 *

    문자열

    (필수) AWS의 FSx ONTAP 콘솔에서 FSx ONTAP "ONTAP 관리자 사용자 이름"을 입력합니다.

    * resize_threshold * (크기 조정 임계값 *

    정수

    (필수) 0-100의 임계값 비율을 입력합니다. 이 임계값은 스토리지 용량, 볼륨 및 LUN 사용을 측정하는 데 사용되며 사용율이 이 임계값 이상으로 증가하면 크기 조정 작업이 수행됩니다.

    * FSX_PASSWORD_SSM_PARAMETER *

    문자열

    (필수) "fsxadmin" 암호를 저장하기 위해 AWS Parameter Store에서 사용되는 경로 이름을 입력합니다.

    * warn_notification *

    불입니다

    (필수) 이 변수를 True로 설정하여 스토리지 용량/볼륨/LUN 사용량이 75%를 초과하지만 임계값보다 작을 때 알림을 받습니다.

    * enable_snapshot_deletion *

    불입니다

    (필수) "snapshot_age_threshold_in_days"에 지정된 값보다 오래된 스냅샷에 대한 볼륨 레벨 스냅샷 삭제를 활성화하려면 이 변수를 True로 설정하십시오.

    * snapshot_age_threshold_in_days *

    정수

    (필수) 보존하려는 볼륨 레벨 스냅샷의 일 수를 입력합니다. 제공된 값보다 오래된 스냅샷은 삭제되며 이메일을 통해 알림을 받게 됩니다.

    * internet_access *

    불입니다

    (필수) 이 람다가 배포된 서브넷에서 인터넷 액세스를 사용할 수 있는 경우 이 변수를 True로 설정합니다. 그렇지 않으면 False로 설정합니다.

    SMTP_지역 *

    문자열

    (선택 사항) "internet_access" 변수가 False로 설정된 경우 람다가 배포되는 영역을 입력합니다. 예: us-east-1(이 형식)

    * SMTP_USERNAME_SSM_PARAMETER *

    문자열

    (선택 사항) "internet_access" 변수가 False로 설정된 경우 SMTP 사용자 이름을 저장하기 위해 AWS 매개 변수 저장소에 사용되는 경로 이름을 입력합니다.

    SMTP_PASSWORD_SSM_PARAMETER *

    문자열

    (선택 사항) "internet_access" 변수가 False로 설정된 경우 SMTP 암호를 저장하기 위해 AWS 매개 변수 저장소에 사용되는 경로 이름을 입력합니다.

    * 발신자_이메일 *

    문자열

    (필수) lambda 함수가 모니터링 및 크기 조정과 관련된 알림 알림을 보내는 데 사용할 SES에 등록된 이메일 ID를 입력합니다.

    수신자_이메일 *

    문자열

    (필수) 경고 알림을 수신할 이메일 ID를 입력합니다.

    이 이미지는 AWS 람다 기능 콘솔의 람다 코드를 나타냅니다.

  11. Test * 를 클릭하고 빈 JSON 객체로 테스트 이벤트를 생성한 다음 * Invoke * 를 클릭하여 테스트를 실행하여 스크립트가 제대로 실행되고 있는지 확인합니다.

  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 람다 기능 콘솔의 이벤트 브리지 생성 창을 보여줍니다.

결론

제공된 솔루션을 사용하여 FSx ONTAP 스토리지를 정기적으로 모니터링하고 사용자가 지정한 임계값에 따라 크기를 조정하며 경고 메커니즘을 제공하는 모니터링 솔루션을 쉽게 설정할 수 있습니다. 따라서 FSx ONTAP를 사용하고 모니터링하는 프로세스가 원활해지면 관리자는 스토리지를 자동으로 확장하는 동시에 비즈니스 크리티컬 활동에 집중할 수 있습니다.