항해14기 본과정/항해14기 개발일지

[항해 14기] 개발일지 50 (실전프로젝트 - AWS)

스쿼트잘함 2023. 6. 3. 05:17

실전프로젝트 - 3주차

 

1. 회의 내역(BE 안건)

1) 비로그인 유저 좋아요 표시
- 메인페이지에서 위스키 하트 삭제


2) 상세조회 들어갔을때 하트 on/off
- 상세조회요청 시 FE에서 페이로드 전송
- BE에서 해당 userid 이용하여 DB조회 하여 T/F로 res전송


3) 회원가입 이메일 중복확인
- 이메일 인증 버튼으로 변경하고, 중복된 이메일 기능과 이메일 인증번호 발송 로직 합치기


4) 위스키바 검색(지도api)
- 지도 api 이용하는것과 위스키바 공공api제작중에 고민

- 위스키바 api 제작은 스코프가 너무 커져서 지도api에 커스텀하기로 결정

- 지도api에서 칵테일바라고 검색시 모든 위스키바 나오는것 확인, 의도하지 않은 데이터(위스키피시방 등)의 경우 거의 나오지 않는 것 확인
- 지도 최초 화면로딩 시 디폴트로 칵테일바 검색 상태로 노출

- 이후 유저가 추가 검색시 키워드 가이드제시/토글버튼(순수 지도api이용과 위스키바 검색에 대한 스위칭) 등을 구성하여 키워드에 자동으로 칵테일바 붙여주는 방식으로 진행
5) 지도api에서 받아오는 업장 정보들
- 크롤링 방식 연구 필요
- 위도 경도 받아와서 서비스 가입 업장이랑 데이터 비교 예정 

 

 

 

2. AWS

1) amazon wen services

- 아마존닷컴이 제공하는 클라우드 컴퓨팅 플랫폼, AWS는 전 세계에 분산되어 있는 데이터 센터에서 고객에게 IT 인프라를 제공

 

2) 주요 서비스
- 컴퓨팅: EC2 (Elastic Compute Cloud), Elastic Beanstalk 등
- 데이터베이스: RDS (Relational Database Service) 등
- 스토리지: S3 (Simple Storage Service), EBS (Elastic Block Store)등
- 네트워킹: VPC (Virtual Private Cloud), CloudFront, Route 53 등
- 보안: IAM (Identity and Access Management) 등

 

3) Onpremise 서버
- 조직 내부에 설치되고 유지보수되는 서버, 서버가 조직의 물리적인 위치에 있으며 조직의 IT 인프라를 관리하는 팀이 해당 서버를 관리하고 유지보수

- 일반적으로 조직의 중요한 데이터나 애플리케이션을 호스팅하고 보호하기 위해 사용

- 일반적으로 인터넷을 통해 액세스할 수 있는 외부 데이터 센터에서 호스팅되는 클라우드 서비스와 대조적. 클라우드 서비스를 사용하면 조직은 자체 IT 인프라를 보유하지 않아도 되며, 클라우드 제공 업체가 대신하여 서버를 관리하고 유지보수

 

4) IAM

- AWS Identity and Access Management (IAM)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스. 사용자, 그룹 및 역할을 생성하고 관리하여 리소스에 대한 액세스를 안전하게 제어 가능

- IAM을 사용하면 사용자에게 필요한 권한만 부여하여 보안을 유지하고, 보안 정책과 규정을 준수하기 위해 일부 사용자에게만 특정 리소스에 대한 액세스를 부여할 수 있음. 이는 AWS에서 보안을 강화하는데 중요한 역할

 

5) Billing

- AWS 계정 사용량과 비용을 모니터링하고, 요금 청구 정보를 제공하는 서비스. AWS 사용량과 비용을 모니터링하고 분석함으로써, 비즈니스에서 AWS 비용 최적화 가능

 

6) EC2

- 클라우드 컴퓨팅 서비스 중 하나로, 가상 서버 인스턴스를 제공. EC2를 사용하면 필요한 시간만큼 가상 서버를 생성하고 사용할 수 있으며, 필요에 따라 스케일 업 또는 스케일 다운 가능
- 하드웨어 리소스를 가상화하여 사용하고 있기 때문에, 하드웨어 상에서 실행 중인 물리적인 서버와는 다른 형태. 이러한 가상화된 컴퓨터 환경을 인스턴스(instance) 라고 지칭

- 주 용도 : 웹 애플리케이션 호스팅, 데이터베이스 호스팅, 컴퓨팅 작업 (예: 데이터 분석, 머신 러닝), 애플리케이션 테스트 및 개발
- 유연하게 스케일링이 가능하며 다른 aws서비스와 통합하여 다양한 용도로 사용 가능

 

7) EBS

- aws에서 제공하는 블록 스토리지(데이터를 블록 단위로 저장)

- EBS(Elastic Block Store) 스냅샷(Snapshot)은 EBS 볼륨의 데이터를 인스턴스 내에서 복제하고, 이를 S3에 저장. 이를 통해 데이터를 백업하고 나중에 이전 상태로 복원 가능
- 볼륨 확장: 스냅샷에서 새로운 볼륨을 생성하고, 기존 볼륨에서 새로 생성한 볼륨으로 데이터를 복사하여 볼륨 크기 확장 가능
- 데이터 마이그레이션: 스냅샷을 사용하여 EBS 볼륨의 데이터를 다른 지역으로 이동 가능

 

8) AMI

- EC2 인스턴스를 생성할 때 사용되며 운영 체제와 애플리케이션, 라이브러리 등이 포함되어 있음
- 이미 구성된 환경을 불러와 인스턴스 초기 생성이 편리해짐
- Amazon에서 제공하는 것뿐만 아니라 개발자가 직접 생성 및 공유 가능

 

9) ELB

- Elastic Load Balance : AWS에서 제공하는 로드 밸런싱 서비스로, 다수의 EC2 인스턴스를 사용하여 트래픽을 분산시킴

- 인스턴스의 장애/부하 분산에 대한 대응을 용이하게 해줌

- Application Load Balancer : OSI 모델 7계층에서 동작하며, HTTP/HTTPS 트래픽을 처리. 또한, 컨테이너화된 애플리케이션과 연동하여 사용 가능
- Network Load Balancer: OSI 모델 4계층에서 동작하며, TCP/UDP 트래픽을 처리. 높은 처리량을 필요로 하는 애플리케이션에 적합
- Classic Load Balancer: OSI 모델 4~7계층에서 동작하며, HTTP/HTTPS, TCP/UDP 트래픽을 처리. 가장 오래된 형태의 로드 밸런서이며 위의 ALB나 NLB 방식을 추천

10) RDS
- 관리형 데이터베이스 서비스로, Amazon RDS 서비스를 통해 데이터베이스 엔진을 선택하고 필요한 크기 및 용량을 선택하여 인프라를 자동으로 프로비저닝할 수 있음

- EC2 인스턴스 내에 직접 데이터베이스를 설치하고 구성하는 대신 RDS 서비스를 사용하여 데이터베이스를 생성, 관리 및 확장 가능(지속적인 백업과 복구 기능 지원, 모니터링 가능)
- 프로젝트 참여자들이 로컬에서 RDS 연결을 통해 DB 공유 가능

 

11) Route 53

- aws의 도메인 관리 서비스

 

12) VPC

- Virtual Private Cloud의 약자로, AWS에서 제공하는 클라우드 컴퓨팅 리소스를 사용할 수 있는 가상의 사설 네트워크. 사용자는 VPC 내에서 IP 주소 범위, 라우팅 테이블, 서브넷 및 보안 그룹을 설정할 수 있습니다. 또한 가상 서버, 스토리지 및 데이터베이스와 같은 다양한 AWS 리소스를 시작하고 관리할 수 있음

- 서브넷 : VPC 내에서 IP 주소 범위를 지정하는 가상의 네트워크
- 퍼블릭 서브넷 : 인터넷 게이트웨이와 직접 연결된 서브넷. 인터넷에서 직접 액세스할 수 있는 인스턴스를 실행할 수 있으며 공인ip 주소를 사용
- 프라이빗 서브넷 : 인터넷과 직접 연결되지 않는 가상의 네트워크. 인터넷에 직접 액세스할 수 없습으나 NAT 게이트웨이를 사용하여 인터넷을 통해 인스턴스에 연결가능
- IGW (Internet Gateway) :  VPC와 인터넷 간의 통신을 가능하게 하는 게이트웨이

- NAT (Network Address Translation) Gateway : 프라이빗 서브넷에서 아웃바운드 인터넷 트래픽을 가능하게 하는 서비스

 

13) S3

(1)Amazon Simple Storage Service(Amazon S3) 

- 인터넷 스토리지 서비스. 개발자나 IT 운영자가 웹 규모 컴퓨팅 작업을 수행하는 데 필요한 데이터 저장 공간을 제공. 웹 사이트 호스팅, 온라인 백업, 데이터 아카이브, 기업 애플리케이션, Big Data 분석 등 다양한 용도로 사용
- 장점 : 높은 내구성, 가용성 및 안정성, 손쉬운 사용 및 관리, 보안성, 높은 확장성
(2) Buckets
- 데이터를 저장하는 가장 상위 레벨의 폴더 형태의 컨테이너입니다! 
- S3에 저장되는 파일들을 ‘객체’ 라고 부르고 모든 객체는 ‘키’(디렉토리)로 식별
- 데이터를 저장하는 컨테이너 역할, 객체에 대한 위치를 부여하여 접근 권한/이벤트 알림 등의 설정이 가능

 

14) Cloudfront

- AWS에서 제공하는 글로벌 콘텐츠 전송 네트워크(CDN, Content Delivery Network) 서비스

- 사용자에게 정적 및 동적 컨텐츠를 빠르게 전송하여 웹 애플리케이션의 성능을 향상시킴

- 데이터 전송 거리가 물리적으로 길어지는 것을 엣지 로케이션을 통해 개선
- 캐싱: 엣지 로케이션에 콘텐츠를 캐싱하여 동일한 콘텐츠에 대한 다중 요청에 대해 원본 서버로의 요청을 줄임
- CDN에서 방화벽을 제공하여 각종 공격에서 안전

- 뉴스 등 최신 동적 컨텐츠 제공에는 부적합

 

15) EBS

- 기본적인 초기 설정을 편리하게 도와주어 간편하게 배포가 가능

- 애플리케이션을 업로드하기만 하면 Elastic Beanstalk에서 용량 프로비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링에 대한 세부 정보를 자동으로 처리해주어 관리의 복잡성이 줄어듦
- 기본 설정이 거의다 되어있따보니 직접적인 인프라 구성이나 서버 제어, 운영 관리 측면에서 어려울 수 있음