210515_TIL
1. Facts(사실, 객관)
- AWS 강의 ( EBS ,S3, IAM, KMS )
- 홈쇼핑 토이프로젝트 영수증 조회 추가
- map, flatMap 차이 공부
2. Feelings(느낌, 주관)
- 회사에서 AWS 특강으로 강의를 들었습니다. 이론부분은 다소 지루하고 마음에 잘 와닿지 않았습니다. EC2, IAM, S3를 직접 생성해보니 좀 더 실제적인 경험이라 기억에 남습니다. 특히 S3는 개인 프로젝트를 하면서도 이미지 저장소로 활용할 수 있다는데, 더 학습을 하고 프로젝트에 실제 적용해보고 싶습니다.
- 홈쇼핑 토이프로젝트에서 영수증을 조회하는 서비스를 추가했습니다. Dto로 반환하기 위해서 어떻게 필드를 구성해야하는지, 이전에는 그냥 따라쳤었지만 이번에는 이해를 하고나니 능동적으로 코드를 잘 짤 수 있었습니다. 매일 꾸준히 들여다보고 고민하니 실마리를 찾을 수 있다는 믿음이 만들어낸 결과입니다. 또한 필요한 코드에 대해서 구글에 검색을 하여 flatMap도 사용할 수 있었습니다.
3. Findings (배운 점)
- AWS의 S3에 객체 형태로 파일, 이미지 등을 저장할 수 있습니다. 또한 버킷 자체가 요금으로 나가지는 않지만 버킷 안에 저장된 용량의 크기에 따라서 가격이 책정됩니다. 퍼블릭 액세스 차단 설정을 통해 해당 저장소로 접근을 허용할것인지 막을 것인지 설정을 할 수 있습니다.
*AWS CLI를 이용한 S3로 파일 복사하기
CLI에서 "aws s3 ls"를 입력하면 권한이 없기 때문에 "aws configuration"을 하라는 메세지가 뜨면서 보이지 않습니다. 따라서 다음 설정을 해주어야 합니다. 이는 AWS CLI가 AWS Service에 대한 API를 실행할 수 있도록 권한을 주는 것입니다.
$ aws configure
$ AWS Access Key ID [None]: 사용자 생성시 확인한 액세스 키 ID 를 입력
$ AWS Secret Access Key [None]: 사용자 생성시 확인한 비밀 액세스 키를 입력
$ Default region name [None]: ap-northeast-2
$ Default output format [None]:
"aws s3 ls"를 다시 입력하면 제대로 버킷 리스트가 나옵니다. 이후 다음과 같은 명령어를 통해 업로드가 가능했습니다.
1. 접속한 EC2 에서 다음과 같이 file 생성합니다.
$ touch 파일이름
2. 생성한 파일을 아래 명령으로 S3 로 복사합니다.
$ aws s3 cp 파일이름 s3://버킷이름
3. S3 Management console 에서 복사된 파일을 확인합니다
*AWS IAM 역할 부여를 통해 S3로 파일 복사하기
EC2에 IAM 역할을 부여할 수 있습니다. IAM 역할 변경에서 미리 생성한 S3FullAccess 역할을 선택하면 됩니다. 그러면 AWS는 S3에 접근할 수 있는 권한을 획득합니다. 위의 실습에 이어서하면 "rm -rf .aws"를 입력하여 모두 삭제하고 똑같이 업로드를 진행하면 됩니다.
* KMS를 통해서 S3접근 암호화하기
KMS를 통해서 CMK 키를 생성할 수 있습니다. 이 키는 관리자와 , 생성자를 지정할 수 있습니다. 이 떄 CMK는 필수적으로 사용권한에 S3FullAccess 역할을 추가해야 합니다. 이후 만들어둔 S3 버킷에 속성에 들어가서 내가 만든 CMK를 기본 암호화에서 설정합니다. 그렇다면 S3에 접근할 때 암호화가 설정됩니다. 이 암호와의 작동여부를 확인하고 싶다면, CMK에서 사용권한에 설정해 둔 S3FullAccess를 삭제해봅시다. 그렇다면 CMK는 S3에 접근할 권한을 못가지게 됩니다. 따라서 AWS CLI에서 우리는 더이상 업로드를 할 수 없습니다.
4. Affirmation (자기 선언)
- 잘 모르는 내용이라도 계속 주기적으로 인출한다면 이해할 수 있다.
4. Future Action ("구체적" 행동 계획)
- map, flatMap 차이 블로그 글 작성