AWS

[AWS] 서버 환경 구축 EC2, S3, Aurora Mysql 설정 - 2 (S3)

blackzapato 2024. 10. 7. 15:19
반응형

 

서버 환경 구축 순서

 

  1. [AWS] 서버 환경 구축 EC2, S3, Aurora Mysql 설정 - 1 (EC2)
  2. 현재글
  3. [AWS] 서버 환경 구축 EC2, S3, Aurora Mysql 설정 - 3 (Aurora Mysql)

 

 

S3 구축 전체적인 흐름
  1. 버킷 생성
  2. 버킷 정책 수정
  3. IAM 사용자 생성
  4. IAM 사용자 액세스 키 생성
  5. was-server에 IAM 액세스 키 설정
초기 설정할때는 WAS Server EC2에 역할을 직접 부여해서 'aws s3 cp' 명령어로 업로드를 테스트하였으나,
'error unable to locate credentials' 오류가 발생해
EC2에 직접 IAM 사용자 액세스키를 설정하니 동작되는 것을 확인했습니다.

 

 

S3 버킷 생성

 

S3 대시보드 > '버킷 만들기' 클릭

 

 

버킷이름은 원하는 대로 입력한다.

 

 

위와 같이 세팅 후 나머지 설정은 전부 기본값 놔두고 '버킷 만들기'

 

 

버킷 정책 수정

 

생성된 버킷 상세 페이지 '권한' 탭 클릭 >  '버킷 정책'의 '편집' 클릭 > '정책 편집기' 클릭

 

 

위와 같이 값을 채워 넣자.

  • Actions: GetObject, PutObject
  • ARN: 버킷 상세 페이지 '속성'탭 Amazon 리소스 이름(ARN)의 값을 넣어주는데 값 뒤에 /*를 꼭 넣어주자
    ex) arn:aws:s3:::s3-bucket-1/*

 

Add Statement > Step 3: Generate Policy 하단에 'Generate Policy' 클릭

 

 

위처럼 팝업이 생성되는데 안에 내용 전부 복사 후 버킷 정책안에 붙여 넣고

'변경 사항 저장'을 눌러 완료한다.

 

 

IAM 사용자 생성하기

 

IAM 대시보드 > 사용자 > '사용자 생성' 클릭

 

생성을 원하는 사용자의 이름을 입력하고 '다음' 클릭

 

 

선택 후 '다음' 클릭 > '사용자 생성' 클릭

 

 

IAM 사용자 액세스 키 생성

 

생성한 사용자 상세 > '요약' 부분 '액세스 키 만들기' 클릭

 

태그 이름은 선택 사항이니 자유롭게 해도 된다.

 

.csv 파일 다운로드를 꼭 눌러서 파일을 잘 간직하자!

 

 

was-server에 IAM 액세스 키 설정

 

이제 was에 접속해 보자

 

# AWS CLI가 자격 증명으로 구성되었는지 확인하는 명령어
aws configure list

 

만약, 자격 증명이 설정되어 있지 않으면 다음과 같은 출력을 반환하게 된다.

Name                    Value             Type                Location
----                    -----             ----                --------
profile                <not set>          None                None
access_key             <not set>          None                None
secret_key             <not set>          None                None
region                 <not set>          None                None

 

* 만약 위와 같이 나오지 않고 access_key, secret_key가 이미 설정되어 있으면
다음의 내용은 따라오지 말고 EC2에 역할을 부여해서 S3에 업로드하는 권한을 얻어내는 방식으로 세팅을 하면 될 듯하다.

 

# AWS CLI는 Amazon Linux AMI를 사용하면 기본으로 설치되어 있지만 아닌 경우에는 설치가 필요하다.
aws configure 
# 위의 명령어 실행되면 아래 프롬프트가 생성이 되는데 질문에 맞게 입력하면됨

AWS Access Key ID [None]: <위에서 발급한 Access Key id>
AWS Secret Access Key [None]: <위에서 발급한 Secret Access Key>
Default region name [None]: 
Default output format [None]:

 

Default region name과 output format은 기본 리전과 기본 출력 포맷으로 지정하지 않아도 되지만

  • Default region name : ap-northeast-2
  • output format : json

위처럼 입력해주었다.

 

EC2에서 S3 연결 확인

 

# S3 bucket의 object list를 조회
aws s3 ls <S3버킷이름>


그 후 test.txt를 만들어 준 후, s3에 업로드해보았다.

# 파일 생성
vim test.txt

# 생성한 파일 S3에 올리기
aws s3 cp ./test.txt s3://<S3버킷이름>

# 반대로 다운받는 명령어
aws s3 cp s3://<S3버킷이름>/test.txt ./

 


위의 명령어가 모두 동작되면 연동은 완료된 것이다.

 


 

참고 사이트

https://velog.io/@yes_jihyeon/AWS-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%A0%80%EC%9E%A5%EC%9D%84-%EC%9C%84%ED%95%9C-S3-%EB%B2%84%ED%82%B7-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0-SpringBootGradle

 

https://velog.io/@yso8296/a

 

https://repost.aws/knowledge-center/s3-locate-credentials-error

 

https://kimjingo.tistory.com/209

 

 

 

반응형