먼저 대충 연결할 수 있는 VPC와 EC2를 만들어보자
만들어져있는게 있다면 그걸 사용해도 된다
그냥 S3 CLI 명령이 궁금한거면 아래 글을 보자
2020/07/31 - [공부] - [AWS] S3 버킷 CLI 사용(버전 관리, 동기화, 복구)
VPC랑 EC2 만드는 자세한 과정이 궁금하면 아래 글을 보자
2020/07/22 - [공부] - [AWS] VPC랑 EC2 만들어보기
이제 EC2에 접속해보자
접속하는 방법은
2020/07/24 - [공부] - [AWS] EC2 CLI로 접속하기(cmd, PuTTy)
여기서 보자
접속이 확인되면 S3 버킷을 만들러 가 보자
서비스 >> S3 >> 버킷 만들기 를 누른다
버킷 이름은 고유해야 한다. 알아서 이름만 잘 지은 후 생성을 눌러주자
이제 IAM 역할을 생성하고 연결해보겠다
서비스 >> IAM >> 역할 >> 역할 만들기 를 누르자
AWS 서비스 >> EC2 선택 후 계속 다음 누름
이름 하나 설정해주고 끝내면 된다
그 후 방금 만든 버킷의 이름을 선택해주면
나오는 창에서 인라인 정책 추가 를 눌러준다
거기서 JSON을 선택한 후, 원래 있던걸 지우고
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:HeadBucket",
"s3:ListBucket"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::아까만든버킷이름/*",
"arn:aws:s3:::아까만든버킷이름"
]
}
]
}
얘를 넣어준다
얘는 지정된 버킷에 대한 전체 액세스 권한을 인스턴스에 부여하며, 버킷에 저장된 객체를 포함한 버킷의 콘텐츠도 인스턴스에 부여한다
/*은 버킷의 내용을 참조한다
정책 이름은 그냥 버킷 이름이랑 같게 가겠다. 이러고 생성하면 된다
생성을 완료했으면 이제 얘를 EC2에 연결해줘야 한다. EC2로 다시 돌아가보자
아까 만든 EC2 인스턴스를 누르고 IAM 역할 연결/바꾸기 를 눌러준다
만들어놓은 IAM역할을 연결해주면 된다
이제 아까 접속되어있던 EC2로 돌아와서 S3를 만져보자
먼저 S3와 동기화 할 폴더와 파일들을 만들어주겠다
mkdir hello
cd hello
echo hello >> 1.txt
echo mynameis >> 2.txt
echo haejang >> 3.txt
cd ..
먼저 파일들을 버킷과 동기화하기 전에 버킷에서 버전 관리를 활성화해야 한다
aws s3api put-bucket-versioning --bucket 아까만든버킷이름 --versioning-configuration Status=Enabled
동기화는 sync 명령으로 한다
aws s3 sync hello s3://아까만든버킷이름/hello/
업로드가 잘 되었는지 확인해보자
aws s3 ls s3://아까만든버킷이름
aws s3 ls s3://아까만든버킷이름/hello/
직접 콘솔에서도 확인해보자
아주 잘 들어와 있다
그럼 이번엔 삭제를 한 후 삭제동기화 를 해보겠다
일단 1.txt 파일을 삭제시켜보겠다
rm hello/1.txt
이를 버킷에도 동기화 시키려면 아까 했던 명령에 --delete를 붙여주면 된다
aws s3 sync hello s3://아까만든버킷이름/hello/ --delete
aws s3 ls s3://아까만든버킷이름/hello/
콘솔에서도 확인해보면
1.txt가 사라져있다
이제 삭제한 놈을 복구시켜보겠다
그러려면 일단 삭제한 놈의 정보를 먼저 알아야 한다
aws s3api list-object-versions --bucket 아까만든버킷이름 --prefix hello/1.txt
밑줄 친 VersionId와 Key를 복사해준다
aws s3api get-object --bucket 아까만든버킷이름 --key 키 --version-id 버전ID 다시저장할이름
EC2엔 복구가 되었지만 S3 버킷은 여전히 1.txt가 없다(당연히)
아까 한 대로 sync를 해주면 다시 버킷에도 복구가 된다
마지막으로 콘솔에서도 확인해주면?
잘 복구되어있다
끝
'공부 > AWS' 카테고리의 다른 글
[AWS] IAM 사용자 생성, MFA 설정 후 웹서버 EC2로 RDS 제어 (1) | 2020.08.13 |
---|---|
[AWS] AWS 리소스 배포 자동화와 로드 분산을 통한 자동 확장 환경 구성 (0) | 2020.08.02 |
[AWS] S3 버킷 CLI 명령어(버전 관리, 동기화, 복구) (0) | 2020.07.31 |
[AWS] EC2 CLI로 접속하기(cmd, PuTTy) (0) | 2020.07.24 |
[AWS] VPC랑 EC2 만들어보기 (0) | 2020.07.22 |
댓글