전체 글 316

ElastiCache

1. ElastiCache클라우드 내 In-memory 캐시를 만드는 것데이터베이스에서 데이터를 읽어오는 것이 아닌 캐시에서 빠르게 데이터를 읽어 옴Read-Heavy 어플리케이션에서 상당한 Latency 감소 효과2. 종류2.1 MemcachedObject 캐시 시스템ElastiCache는 Memcached 프로토콜가 디폴트EC2 Auto Scaling처럼 크기 조절이 가능오픈소스2.1.1 Use-Case단순한 캐싱 모델, Object caching이 주 목적일 때, 캐시 크기를 마음대로 scaling해야할 때2.2 RedisKey-Value, Set, List와 같은 형태의 데이터를 In-Memory에 저장 가능오픈 소스, Multi-AZ 지원2.2.1 Use-CaseList, Set과 같은 데이터셋..

AWS/RDS 2024.11.07

Multi AZ, Read Replicas

1. Multi AZ원본 RDS DB에 변화가 생길 때 다른 Availability Zone에 똑같은 복제본이 만들어짐(동기화)AWS에 의해 자동으로 관리되는 기능유사 시 원본 RDS DB에 문제가 생기게 되면 자동으로 다른 AZ의 복제본이 사용됨즉, AWS가 Disaster Recovery를 수행해주는 것임2. Read ReplicaProduction DB의 읽기 전용 복제본이 생성주로 Read-Heavy DB작업(여러 사용자가 읽는 기사 등)시 효율성 극대화를 위해 사용(Scaling)Disaster Recovery 용도가 아님최대 5개 Read Replica DB 허용Read Replica의 Read Replica 생성 가능(단, Latency 발생)Read Replica 생성 시 발생하는 Late..

AWS/RDS 2024.11.07

RDS - Database Backups

1. RDS 서비스에서 제공하는 Backups1.1 Automated Backups(AB - 자동 백업)Retention Period(1~35일) 중의 특정 시간으로 DB를 백업할 수 있음AB는 그날 생성했던 스냅샷과 Transaction logs(TL)을 참고함디폴트로 AB 기능이 설정되어 있으며 백업 정보는 S3에 저장 -> RDS를 10GB 사용하고 있다면 S3도 10GB만큼을 사용할 수 있게 됨(즉, 백업 정보를 10GB만큼까지 저장할 수 있음)AB는 약간의 I/O suspension이 존재할 수 있음 -> Latency1.2 DB Snapshots(데이터베이스 스냅샷)주로 사용자에 의해 실행되며, 원본 RDS 인스턴스를 삭제해도 S3에 스냅샷이 존재함

AWS/RDS 2024.11.02

EC2 예제 실습

1. SSH 접속 툴 설치본 글의 저자는 MobaXterm을 사용하고 있고, 사용하던 SSH 접속 툴을 사용하여 EC2 서버에 접속하면 됨.2. EC2 instance 생성3. SSH 연결인스턴스 시작 시 자동으로 다운된 pem 파일을 이용하여 MobaXterm을 통한 연결Remote host 입력에는 AWS EC2 상의 퍼블릭 IP를 입력Specify username 클릭 후 ec2-user 입력이후 Advanced SSH settings 클릭4. 인스턴스 접속 후 root 유저 세팅# superuser로 변경sudo su# 운영체제 업데이트 및 관련 패키지 설치yum update -y# 아파치 설치yum install httpd -y# 아파치 실행service httpd start# 인스턴스 재실행 ..

AWS/EC2 2024.11.02

ELB(Elastic Load Balancers)

1. ELB여러 서버의 흐름을 균형있게 배분하는 역할하나의 서버로 traffic이 몰리는 병목현상 방지traffic의 흐름을 배분하여 healthy instance로 만듦2. Application Load BalancerOSI Layer7에서 작동HTTP, HTTPS와 같은 traffic의 load balancing에 가장 적합고급 request 라우팅 설정을 통해 특정 서버로 request를 보낼 수 있음3. Netrwork Load BalancerOSI Layer4에서 작동매우 빠른 속도로 Production 환경에서 종종 사용극도의 performance가 요구되는 TCP traffic에 적합초당 수백만개의 request를 미세한 delay로 처리 가능4. Classic Load Balancer현재 ..

AWS/EC2 2024.10.29

EBS(Elastic Block Storage)

1. EBS저장 공간이 생성되며 EC2 인스턴스에 부착디스크 볼륨 위에 File System이 생성됨특정 Availability Zone을 설정하여 대상 Zone에 생성됨Availability Zone(AZ)2. EBS 볼륨 타입2.1 SSD군General Purpose SSD(GP2): 최대 10K IOPS 지원, 1GB당 3 IOPS 속도가 나옴Provisioned IOPS SSD(IO1): 극도의 I/O를 요구하는(ex) 매우 큰 DB 관리) 환경에서 주로 사용. 10K 이상의 IOPS 지원2.2 Magnetic/HDD군Throughput Optimized HDD(ST1): 빅데이터 Datawarehouse, Log 프로세싱시 주로 사용(boot volume으로 사용 불가능)CDD HDD(SC1):..

AWS/EC2 2024.10.29

객체지향 5원칙 - SOLID

1. 객체지향 5원칙 소개 객체 지향 5원칙은 유연하고 확장 가능한 소프트웨어를 설계하기 위한 원칙으로 단일 책임 원칙(SRP), 개방-폐쇄 원칙(OCP), 리스코프 치환 원칙(LSP), 인터페이스 분리 원칙(ISP), 의존 관계 역전 원칙(DIP)이 있습니다. 즉 객체지향 프로그래밍을 위한 5가지 원칙입니다.각 원칙 약자의 앞글자를 따서 SOLID 원칙이라고 부른다.2. 단일 책임 원칙(SRP - Single Responsibility Principle)하나의 객체에는 하나의 책임만을 가진다는 원칙 -> 하나의 객체에 하나의 책임이 완전히 캡슐화되어야 함을 의미더 쉽게 이해하려면 하나의 객체인 클래스를 수정하는 목적, 이유가 한 가지여야 함을 의미한다고 생각하면 된다. 아래와 같이 더하기와 곱하기의 두..

CS 2024.05.06

(Python)백준 코딩테스트 연습 - ABCDE(13023)

1. 문제 https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 2. 풀이 import sys input = sys.stdin.readline # n : 사람 수, m : 관계 수 n, m = map(int, input().split()) relationList = [[] for i in range(n)] for i in range(m): a, b = map(int, input().split()) relationList[a].append(b) relationList[b].append(a) # print(relationList) isFriend = Fals..

(Python)백준 코딩테스트 연습 - 럭키 세븐(28706)

1. 문제 https://www.acmicpc.net/problem/28706 28706번: 럭키 세븐 각 테스트케이스마다 한 줄에 하나씩, $K$를 $7$의 배수로 만들 수 있다면 “LUCKY”, 불가능하다면 “UNLUCKY”를 출력하세요. www.acmicpc.net 2. 풀이 # 백준 28706번 : 럭키 세븐 import sys input = sys.stdin.readline # t : 테스트 케이스 수 t = int(input()) testCase = [] for i in range(t): # n : 각 케이스의 턴 수 n = int(input()) dpSet = set([1]) for j in range(n): op1, v1, op2, v2 = map(str, input().split()) t..