반응형 분류 전체보기344 CloudFront & Global Accelerator CloudFront CloudFront란 CDN, 컨텐츠 전송 네트워크를 의미한다. CDN은 웹사이트의 컨텐츠를 서로 다른 엣지 로케이션에 미리 캐싱하여 읽기 성능을 높인다. 네트워크 전체에 캐싱되므로 전세계 사용자들이 낮은 레이턴시로 접근할 수 있어서 사용자 경험을 증대시킬 수 있다. 컨텐츠가 전체적으로 분산되어 있으므로 DDoS 공격에서 보호를 받을 수 있다. 호주에 위치한 S3 버킷에 웹사이트를 만들었다 하더라도 미국에 있는 사용자는 CloudFront를 이용해 미국에 있는 엣지에 컨텐츠를 요청하게 된다. 그럼 CloudFront가 호주에서 이 컨텐츠를 페치해서 가져온다. 그리고 미국의 다른 사용자가 똑같은 컨텐츠를 요청한다면, 이 컨텐츠는 호주에서 출발하지 않고 엣지에서 직접 컨텐츠를 제공받는다... Cloud/AWS 2023. 7. 7. S3 고급 기능 및 보안 S3 수명 주기 규칙 S3 버킷 내부의 객체는 수명 주기 규칙을 이용해서 객체의 이동을 자동화할 수 있다. 수명 주기 규칙은 여러 가지로 구성된다. 전환 작업 다른 스토리지 클래스로 객체를 전환하도록 구성한다. 생성 60일 후에 Standard IA로 이동하도록 설정하거나 6개월 후에 Glacier에 아카이빙 되도록 설정할 수 있다. 만료 작업 설정 만료 작업을 설정할 수 있어 일정 시간이 지나면 객체가 삭제 또는 만료되게 할 수 있다. 365일 후에 액세스 로그 파일을 삭제하도록 하거나 버저닝을 활성화한 경우 이전 버전의 파일을 삭제하도록 설정할 수 있다. 규칙에는 특정 접두사를 사용하여 전체 버킷이나 버킷의 일부 경로에만 적용할 수 있고 특정 객체 태그에만 지정할 수도 있습니다 한 클래스에서 다른 클.. Cloud/AWS 2023. 7. 6. S3 기초 S3 S3는 파일을 버킷에 저장한다. 버킷은 상위 레벨 디렉토리로 표시된다. 사실 S3 그 자체는 디렉토리의 개념은 없다 S3 버킷의 파일은 객체라고 하며, 이 버킷은 계정 안에 생성된다. 즉 객체란 S3 저장소에 저장되는 데이터를 의미한다. 버킷 이름은 계정에 있는 모든 리전과 AWS에 존재하는 모든 계정에서 유니크해야 한다. 버킷은 리전 수준에서 정의되므로, 반드시 특정 AWS 리전에서 정의되어야 한다. 객체나 파일에는 키가 있으며, 키는 Amazon S3 키는 파일의 전체 경로입니다. 키는 접두사와 객체 이름으로 구성되며, 키는 길이가 굉장히 긴 이름으로 슬래시를 포함하며, 키는 접두사와 객체 이름으로 만들어진다. 파일 등 원하는 것은 뭐든지 업로드 가능하며, 최대 객체 크기는 5TB이다. 업로드하.. Cloud/AWS 2023. 7. 5. Route 53 Route 53 고가용성, 확장성을 갖춘, 완전히 관리되며 권한있는 DNS다. 권한이 있다라는 뜻은 우리가 DNS 레코드를 업데이트 할 수 있다는 의미다. 도메인 레지스트리로 도메인 이름을 등록한다. Route 53의 리소스 관련 상태 확인을 확인할 수 있다. 100% SLA 가용성을 제공하는 유일한 AWS 서비스입니다 Route 53에서 여러 DNS 레코드를 정의하고 레코드를 통해 특정 도메인으로 라우팅하는 방법을 정의한다. 레코드가 가지는 값 도메인/서브도메인 이름 레코드 타입 A: 호스트 이름과 IPv4 IP를 매핑 AAAA: 호스트 이름과 IPv6를 매핑 CNAME: 호스트 이름을 다른 호스트 이름과 매핑 대상 호스트 이름은 A나 AAAA 레코드가 될 수 있다. Route 53에서 DNS 이름 공.. Cloud/AWS 2023. 7. 4. 트랜잭션 수행 코드에 포함된 네트워크 통신 코드 분리하기 현재 프로젝트에서 관리자 권한을 가진 유저가 다수의 유저에게 초대 이메일을 보내는 비즈니스 로직이 존재합니다. 해당 로직을 수행하는 메서드에 트랜잭션이 걸리고, 메일 서버에 메일 전송 요청도 보내고 있습니다. 트랜잭션을 수행하는 중에 네트워크 통신을 진행하면 굉장히 안 좋다는 글을 본 적이 있습니다.(Real MySQL) 따라서 트랜잭션 수행 코드와 네트워크 통신 코드가 결합된 비즈니스 로직 코드를 개선한 과정을 포스팅으로 작성하려고 합니다. 시작하겠습니다. 비즈니스 로직 정리 멤버와 프로젝트 멤버 프로젝트는 M:N 관계이다. 비즈니스 로직을 수행하는 메서드의 로직은 다음과 같다. 로그인에서 사용하는 JWT 토큰에서 멤버 id를 얻는다. 트랜잭션 시작 멤버 id를 사용해 데이터베이스에서 멤버 엔티티를 조.. 프로젝트 2023. 7. 1. RDS, Aurora, ElasticCache RDS Relational Database Service, AWS가 제공하는 관리형 서비스다. (프로비저닝과 OS가 자동화) 다음과 같은 데이터베이스 엔진을 제공한다. Postgresql Mysql MariaDB Oracle Microsoft SQL Server Aurora 지속적으로 백업이 되므로, 특정 시점으로 복원이 가능하다. 데이터베이스의 성능을 대시 보드에서 모니터링 가능하다. 읽기 전용 복사본을 생성해 읽기 성능을 올릴 수도 있다. 재해 복구 목적으로 다중 AZ 설정 가능하다. 유지 관리 기간에 업그레이드도 가능하다. 수직 확장하거나 읽기 전용을 추가해 수평 확장도 가능하다. 파일 스토리지는 EBS에 구성된다. (gp2, io1) RDS 인스턴스는 ssh 액세스가 불가능하다. EC2 인스턴스에.. Cloud/AWS 2023. 6. 30. 고가용성 및 확장성 (ELB 및 ASG) 고가용성 및 확장성 고가용성 고가용성은 애플리케이션 또는 시스템을 적어도 둘 이상의 AZ나 데이터센터에서 가동 하는 것이다. 고가용성은 데이터 센터에서의 손실에서 살아남아야 한다. 즉, 가동중인 데이터센터에서 문제가 생겨도 다른 데이터 센터에서 돌아가야 한다. 동일한 애플리케이션의 동일한 인스턴스를 멀티 az에서 가동한다. 다중 az가 활성화된 자동 스케일러 그룹이나 로드 밸런서에서도 사용한다. 고가용성은 수동적일 수도 있다. (ex: RDS Multi AZ) 활성형도 존재한다. (수평 확장을 하는 경우) 확장성 수직 확장성 수직확장성은 인스턴스의 크기를 확장한다. 시스템의 스펙을 올려리는 것이다. 데이터베이스와 같이 분산되지 않은 시스템에서 주로 사용한다. 하드웨어 제한이 걸려있기 때문에 한계가 존재한.. Cloud/AWS 2023. 6. 28. EC2 Instance Storage EBS Volume EBS란 Elastic Block Store의 줄임말이다. EBS Volume는 인스턴스가 실행 중인 동안 연결 가능한 네트워크 드라이브다. EBS Volume를 사용하면 인스턴스가 종료된 후에도 데이터를 지속할 수 있다. 이것이 바로 ebs 볼륨을 쓰는 목적이다. EC2를 재생성해 EBS Volume을 마운트하면 기존의 EC2 데이터를 사용할 수 있다. CCP 레벨의 EBS Volume은 한번에 하나의 인스턴스에만 마운트할 수 있다. CCP 레벨은 하나의 EBS는 하나의 EBS에만 마운트 가능하고, Associate 레벨은 일부 EBS 다중 연결이 가능하다. 그러나 인스턴스 1개에 2개의 EBS 볼륨이 연결되는 건 문제가 없다. EBS Volume을 생성할 때는 특정 가용 영역에서만.. Cloud/AWS 2023. 6. 23. 동시성 문제 해결하기 현재 프로젝트의 재고 도메인 코드에 문제가 있다는 것을 알아차렸다. 문제는 여러 명의 사용자가 동시에 재고 감소 로직을 실행한다면 동시성 이슈가 발생하는 것이다. 마침 동시성 관련 강의를 인프런에서 발견했고 이를 적용해보았다. 프로젝트 테이블 이해 재고 모델과 옵션 모델은 N:M 관계이다. 따라서 중간 테이블이 존재한다. 중간 테이블의 옵션 id 외래키를 in 절로 사용해 재고 엔티티를 찾는다. 테스트할 데이터는 사전에 DB에 미리 넣어놓았다. (id가 9L인 재고 테이블 Row) 먼저 문제 상황을 테스트 코드로 작성해보았다. @Test void 재고_감소() throws InterruptedException { //given int threadCount = 100; ExecutorService exec.. 프로젝트 2023. 6. 22. 도메인과 테이블을 설계하고 개선하기 백엔드 파트는 혼자인 이커머스 개발 프로젝트를 진행하고 있습니다. 이번 포스팅에서는 도메인, 테이블을 설계하고 개선한 부분에 대한 글을 쓰겠습니다. 혼자 생각하고 여러 자료를 참고하며 진행했으므로 미흡한 부분이 있습니다. 도메인 설계 현재 요구사항에 따르면 도메인은 다음과 같다. 회원 도메인 상품 도메인 장바구니 도메인 주문 도메인 설계 과정을 살펴보고 상위 도메인에 포함된 하위 도메인도 살펴보겠다. 회원 도메인 회원 도메인은 회원과 이메일로 이루어진다. 회원은 일반 회원과 판매자 회원으로 구분된다. 테이블을 살펴보면 1:1 관계다. 상품 도메인 상품 도메인은 상점, 상품, 상품 옵션 그룹, 상품 옵션, 재고로 이루어진다. 상점은 상품과 1:N 관계다. 상품은 상품 옵션 그룹과 1:N 관계다. 예시를 들.. 프로젝트 2023. 6. 21. AWS EC2 - SAA LEVEL Public IP, Private IP, Elastic IP ip는 ipv4와 ipv6가 있다. ipv4를 주로 사용하지만 AWS는 ipv6도 지원한다. ipv6는 보통 사물 인터넷에서 많이 쓰인다. Public IP를 공용 ip라 부르고, Private IP는 사설 ip, Elastic IP는 탄력적 ip라고 부르겠다. 공용 ip가 있다면 인터넷 전역에서 액세스가 가능하다. 전체 웹에서 유니크하기 때문이다. 구글에 공용 ip를 검색하면 지리적 위치 또한 쉽게 찾을 수 있다. 사설 ip는 사설 내트워크 내에서만 접근이 가능하다. 전체 웹에서 유니크하지 않고, 사설 망에서만 유니크하면 된다. NAT 장치와 프록시 역할을 할 인터넷 게이트웨이를 통해 인터넷에 연결된다. 지정된 일정 ip 범위에서 사설 ip를.. Cloud/AWS 2023. 6. 20. AWS EC2 기초 EC2 EC2는 정말 인기 있는 AWS 서비스이며, Elastic Compute Cloud의 약어다. EC2는 하나의 서비스가 아닌 다음과 같은 많은 것을 포함하고 있다. 임대 가능한 VM 데이터를 가상 드라이브 EBS 볼륨에 저장 가능 Elastic Load Balancer(ELB)로 분산 가능 Auto Scaling Group를 사용해 서비스 확장 가능 EC2의 기초를 아는 것이 클라우드 동작 방식을 이해할 때 필수적이다. 클라우드는 언제든 컴퓨터를 대여할 수 있는데 대표적인 예시가 EC2이다. EC2 설정 옵션과 크기 EC2를 처음 생성할 때 다양한 설정 옵션(운영체제, RAM, storage, 방화벽 등)이 존재한다. EC2를 생성할 때 리눅스, 윈도우, 맥을 운영체제로 선택할 수 있다. 생성할 .. Cloud/AWS 2023. 6. 19. 이전 1 ··· 3 4 5 6 7 8 9 ··· 29 다음 반응형