본문 바로가기

IT

NoSQL vs RDS 1. why we use noSQL 유연성 : rdb와 비교하여, 유연한 스키마를 제공하고 있기 때문에 데이터베이스를 반정형 또는 비정형적인 데이터를 취급하는데 유리하다. 이러한 스키마는 빠르고 반복적인 개발을 유도하게 된다. 확장성 : noSQL 데이터베이스는 고가의 스펙이 뛰어난 서버 대신, 분산형 클러스터를 이용하기 때문에, 서버 운영에 대한 부담 절감과 더 적은 스트리지를 기반으로 운영 할 수 있게 됨에 따라 더 많은 데이터를 담을 수 있게 되었다. 고성능 : 특정 비정형 데이터(document, key-value, graph … ) 및 엑세스 패턴에 대해 특화시킬 수 있기 때문에 특정 워크로드를 유사하게 받아들이는 것이 아닌 그대로 받아들일 수 있게 된다. 이에 따라 유사한 환경을 제공하는 rd.. 더보기
[DynamoDB] Amazon DynamoDB 구성 요소 Table of content 1. 테이블 2. 항목(Item) 3. 속성(Attribute) 4.Primary Key 4.1. Partition Key 4.2. Sort Key (Range Key) 5. Secondary Index 6. WCU, RCU 6.1.RCU (Read Capacity Unit) 6.2.WCU (Write Capacity Unit) 6.3. 참고 - 일관성 7. 참고문헌 1. 테이블 데이터 레코드의 집합 2. 항목(Item) 테이블에 있는 하나의 레코드 자체를 의미 3. 속성(Attribute) 기본적인 데이터 요소로 더 이상 나뉠 수 없는 것, 항목의 조각 속성에 대한 내포 속성은 32 깊이 까지 허용 대부분의 속성은 스칼라(하나의 값만 가질 수 있음)다. 4. primary.. 더보기
[Spring] Servlet과 web.xml의 관계 기본적인 프로젝트를 생성하면 다음과 같은 web.xml이 생성되어 있을 것이다. 기본적으로 "/"경로를 호출할 때, 쓰일 수 있는 페이지의 형식을 로 정의해 놓았다. servlettest index.html index.htm index.jsp default.html default.htm default.jsp 앱을 외부로 디플로이 하기 위해 자신의 프로젝트를 톰캣에 추가 하였을 것이다. web.xml에 매핑을 하지 않았을 경우, Servlet을 호출 할 때 http://// 과 같이 매우 긴 주소로 호출 할 것이다. 하지만 이러한 형식은 클래스 이름이 그대로 노출되기 때문에 보안상 좋지 않습니다. 따라서 이런 방식으로 사용하지 않고, 서블릿 클래스에 대해 대응하는 매핑된 이름으로 실제 서블릿을 요청한다. .. 더보기
[AWS-CLI] aws: command not found 해결법 일반적인 리눅스 터미널에서 awscli를 설치하였을 때, 보통은 제대로 작동하지만, git bash는 윈도우 상에서 리눅스 시스템을 사용하도록 에뮬레이터로 “흉내” 낸 것이기 때문에 경로가 잘 매칭 되지 않는 문제가 빈번히 일어난다. 그 결과로 다음과 같이 제대로 명령어가 작동하지 않는 경우가 종종 일어난다. 리눅스 환경에서도 경로 해석이 잘못 될 경우, 일어나는 에러이다. 위 문제를 해결하기 위하여 가장 먼저 awscli가 어떤 언어 기반으로 실행되는지 찾아보았다. 공식 aws github를 찾아본 결과, python을 사용하는 것을 알 수 있었다. Python기반으로 실행되는 스크립트 임을 알게 되었으니, 이제 실행파일이 어디 있는지 확인해보았다. 일반적으로 pip uninstall 명령어를 사용하면.. 더보기
[AWS] AWS 공식 홈페이지의 Default Limit과 Service Quota의 Default Limit가 다른 이유 1. 의문점 자주 사용하는 AWS Resource에 대해 조사하는 도중 홈페이지에 기술된 EC2 Default Limit과 AWS Service Quota의 내용이 상이하였습니다. 이에 대한 자료가 없어 상이한 내용에 대한 캡처본과 함께 AWS Support Center에 Case Open을 하였습니다. 상이한 내용은 다음과 같습니다. AWS 공식 홈페이지의 EC2 Default Limit AWS Service Quota에서의 EC2 Default Limit (개인 실습 계정 현황) 2. case 답변 본문 답변의 본문은 다음과 같습니다. Hello, I would like to thank you for your patience while we waited for the EC2 Service Team t.. 더보기
[AWS] EKS로 클러스터 구성하기 목차 1. 사전 준비 2. EKS로 클러스터 구성하기 3. Kubectl을 이용해 노드 구성하기 3-1. 노드 마이그레이션 4. helm 설치 5. Auto Scaling Application and Cluster 5-1. HPA 5-2. CA 6. Prometheus 7. Grafana 1. 사전 준비 AWS 가입 후, EKS Hands on Lab을 따라할 IAM계정을 생성하겠습니다. 이 testeks라는 이름을 가진 IAM계정에는 administrator access권한을 주었습니다. (아직 학습이 부족하여 구체적으로 eks를 사용하는데 얼마나 많은 요소가 들어가는지 파악중입니다. 파악되면, 해당 요소만 컨트롤 하는 권한만 정리하여 수록하겠습니다.) 생성한 IAM계정을 통하여 c9를 workspac.. 더보기
[AWS & Kubernetes] Kubernetes와 EKS 1. Introduction 1.1 What is Kubernetes 쿠버네티스는 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼이다. 1주일에 수십억 개의 컨테이너를 생성하는 구글이 내부 배포시스템으로 사용하던 borg를 기반으로 오픈소스 프로젝트를 통해 빠르게 발전하고 있다. 단순한 컨테이너 플랫폼이 아닌 마이크로서비스, 클라우드 플랫폼을 지향하고 컨테이너로 이루어진 것들을 손쉽게 담고 관리할 수 있는 그릇 역할을 합니다. 서버리스, CI/CD, 머신러닝 등 다양한 기능을 쿠버네티스 상에서 이용할 수 있다. Kubernetes가 제공하는 구체적인 항목은 다음과 같다. 1. Service Discovery and Load Balancing Kubernetes는 DNS나 자체 i.. 더보기
가상화와 하이퍼바이저 Virtualization 기존에는 하나의 app이나 task에 하나의 전용서버를 할당하였다. 이렇게 함으로써 app에서 발생하는 문제의 원인을 쉽게 발견 할 수 있었으며, 네트워크 구성이 용이했다. 그러나 이는 서버의 능력 중 극히 적은 능력만을 사용하여 효율성이 떨어지고, 네트워크 규모가 커지고 복잡해짐에 따라 서버가 점유하는 물리적 공간이 커지고 그에 따라 전력 소모도 심해진다. 이를 해결하고 전략을 세우기 위해 물리서버의 최대 처리능력만큼 여러개의 가상머신으로 분할하여 물리서버의 처리 능력을 최대한 활용 할 수 있게 한 것이 (서버) 가상화이다. 가상화를 하게 되면, 원래 os와 가상화한 파티션의 os를 다르게 설정 할 수 있다. 이 때, 상이한 os의 명령 또는 동작을 해석하여 하드웨어에 전달해.. 더보기
[AWS] Private instance와 Load Balancer연결 시 timeout이 발생하는 이슈 1. Timeout Error 상황의 리소스 현황 및 Data Flow 1-1. 리소스 현황 활성화된 로드밸런서 가용영역 : private-2a, private-2c 대상 그룹 : private-2a와 private-2c subnet에 있는 인스턴스 ip address 리스너 : HTTP 80 목적지 : Tomcat 8080 Public ip는 오직 public subnet의 인스턴스만 할당. IGW 및 NAT 서브넷 연결현황은 다음과 같다. IGW : public-2a, public-2c NAT : private-2a, private-2c, db subnet 1-2. Data Flow 1. 사용자는 Public DNS를 통해 ALB에 접근한다. 2. ALB의 트래픽은 IGW를 통해 VPC내로 들어온다... 더보기