728x90

Server Programming 55

AWS - DynamoDB (Query VS Scan)

데이터를 불러오는 두가지 방법 Query, Scan Query Primary Key를 사용하여 데이터 검색 Query 사용시 모든 데이터(컬럼) 반환 ProjectionExpression 파라미터 Scan 모든 데이터를 불러옴 (primary key 사용 X) 따로 필터를 추가 하여 원하는 데이터를 볼 수 는있다. (쿼리와 가장 큰차이) 쿼리는 이미 파티션이 적용되는 반면에 스캔은 그렇지 않다. ProjectionExpression 파라미터 Query VS Scan Query가 Scan보다 훨씬 효율적인 따라서, Query 사용 추천 데이터의 크기가 일정하지 않아 테이블의 크기가 계속 커진다면 Scan의 퍼포먼스는 악화된다. 다만, Scan을 사용하면서 보완할 수 있는 스킬이 있다. 순차적 방법 병행 스..

AWS - DynamoDB (Index)

Index 특정 컬럼만을 사용하여 쿼리 테이블 전체가 아닌 기준점(pivot)을 사용해 쿼리가 이루어짐 매우 큰 쿼리 성능 효과 두가지의 Index 유형 존재 Local Secondary Index Global Secondary Index Local Secondary Index (LSI) 테이블 생성시에만 정의해줄 수 있음 따라서 테이블 생성 후 변경, 삭제가 불가능 똑같은 파티션키 사용, 그러나 다른 정렬키 사용 → 전혀 다른 뷰를 만들어 줄 수 있음 시간을 정렬키로 정의한다면 쿼리속도가 빨라짐 Global Secondary Index (GSI) 테이블 생성후에도 추가, 변경, 삭제 가능 다른 파티션키, 정렬키 사용 → 완전히 다른 뷰를 만들어줄 수 있음 뷰를 만든다 → 뷰가 복제가 된다. 뷰에서 데이..

AWS - DynamoDB

DynamoDB NoSQL(Not Only SQL) 데이터베이스 매우 빠른 쿼리속도 Auto-Scaling 긴능 탑재 → 데이터의 크기가 커질 수록 테이블의 크기가 알아서 조정 (비용관리에 좋다) Key-Value 데이터 모델 지원 테이블 생성시 스키마 생성이 필요 없음 → 데이터가 들어올 때 알아서 스키마를 생성함 모바일, 웹, IoT 데이터 사용시 추천됨 → 실시간으로 들어오는 데이터를 관리할때 매우 좋음 SSD 스토리지 사용 → 따라서, 읽고 쓰기가 매우 빠름 테이블(Table) 로 구성되어있음 내부에는 아이템(items) - 행(row)과 개념이 비슷하다. 특징(Attributes) - 열(column)과 개념이 비슷하다. Key-Value (key : 데이터의 이름, Value : 데이터 자체)..

AWS - CloudFront

CloudFront 정적, 동적, 실시간 웹사이트 컨텐츠를 유저들에게 전달하는데 사용됨 특정 유저가 요청했을때 Edge Location을 통해 사용 웹사이트에 컨텐츠가 딜리버리 된다. 컨텐츠 딜리버리 네트워크 Content Delivery Network(CDN) 특정 홈페이지에서 html, js등 내용물을 가져오는 속도를 CDN을 통해 비약적으로 상승 할 수 있다. 분산 네트워크(Distributed Network) 한국에서 웹사이트를 운영중일때라고 가정한다면,, 세계 각국에서 요청이 왔을때 그들에게 보여줘야할때 Latency가 발생할 것이다. 웹사이트 호스팅 Region 에서 멀어질 수록 컨텐츠가 딜리버리되는 시간이 달라진다. CDN은 모든 컨테츠를 직접 전달하는게 아니라 녹색 큐브인 edge loca..

AWS - Lambda

Serverless의 주축을 담당 Serverless : server + less → 서버가 없다. 클라우드가 직접 서버를 돌려주고, 생성하며 리소스들을 서버의 사용량에 따라 직접 할당해줌 따라서, 문제점도 덜 발생한다. 또한 사람의 간섭이 거의 없는 편이다. Events를 통하여 Lambda를 실행시킴 Event ex) 업로드 된다. 삭제 되었다 등 NodeJS, Python, Java, Go등 다양한 언어 지원 직접 코드를 자서 이벤트가 감지되었을때 우리가 작성한 코드가 실행이 된다. Lambda → 다른 서비스 호출 Lambda Function 람다에서 짠 코드를 람다 함수라고 한다. 비용 Lambda Function이 실행될때만 비용 지불 매달 1,000,000번 함수 호출 시 무료 (그 후로는 ..

AWS - CloudWatch Alarm

Alarm 임의로 정해놓은 값에 도달할 시 Alarm을 울림 Alarm이 울릴 시 특정 이벤트들을 작동시킬 수 있음 Alarm State Alarm - 알람이 울렸다 Insufficient - 알람을 만들었지만 등록한 주체가 없을 때 ex) 알람을 EC2인스턴스에서 돌게 만들었지만, EC2 인스턴스가 없을때 Insuffient 상태로 분류가 된다 OK - 알람이 울리지 않고 원하는 범위 내에서 리소스들이 잘 돌아간다. Billing Alarm 우리들이 정해놓은 지출 임계값을 초과할 경우 SNS를 통하여 경고를 함 현재 N.Virginia(us-east-1)지역에서만 이 기능이 지원됨

AWS - CloudWatch

CloudWatch AWS 리소스 사용의 실시간 모니터링 기능 지원 다양한 이벤트들을 수집하여 로그파일로 저장 이벤트 & 알람 설정을 통해 SNS, AWS Lambda로 전송 가능 [CloudWatch 사용 가능 서비스들] : EC2, RDS, S3, ELB등 ex) 1. S3버켓에 파일을 업로드하고 삭제할 때 S3버켓 접근 시 접근 거부 발생 RDS 데이터베이스에 접속 시도할 때 → 이 모든게 이벤트로 발생할때, 로그파일로 저장하거나, 알람을 해준다. CloudWatch 모니터링 종류 Basic Monitoring 무료 5분 간격으로 최소의 Metrics 제공 Detailed Monitoring 유료 1분 간격으로 자세한 Metrics 제공 Metrics ex ) CPU 사용량 네트워크 I/O 등 Cl..

AWS - S3 encryption(암호화)

파일 업로드/다운로드시 SSL / TLS 가만히 있을시 SEE-S3 → 마스터 키가 있어 일정 시간마다 키 값을 변경 (AES-256 으로 구성) SSE-KMS → AWS에서 일괄적으로 관리하지만 언제, 누가, 어떻게 암호를 풀었는지 기록이 복원 가능 SSE-C → 암호키를 직접 다룰 수 있으며, 사용자가 키 값을 변경 시켜줘야함 S3 암호화 과정 일반적으로 파일 업로드 요청시 PUT 요청이 생성됨 PUT 요청이 일어났고, 호스트는 버켓 이름 및 메타데이터들이 보인다. 업로드시 암호화가 이루어 진다면, x-amz-server-side-encryption-parameter 가 헤더에 딸려나온다. 파일을 S3에 업로드할 시 PUT요청에 해당 문구가 헤더에 있다면, S3는 사용자가 암호화 요청을 건 것으로 간..

AWS - S3

S3 (Simple Storage Service) AWS에서 처음으로 런칭한 서비스 특징 안전하고 가변적인 Object 저장공간을 제공 (ex: Google Cloud) AWS 에서 모든 파일에 일종의 안전장치를 걸어놔서 외부에서 접근 불가하게 만들어줌 가변적이란 것은 따로 저장공간의 크기를 만들지 않아도 알아서 커졌다 작아졌다함 이미지, 동영상, 파일 같은 것들만 올림 / 운영체제 X 편리한 UI 인터페이스를 통해 어디서나 쉽게 데이터를 저장하고 불러올 수 있음 파일 크기는 0KB ~ 5TB 까지 지원 저장공간 무제한 실제 HDD와는 달리 방대한 양의 데이터를 보관할 수도 있음 Bucket이라는 이름을 사용함 (디렉토리와 유사함) 폴더를 만들고 폴더 이름을 부여해주는 것과 같이 이름 변경 가능 Buck..

AWS - RDS (Multi-AZ, Read Replicas)

Multi AZ (Multi Availability Zones) 원래 존재하는 RDS DB에 무언가 변화(ex: write)가 생길 때 다른 AZ에 똑같은 복제본이 만들어짐 = Synchronize AWS에 의해서 자동으로 관리가 이루어짐(No admin intervention) 원본 RDS DB에 문제가 생길 시 자동으로 다른 AZ의 복제본이 사용됨 Disaster Recovery Only ! 성능 개선을 위해서 사용되지는 않음, 따라서 성능 개선을 기대하기 위해선 Read Replica가 사용되어져야 함 Read Replica Production DB의 읽기 전용 복제본이 생성됨 주로 Read-Heavy DB 작업시 효율성의 극대화를 위해 사용됨(Scailng) Disaster Recovery 가 주..

728x90
반응형