Skip to content

wonza-hub/aws-dynamic-resource-management-program

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWS 동적 자원 관리 프로그램

클라우드 컴퓨팅 교과목 수행 개인 프로젝트
관련 블로그 글
2024.11~2024.12
개발 배경

실습 과정 중 가상머신 상에 진행했던 클러스터 구축은 상당한 수작업을 요구했습니다. 이에 인스턴스를 클라우드 상에 배포하고 SDK를 사용하여 GUI로 편리하게 클러스터를 관리하고자 했습니다.

사용 기술
시작 가이드
  • 프로젝트 폴더 구성

    ├───node_modules
    ├───public
    │   ├───css
    │   └───js
    ├───src
    │   ├───config # aws 관련 설정 파일
    │   ├───controller # 컨트롤러
    │   ├───routes # 라우터
    │   ├───service # 서비스
    │   │   └───ec2
    │   └───utils # 기타 함수
    └───views
        └───ec2 #
  • 프라이빗 키 삽입

    이후 sdk를 사용하여 인스턴스에 ssh로 접속하기 위해서는 프라이빗 키가 필요하다. 따라서 프로젝트 루트에 본인의 aws 프라이빗 키(.pem)를 위치시킨다. (이는 .gitignore 에 포함되므로 깃허브에 본인의 키가 올라갈 일은 없다.)

  • 의존성 설치

    npm install # 의존성 설치
    npm run dev # 실행
  • 환경변수

    AWS SDK를 사용하려면 AWS 리전정보, 액세스 키 정보가 필수적이다. 이를 위해 .env.example 을 참고하여 .env 를 채워넣도록 한다.

    # .env.example
    AWS_REGION= # AWS 리전
    AWS_ACCESS_KEY_ID= # AWS 액세스 키
    AWS_SECRET_ACCESS_KEY= # AWS 비밀 액세스 키
    PORT= # 서버 실행 포트
    HTCONDOR_TAG_KEY=Name # HTCondor 클러스터 태그 키
    HTCONDOR_TAG_PREFIX=HTCondor_Data # HTCondor 클러스터 태그명 접두사
    HTCondor_SG_ID=sg-xxxx # HTCondor 클러스터가 속한 보안그룹

아키텍쳐

API

✨ 주요 기능

인스턴스 생성/시작/중지/재시작

클러스터 조회

  • 컨트롤 노드 공인 IP 입력

  • 대시보드 확인

  • startcondor_status 확인

  • stopcondor_status 확인 (생략)

  • createcondor_status 확인

Auto Scaling Group 및 조정 정책 생성

Cloud Watch

  • 경보 생성

  • 작업 제출/큐 상태 확인

  • CPU 메트릭 확인

    AWS 콘솔에서 확인

  • 메일 수신 확인

🤔트러블 슈팅

Your requested instance type (<instance type>) is not supported in your requested Availability Zone (<instance Availability Zone>)...

오토스케일링 그룹 생성 시, ‘유효하지 않은 가용 영역’이라는 오류가 나며 생성을 실패한 경우가 발생했다. 이는 인스턴스 유형에 따라 가용 영역이 제한되는 경우가 있었기 때문이고, 인스턴스에 맞는 가용영역을 선택하여 해결하였다.

Amazon EC2 Auto Scaling 문제 해결: EC2 인스턴스 시작 실패 - Amazon EC2 Auto Scaling

About

AWS 동적 자원 관리 프로그램

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published