전체 글

전체 글

    [AWS, Certified Developer Associate] Aurora, RDS 프록시, ElastiCache

    AuroraAWS의 독점 기술 (오픈소스 X)Postgre / MySQL과 호환 (드라이버 호환 O)클라우드 최적화, 기능을 통해 RDS에서 MySQL 대비 5배 / Postgre 대비 3배 높은 성능스토리지 자동 스케일링 (10GB up to 128TB)15개 Read Replica 가능 및 복제 속도 빠름 (MySQL은 5개)리전 간 복제 지원즉각적인 장애 복구 (MySQL의 다중 AZ 장애 조치보다 훨씬 빠름)Master 장애 발생 시 평균 30초 이내 장애조치클라우드 네이티브로 고가용성 제공다른 RDS보다 20% 더 많은 비용 고효율 Aurora의 고가용성 및 읽기 확장성, DB 클러스터데이터에 대해서 3개의 AZ에 6개의 사본이 저장됨쓰기에 대해서는 6개 중 4개 사본 필요 (하나의 AZ가 다..

    [AWS, Certified Developer Associate] RDS - Storage Auto Scaling, Read Replica, Multi-AZ

    RDS (Relational Database Service)query language로 SQL을 사용하는 DB를 위한 관리형 DB 서비스PostgreSQLMySQLMariaDBOracleMicrosoft SQL ServerAurora EC2 인스턴스에 DB를 배포하는 것 대신 RDS를 쓰는 이유자동 프로비저닝, OS 구성지속적인 백업 / 특정 타임스탬프로 복원 (특정 시점 복원, Point in Time Restore)읽기 전용 레플리카 제공 (읽기 성능 향상)재해 복구를 위한 다중 AZ 제공업그레이드를 위한 유지관리 기간스케일링 기능(인스턴스 유형 변경 수직 / 레플리카 수평)EBS를 통한 스토리지 기능 지원하지만 SSH 불가능 (EC2 접근 불가) RDS - Storage Auto Scaling스..

    [AWS, Certified Developer Associate] ASG

    ASG (Auto Scaling Group)AWS에서 EC2 인스턴스 생성 API 호출을 통해 빠르게 서버를 생성하고 제거 가능이를 자동화하는 기능ASG 목표스케일 아웃 (EC2 인스턴스 추가)을 통한 증가된 부하 감당스케일 인 (EC2 인스턴스 제거)를 통한 감소된 부하에 대해 자원 세이브최소/최대 EC2 인스턴스 개수 설정 가능새로운 EC2 인스턴스를 LB에 자동으로 등록 가능비정상적인 EC2 인스턴스를 새로운 EC2 인스턴스로 교체 가능무료CloudWatch와 연동하여 스케일링 가능ex) CloudWatch에서 평균 CPU Utilization이 특정 값을 넘어 경보가 전달되면 EC2 인스턴스 추가 스케일링 정책동적 스케일링 정책 (Dynamic Scaling Policies)Target Track..

    [AWS, Certified Developer Associate] Load Balancer

    ELB (Elastic Load Balancer)트래픽을 여러 서버(ex. EC2 인스턴스)에 전달하는 역할EC2 인스턴스로 가는 부하를 분산유저는 어떤 서버로 요청이 전송되는지 알지 못함 (ELB 하나의 엔드포인트에서 부하 분산)LB 보안그룹은 HTTP, HTTPS 모두 허용EC2 보안그룹은 HTTP 트래픽만 허용,Source는 LB 보안그룹만 허용Load Balancer가 필요한 이유부하를 다수의 다운스트림 인스턴스로 분산단일 액세스 포인트 (DNS)를 가질 수 있음상태 확인을 통해 다운된 서버를 알고 이를 핸들링 가능SSL을 붙여 암호화된 웹사이트 -> HTTPS 트래픽을 가질 수 있음고가용성 제공클라우드 내에서 private 트래픽 / public 트래픽 분리 가능 ELB가 필요한 이유관리형 로드..

    [AWS, Certified Developer Associate] EC2 - AMI, Instance Store, EBS, EFS

    EBS Volume네트워크 드라이브 (물리 드라이브 X, 네트워크를 통해 연결된 드라이브)네트워크로 연결되어 있으므로 일시적인 지연이 있을 수 있음네트워크 드라이브이므로 분리 및 다른 인스턴스에 연결 가능CCP 레벨에서는 하나의 EBS는 하나의 EC2 인스턴스에만 마운트 가능하나의 EC2에 여러 EBS는 가능 Associate 레벨에서는 일부 EBS 다중 연결 가능특정 AZ에 고정됨. 다른 AZ로 연결 불가능스냅샷을 이용하면 가능Volume이므로 용량을 미리 결정해야함(GBs, IOPS[단위 초당 전송 수]). 이후 용량 변경 가능EC2 인스턴스 생성 시 콘솔에서 EBS 볼륨을 생성하면 종료 시 삭제 옵션 설정 가능 (Delete on Termination attribute)EC2 인스턴스 종료 시 E..

    [AWS, Certified Developer Associate] EC2 - 정의, 인스턴스 유형, 보안그룹

    EC2 (Elastic Compute Cloud)IaaS (Infrastructure as a Service)가상머신 임대 (EC2 인스턴스)OS 설정CPU 성능 설정RAM 설정스토리지 설정네트워크 연결 스토리지 : EBS, EFS하드웨어 연결 스토리지 : EC2 Instance Store네트워크 유형 설정네트워크 카드 속도, Public IP방화벽 규칙 설정보안그룹부트스트랩 스크립트를 이용해 실행 시 동작 설정EC2 User Data가상 드라이브에 데이터 저장 (EBS)부하 분산 (ELB)자동 서비스 확장 = Auto Scaling (ASG)  EC2 인스턴스 유형m5.2xlargem : 인스턴스 클래스 (범용목적, 네트워크, 스토리지 etc)5 : 세대2xlarge : 인스턴스 클래스의 크기Gener..

    [AWS, Certified Developer Associate] IAM

    IAM (Identity and Access Management)사용자 생성, 그룹배치글로벌 서비스계정 생성 시 기본적으로 Root account 생성사용자를 생성해 특정 그룹 내에 배치그룹 내에 그룹은 X각 그룹 별로 AWS 권한을 설정하는 데에 사용보안문제, 비용문제를 방지하기 위해 사용자 별 권한을 제한최소 권한의 원칙 (least privilege principle)한 사용자가 다수의 그룹에 포함될 수 있음  IAM 정책사용자, 그룹, IAM 역할의 권한을 정의하는 JSON 문서그룹 별로 정책 생성 가능그룹에 속해있지 않은 사용자에 대해서는 사용자에 대해서만 적용 가능한 인라인 정책 생성 가능 Version : 정책 언어 버전, 보통 2012-10-17Id : 정책 식별자 (Optional)Sta..

    백준[11509] - 풍선 맞추기

    문제: https://www.acmicpc.net/problem/11509 분류: 그리디 난이도: G5 소요시간: 40m 자아성찰: 그리디, DP는 여전히 어렵다. 왼쪽에서 오른쪽으로만 화살을 쏠 수 있다는 조건을 통해 그리디 문제인 걸 알았다. 현재 위치에서 반드시 풍선을 터뜨려야 한다. 배열의 index를 풍선 높이로, index의 값을 해당 높이에 남아있는 화살 수로 접근했다. 현재 위치의 풍선 높이에 해당하는 화살이 존재한다면 (arr[H] > 0), 해당 화살은 사라지고(arr[H] --) 높이 - 1의 화살이 생긴다. (arr[H - 1]++) 현재 위치의 풍선 높이에 해당하는 화살이 존재하지 않는다면(arr[H] = 0) 새 화살을 쏘고 높이 - 1의 화살이 생긴다. (arr[H - 1]++..

    백준[15787] - 기차가 어둠을 헤치고 은하수를

    문제: https://www.acmicpc.net/problem/15787 분류: 비트마스킹 난이도: S2 소요시간: 20m 자아성찰: 명령 형태를 보고 긴가민가 했는데, "이미 목록에 존재하는 기록이라면 해당 기차는 은하수를 건널 수 없다." 조건에서 비트마스킹임을 확신했다. 최대 10만 개의 기차에 대해서 20개의 칸을 모두 비교하는 건 시간복잡도가 용서하지 않으므로, 비트마스킹을 통해 단순히 Integer 값으로 치환해 중복 여부를 판단해 시간복잡도를 줄일 수 있었다. Set를 통해 굳이 List.contains() 메서드를 사용하지 않고 중복을 제거했다. 15787번: 기차가 어둠을 헤치고 은하수를 입력의 첫째 줄에 기차의 수 N(1 ≤ N ≤ 100000)과 명령의 수 M(1 ≤ M ≤ 1000..

    [시스템 설계: 한번에 인터뷰 합격하기] 샤딩(Sharding) & RDB vs NoSQL

    1. 알고자 하는 것 샤딩 (Sharding) Sharding: MongoDB, Cassandra RDB vs NoSQL 2. 알게 된 것 데이터베이스의 확장성을 높이는 방법으로는 수직 스케일링 vs 수평 스케일링 방식이 있다. 수평 스케일링 방식으로는 샤딩(Sharding)이 있다. Sharding 샤딩은 데이터를 여러 DB에 분산하여 저장하는 방식이다. 데이터를 특정 Hash Function을 통해 구분지어 각 샤드에 저장한다. 클라이언트는 각 요청에 대해 Hash Function을 통해 데이터가 있는 샤드에 접근하여 데이터를 조회 및 저장한다. 각 샤드에는 장애 시 메인 샤드 DB로 승격될 수 있는 백업을 가질 수 있다. 이를 통해 새로운 DB를 계속 추가함으로써 무한히 확장 가능하다. (수평 스케..