본문 바로가기

개발 일지

[TIL]이노베이션 캠프 27일차

Spring 심화 주차 8.26(금) ~ 9.1(목)

1. 개인 과제: Spring 핵심 키워드 정리
2. 팀 과제: 요구사항에 맞추어 API 구성 및 Git을 활용한 협업 

 

진행 계획

- 26일(금) API 명세서 작성, ERD 만들기

- 27일(토) 팀 과제에 필요한 강의 수강 및 공부

- 28일(일) 팀 과제 내가 맡은 이미지 업로드 기능 코드 작성

- 29일(월) 개인 과제 Spring 핵심 키워드 정리

- 30일(화) 팀 과제 코드 수정 및 검토

- 31일(수) 팀 과제 코드 취합 및 요구사항 충족 확인

- 1일(목) 팀 과제 코드 최종 취합 및 AWS 배포

 

 

 

1. 새로 배운 것

 

1) AWS(Amazon Web Service)

클라우드는 우리가 만든 서비스를 돌아갈 수 있게 해주는 곳입니다. 흔히들 웹사이트를 돌리기 위해 필요한 도메인, 서버, 데이터베이스 등등을 제공해 줍니다. 개발자들 사이에서는 인프라라고 얘기합니다. AWS는 수 많은 클라우드 서비스중에 이용률이 높은 서비스입니다.

 

👇🏻AWS가 지원하는 서비스

AWS를 사용하는 가장 유명한 글로벌 서비스로는 넷플릭스가 있습니다. 넷플릭스는 AWS로 이사 가는 데만 7년이라는 시간이 걸린 것으로 유명합니다. 한국에서는 쿠팡, 배민, 당근마켓 등등 거의 모든 스타트업들이 AWS를 사용하고 있습니다.

 

2) S3

버킷:  S3에서 파일을 저장하는 폴더라고 생각하시면 됩니다. 우리가 컴퓨터를 사용할 때 폴더 안에 파일을 저장하는 것처럼 S3에서도 버킷 안에 파일을 저장합니다.

 

1️⃣ 버킷 생성

- 버킷 이름 : 고유한 이름으로 생성

- AWS리전: 아시아 태평양(서울) ap-northeast-2

AWS는 여러 나라에 데이터 센터를 갖고 있습니다. 데이터 센터가 있는 나라를 리전이라고 하고, 리전 내의 데이터 센터 위치를 존(AZ)이라고 합니다. 리전과 존이 중요한 이유는 AWS 사용하여 인프라를 구성할때 서비스 하려는 지역의 리전과 존을 사용해야 한다는 것입니다. 한국에서 서비스 하려면 ap-northeast-2 리전을 사용합니다. 서비스하려고 하는 지역과 가까운 곳의 리전을 사용할수록 사용자들에게 좀 더 빠른 속도로 서비스를 제공할 수 있습니다.

 

2️⃣ 액세스 차단 설정

액세스 차단 설정은 버킷에 저장한 파일의 권한을 설정하는 기능입니다. 퍼블릭 엑세스: 버킷이 생성되면 고유한 URL이 부여됩니다. URL을 통해서 저장된 파일에 접근 할수 있게 하는 기능입니다. ACL: 액세스 제어 목록으로 버킷과 객체에 대한 액세스를 관리합니다.

 

3️⃣ 버킷 버전 관리 

개발할때 소스를 git, svn으로 관리하는 것처럼 버킷내의 파일들을 버전을 관리할 수 있는 기능입니다.

 

4️⃣ 태그

해당 버킷을 태깅해놓고 이후에 비용측정이라던지 많은 버킷중에 태그로 검색을 한다던지 할때 쓰는 태깅 기능입니다.

 

5️⃣ 기본 암호화

파일들을 암호화해서 좀더 보안적으로 신경써서 관리하게 해주는 기능입니다.

 

6️⃣ 고급설정

객체 잠금은 보시는 것과 같이 고~~급 설정입니다. 중요한 파일이 버킷에 저장되면 보안에 좀 더 신경써야겠죠!! 이런경우 사용하는 기능입니다. -> 지금은 사용x 필요 시 추가로 알아보고 사용

 

3) IAM( Identity and Access Management)

사용자, 역할을 관리하는 서비스로 AWS의 내 계정을 관리하는 서비스입니다.

프로그램 연동을 위한 계정 생성

 

1️⃣ IAM-사용자

 

2️⃣ 사용자 추가

사용자 세부정보, 엑세스 유형 선택

용자 이름, 엑세스 유형 중 프로그래밍 방식 엑세스를 체크하고 다음 단계로 넘어갑니다. 프로그래밍 방식 엑세스는 개발 언어와 연계해서 사용하는 방식이고, AWS Management Console 엑세스는 해당계정을 AWS 콘솔에서 로그인해서 사용하게 하는 방식입니다.

3️⃣ 권한 부여

생성하는 사용자에게 권한을 부여합니다. 기존그룹에 추가하는 방법, 기존사용자 권한 복사, 기존 정책 직접 연결 하는 방법이 있습니다. 우리는 기존 그룹, 사용자가 없기때문에 정의되어 있는 정책에 직접 연결하는 방법을 사용합니다. S3를 위한 사용자이기 때문에 AmazonS3FullAccess 권한을 부여합니다.

 

4️⃣ 사용자 추가 전 검토

5️⃣ 키 확인

엑세스 키 ID, 비밀 엑세스 키를 복사해놓는것이 중요합니다. 😱 절때 외부에 노출이 되면 안됩니다!!

4) AWS SDK 설치 및 설정

SDK(Software Development Kit): 프로그래밍을 돕는 라이브러리라고 생각하시면 됩니다. AWS SDK를 이용하시면 개발과 연동해서 AWS를 사용할 수 있게됩니다.

👉🏻 AWS의 서비스를 좀 더 프로그래밍 하게 사용하게 해주는 라이브러리입니다.

// AWS SDK 다운로드
// 윈도우
https://awscli.amazonaws.com/AWSCLIV2.msi
// 맥
https://awscli.amazonaws.com/AWSCLIV2.pkg

// 설치 확인
aws --version

// 설정
aws configure

 

S3에 파일 업로드하기

aws s3 cp {파일명} s3://{버킷이름} --acl public-read

 

S3 비용 계산

AWS 의 모든 서비스는 비용 계산이 복잡해요. S3는 저장된 파일의 용량과 파일을 호출하는 트래픽에 따라 비용이 부과되요. 🔥 비용계산을 대략적으로 해놓지 않으면, 생각보다 많이 부과된 비용에 당황하실꺼에요

 

 

2. 오늘 한 일 / 회고

이미지 업로드를 위한 IAM, S3, awsSDK 개념 익히고 실습 해보기

팀 과제에 적용하려고 저 키워드를 이용해서 🔥폭풍 검색까지 안해도 많은 양의 코드 소스들이 있었다.

요구사항에 맞춰서 적용해 봐야지!

 

 

3. TO-DO LIST

팀 과제 집중..!

검색하면 쏟아져나오는 코드들을 내꺼로 만들기..

 

 

4. 참고 레퍼런스

https://spartacodingclub.kr/online/drill/aws

 

스파르타코딩클럽 핵심 쏙쏙 AWS

AWS 짧고 굵게 배우기

spartacodingclub.kr

 

https://aws.amazon.com/ko/what-is-aws/?nc1=f_cc 

 

AWS란

AWS 리전의 글로벌 네트워크 AWS는 가장 광범위한 글로벌 클라우드 인프라를 갖추고 있습니다. AWS만큼 많은 리전에서 대기 시간이 짧고 처리량이 많으며 고도로 이중화된 네트워킹으로 연결된 여

aws.amazon.com