1. 사전작업 IAM에서 s3 접근권한 설정
2. AWS CLI(Command Line Interface) 설치 (Linux)
3. AWS CLI 환경설정
4. cli 명령어로 파일 업로드
1. 사전작업 IAM에서 s3 접근권한 설정
AmazonS3FullAccess권한을 설정
2. AWS CLI(Command Line Interface) 설치 (Linux)
aws --version
으로 AWS CLI 설치 여부 확인 후 설치가 되어있지 않다면 설치
관련 버전은 위 설명 참고
docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2-linux.html
3. AWS CLI 환경설정
aws configure
AWS Access Key ID [None] : 자신의 Accecss Key
AWS Secret Access Key [None] : 자신의 Secret Key
Default region name [None] : 자신의 region
Default output format [None] : json (text도 가능)
이 설정이 끝나게 되면 파일형태로 아래 위치에 생성 된다.
~/.aws/config
~/.aws/credentials
4. cli 명령어로 파일 업로드
// 서버의 로그들을 s3의 버킷에 동기화
aws s3 sync ./storage/logs s3://s3domain.com/logs
// 서버의 특정파일을 s3의 버킷에 복사 (이름지정해서 복사가능)
aws s3 cp ./storage/logs/mylog.log s3://s3domain.com/logs/mylog-cp.log
// 현재날짜 넣어서 복사
aws s3 cp ./storage/logs/mylog.log s3://s3domain.com/logs/mylog-`date +%Y%m%d`.log
// 현재날짜 넣어서 복사 (위와 동일함)
aws s3 cp ./storage/logs/mylog.log s3://s3domain.com/logs/mylog-`date +%F`.log
자신의 s3버킷에서 파일들이 잘 들어와있는지 확인해본다.
5. Elastic Beanstalk 에서의 추가옵션
Elastic Beanstalk 에서도 동일하게 aws cli 명령을 사용할 수 있다.
하지만 동일한 aws-cli 버전(aws-cli 1.18.107 / Python/2.7.18)인데도 위에서 말한 EC2와는 다르게 옵션을 설정해야 정상동작이 되었다.
aws s3 cp storage/logs s3://s3domain.com/logs --recursive
위와같이 폴더 내에 있는 모든 파일을 업로드시에는 --recursive 옵션을 주어야 정상동작한다.
위 옵션을 뺐을때는 [Errno 21] Is a directory: 에러가 난다.
파일을 지정해서 업로드 할때는 --recursive 옵션을 안적어도 무방함.
6. Elastic Beanstalk 에서 Load Balancer 사용할 때
로드밸런서를 사용할 때는 머신이 여러대로 운영되는 경우이기 때문에,
머신마다 같은 로그이름으로 저장되고 있을 것이다.
이럴 경우, 로그를 s3로 업로드를 하게되면 같은이름일 경우 덮어쓰기가 되기때문에
이전에 저장되어있던 로그들이 사라지게 된다.
그래서 s3로 로그 저장시 머신 고유의 hostname을 포함해서 저장하게 되면 이름 중복을 방지할 수 있다.
// hostname 포함해서 파일명을 저장
aws s3 cp ./storage/logs/mylog.log s3://s3domain.com/logs/mylog-$(hostname -s)-`date +%F`.log
'AWS' 카테고리의 다른 글
[AWS] RDS Replication 구성하기 (0) | 2021.07.14 |
---|---|
[AWS] crontab을 활용하여 S3로 로그 백업하기 (Elastic Beanstalk) (0) | 2021.03.26 |
[AWS] Elastic Beanstalk 콘솔 에서 Laravel 로그 받는 방법 (0) | 2021.03.16 |
[AWS] Elastic Beanstalk 배포시 타임존 setup (0) | 2021.03.16 |
[AWS] EC2 Linux 서버 한국표준시간으로 변경하기 (0) | 2021.03.10 |