임대 서버의 DB/정기적 실행Python 파일을 AWS로 전송②

저번


지난번: 임대 서버의 DB/정기 실행 Python 파일을 AWS로 옮기기 ①부터.
지난 번 간 일
  • Amazon EC2 실례를 발판 호스트로 사용하고 로컬 기기에서 개인 Amazon RDS DB로 연결하는 실례
  • 금번

  • 고정 IP 주소 설정
  • EC2 인스턴스에서 Python 파일 실행
  • 파이톤의 정기 집행
  • 필요한 경우에만 인스턴스를 실행하여 비용 절감
  • Google 데이터 포털을 통해 RDS에 액세스하여 DB 정보를 얻기
  • 고정 IP 주소 설정


    Elastic IP 주소


    EC2 인스턴스가 중지되고 다시 시작될 때마다 IPv4DNS가 변경되기 때문에 고정 IP 주소로 Elastic IP 주소를 만들어 할당합니다(무료).
    실례에 분배되는 것 외에 네트워크 작업 인터페이스에도 연결할 수 있다.이번 연락 실례.다음 설정을 참조하십시오.
    Elastic IP 주소를 인스턴스 또는 네트워크 인터페이스와 연결

    EC2 인스턴스에서 Python 파일 실행하기


    EC2 인스턴스 내에서 환경 만들기


    EC2 인스턴스에 SSH 연결 후 수행

    git,clone 상응하는 창고에 가입


    yum을 최신 상태로 만들기
    sudo yum update
    
    설치git
    sudo yum install git
    
    git버전 확인
    git version
    
    확인 후 일반적인 clone 요령에 따라 해당하는 창고에 clone을 진행한다.

    pip로 가상 환경을 준비하고 필요한 모듈을 설치합니다 (이 Python 파일에 필요한)


    sudo yum install python3 -y
    python3 -m venv myenv
    source myenv/bin/activate
    pip install mysql-connector-python
    pip install requests
    pip install bs4
    pip install python-dotenv
    pip install lxml
    

    파이썬 파일 실행하기


    Python *****(ファイル名).py
    

    RDS DB 확인


    EC2 실례에서 MySQL에 접근하기 위해 관리자는 "admin"에 해당하는 RDS DB의 단점 명령을 입력합니다
    mysql -u admin -p -h *******.*******.ap-northeast-1.rds.amazonaws.com(RDS DBのエンドポイント)
    
    암호 설정된 암호를 입력합니다.

    EC2에 배치된 파이썬 파일 주기적 실행


    아래를 보면서 설정.
    AWS EC2 및 RDS를 통한 정기적인 실행(CRON)

    필요할 때만 실례를 시작합니다


    AWS 참조 기사: 지정된 서버 동안 중지하려는 "AWS Instance Schedule"
    Qita 참조 기사: Instance Scheduller를 사용하여 AWS RDS 인스턴스의 자동 시작 및 개발을 중지하여 비용 절감
    AWS의 실례 스케줄러를 사용할 때 AWS CLI의 인증 정보가 필요하기 때문에 그쪽 설정을 먼저 진행합니다.

    AWS CLI 버전 2 설치


    EC2 인스턴스 내
    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
    unzip awscliv2.zip
    sudo ./aws/install
    

    AWS CLI 설정 /aws configure


    생성된 액세스 키의 ID 및 기밀 액세스 키를 사전에 확인합니다.
    EC2 인스턴스에 등록합니다.
    참고 자료: AWS CLI 설치 후 초기 설정 참고 사항
    aws configure
    AWS Access Key ID [None]: ********************
    AWS Secret Access Key [None]: ****************************************
    Default region name [None]: ap-northeast-1
    Default output format [None]: json
    

    Instance Scheduller CLI 설치


    zip 파일 설치
    https://docs.aws.amazon.com/solutions/latest/instance-scheduler/scheduler-cli.html
    Download 클릭

    자신의 컴퓨터에 다운로드한 후 펼치기(사용 편의를 위해 사용자 디렉터리로 이동)

    자체 PC에서 EC2 인스턴스로의 SSH 연결(EC 인스턴스에서 이전에 만든 키 사용)


    ssh -i"C:\Users\ユーザー名\key-name.pem" ec2-user@**.**.***.***(Elastic IPアドレス)
    

    EC2 내의 빈 schedule-cli 디렉터리와 그 중의 schedule-cli 디렉토리 미리 만들기


    자신의 PC로 돌아가 EC2 인스턴스로 파일 전송


    scp -i "C:\Users\ユーザー名\key-name.pem" "C:\Users\ユーザー名\scheduler-cli\instance-scheduler-cli-runner.py" ec2-user@**.**.***.***:/home/ec2-user/scheduler-cli
    
    scp -i "C:\Users\ユーザー名\key-name.pem" "C:\Users\ユーザー名\scheduler-cli\setup.py" ec2-user@**.**.***.***:/home/ec2-user/scheduler-cli
    
    scp -i "C:\Users\ユーザー名\key-name.pem" "C:\Users\ユーザー名\scheduler-cli\scheduler_cli\__init__.py" ec2-user@**.**.***.***:/home/ec2-user/scheduler-cli/scheduler_cli
    
    scp -i "C:\Users\ユーザー名\key-name.pem" "C:\Users\ユーザー名\scheduler-cli\scheduler_cli\__main__.py" ec2-user@**.**.***.***:/home/ec2-user/scheduler-cli/scheduler_cli
    
    scp -i "C:\Users\ユーザー名\key-name.pem" "C:\Users\ユーザー名\scheduler-cli\scheduler_cli\scheduler_cli.py" ec2-user@**.**.***.***:/home/ec2-user/scheduler-cli/scheduler_cli
    

    EC2 인스턴스 SSH에 연결


    ssh -i"C:\Users\ユーザー名\key-name.pem" ec2-user@**.**.***.***
    

    가상화 환경의 효율성


    source myenv/bin/activate
    

    schedule-cli로 이동


    cd scheduler-cli
    

    ptyhon 명령으로 설치


    python setup.py install
    

    새 Instance Scheduller 스택


    검색 창에서 "CloudFormation"을 검색하면 템플릿이 필요하므로 아래 페이지를 방문하여 "Launch Solution"단추를 클릭합니다.
    https://docs.aws.amazon.com/solutions/latest/instance-scheduler/deployment.html#step1

    로그인 인증이 요청되면 IAM 스크롤로 로그인
    템플릿이 포함된 상태에서 창고 창설 페이지로 이동합니다.

    스택 세부 설정


    기본값에서 변경된 내용은 다음과 같다
  • 창고 이름: EC2-RDS-InstancesScheduller
  • 서비스 (s) to schedule: Both(설정하려는 EC2, RDS, Both 선택 가능)
  • Create RDS instance snapShot: 아니오
  • Region:ap-northeast-1(도쿄니까)
  • Default time zone:Asia/Tokyo
  • Enable CloudWatch Logs: 예
  • Log retention days:7 (로그를 저장하는 동안)
  • Started tags:state=started
  • Stopped tags:state=stopped
  • scheduller CLI에서 부팅 시간 설정

  • 운영시간(영업시간)의 시작을 6:30, 종료를 8:30
  • 으로 설정
  • 구역은 도쿄의 "ap-northeast-1"
  • 시구는'아시아/Tokyo'
  • scheduler-cli update-period --stack EC2-RDS-InstancesScheduler --region ap-northeast-1 --name office-hours --begintime 06:30 --endtime 08:30 --weekdays mon-fri
    
    scheduler-cli create-schedule --stack EC2-RDS-InstancesScheduler --nam
    e jp-office-hours --region ap-northeast-1 --periods office-hours --timezone Asia/Tokyo
    

    스케줄러 태그


    https://qiita.com/yuskubo/items/acc8f8872f138bb4d914
    태그가 완료되면 AWS 콘솔이 첨부 파일 이미지가 됩니다.

    Google 데이터 포털에서 RDS에 액세스하여 DB 정보 얻기


    새 보고서 및 MySQL 데이터베이스에 연결


    MySQL 선택

    하면, 만약, 만약...
  • 호스트 이름 또는 IP 입력...해당 RDS DB의 엔드포인트
  • 포트(임의 지정)...비워두면 됨
  • 데이터베이스...적절한 DB 이름 입력
  • 사용자 이름...DB 생성 시 설정된 "admin"및 입력
  • 암호 입력...DB 생성 시 설정된 암호
  • 확인란의 SSL 사용 이 선택되지 않았습니다. 인증 버튼을 클릭하십시오.

    표의 '표' 에 해당하는 표 일람표를 표시하면 성공합니다.
    '추가' 단추를 선택하여 보고서에 추가할 수 있습니다.

    좋은 웹페이지 즐겨찾기