파일을 EC2에서 S3로 cron으로 정기 백업
경위
EC2에 지어진 kubernetes 로그를 EC2 인스턴스 외부에 저장하고 싶을 때의 이야기.
EKS나 GKE를 사용하면 그만큼 멋지게 할 수 있는 것 같습니다만, 이번은 그들을 이용하지 않는 전제입니다.
절반 정도 정책과 롤의 작성 방법의 설명이 되어 버렸습니다만, 비망록으로서 실어 둡니다.
절차
S3 버킷 만들기
그렇지 않은 경우 작성하십시오.
EC2에 IAM 롤 연결
대상 S3을 조작하기 위한 IAM 역할.
이미 사용할 수 있는 롤이 있는 경우는 그것을 이용해도 좋다.
그렇지 않은 경우 [IAM 역할 할당/바꾸기]에서 만들 수 있습니다.
aws s3 sync 사용
버킷과 디렉토리를 지정하면 그 내용을 동기화 해주는 매우 편리한 명령입니다.
지정된 디렉토리와 버킷의 내용을 비교하고 버킷에 없는 것만 업로드해 줍니다.
지정된 동기화 대상에서 데이터가 사라져도 S3의 객체는 삭제되지 않으므로 안심.
이번에는 이것을 cron으로 정기적으로 실행하여 EC2의 로그를 S3에 업로드합니다.
aws sts get-caller-identity
로 부착한 IAM 롤이 제대로 있는지 확인 aws s3 sync EC2の同期先 s3://バケット名/ディレクトリ名(あれば)
에서 동기화되었는지 확인 cron 설정
aws s3 sync
사용할 수 있음을 확인한 후에는 cron이 정기적으로 실행되도록합니다.crontab -e
에서 설정 파일을 열고 다음과 같이 씁니다 */1 * * * * /bin/bash -c ". /ホームディレクトリ/.bash_profile; 成功したawsコマンド"
이번은 1분 두는 설정.
먼저
.bash_profile
를 로드하는 것은 경로 설정을 반영하기 때문입니다.aws 명령을 절대 경로로 작성해도 좋았을지도 모른다.
crontab -l
에서 설정된 작업 확인 덤
cron 실행 로그를 확인하려면
crontab -e
에서 열린 설정 끝에이 녀석을 씁니다.> /ログの出力先 2>&1
Reference
이 문제에 관하여(파일을 EC2에서 S3로 cron으로 정기 백업), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bambis13s/items/1ea4f434878a24ab5b21텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)