AWS 7

[Redis] AWS ElastiCache for Redis를 활용한 데이터 캐싱 설정

현재 다니는 회사에서 프로젝트 요구에 따라 Redis와 같은 인메모리 DB를 도입할 필요성을 느꼈습니다. 과거 Redis를 EC2에 설치해서 사용한 경험을 통해, 이번에도 Redis를 사용하기로 결정했고 관련 정보를 찾던 도중 AWS에서 2023년 12월에 ElastiCache for Redis Serverless를 출시했다는 따끈따끈한 소식을 접하게 되었습니다. 서버리스의 장점은 개발자가 인프라 관리에 들이는 노력을 대폭 줄일 수 있다는 것입니다. 하지만, 종종 성능 대비 높은 가격과 낮은 설정 자유도가 단점으로 작용합니다. 예시로 AWS Aurora MySQL Serverless v2는 기존 RDS MySQL보다 거의 두배 가까운 비용이 듭니다. 이에 Redis의 서버리스 버전도 비슷한 비용 문제가 ..

Infra & AWS 2024.04.13

AWS NAT Gateway를 통한 Private EC2 인스턴스의 외부 통신 구성

1. VPC 메뉴 접속 2. NAT Gateway 탭 클릭 3. Name 입력 4. Subnet 위치 선택 5. Connectivity type에서 Public 선택 6. Elastic IP allocation ID - NAT Gateway도 IP를 기반으로 통신함 - Allocate Elastic IP 버튼을 눌러 NAT Gateway에 IP를 할당해줌 - NAT Gateway에 할당되는 IP는 Elastic IP이며, 기본 5개까지 제공이되므로 주의 필요 7. NAT Gateway 생성 클릭(생성까지 3-5분 소요) 8. Private Subnet의 Route Table -> Routes에 7에서 생성한 NAT Gateway를 타겟으로 설정 - Private Subnet에서 외부 통신이 필요한 경우 ..

Infra & AWS 2023.06.07

AWS NACL 특징 및 설정 방법

- EC2 Security Group과 같이 방화벽 설정이 가능함 - 서브넷 단위로 설정 가능하며, 인스턴스 단위로는 설정 불가능 - 다수의 서브넷에 동시 적용 가능 - 특정 Port 또는 특정 IP를 Deny 가능(EC2 Security Group은 불가능하지만 NACL은 가능함) - Stateless해서 Inbound, Outbound 관련 설정을 모두 신경써서해줘야함(EC2 Security Group은 Inbound만 설정하고 Outbound를 설정하지 않아도 응답을 반환할 수 있지만, NACL은 그렇지 않음)

Infra & AWS 2023.06.06

AWS Session Manager를 통해 Private Subnet에 위치한 EC2 접속하는 방법

Private Subnet에 위치한 EC2 인스턴스에 접근하기 위해선, Public Subnet에 위치한 EC2 인스턴스를 Bastion Host로 만드는 등의 번거로운 작업을 해왔다. 하지만 AWS Session Manager를 이용하면 Bastion Host 설정 같은 복잡한 작업 없이도 Private Subnet에 위치한 EC2에 손쉽게 접근이 가능하다. 참고로 PEM 파일과 같은 EC2 인스턴스의 키파일이 없어도 접속이 가능하다. 요구사항 * EC2 인스턴스에 SSM Agent가 설치되어 있을 것(Amazon Linux2는 기본 설치) * EC2 AmazonEC2RoleforSSM Managed Policy 포함된 Role 설정 필요 - IAM에서 해당 Role 추가 후 EC2 우클릭 -> IAM..

Infra & AWS 2023.06.06

AWS VPC/Subnet/Internet gateway/Route Table 설정을 통한 기본적인 Public&Private 인프라 구성 설정

AWS VPC 탭 접속 후 아래 순서대로 진행함 1. VPC 생성 * 대역 : 10.1.0.0/16 정도로 설정 -> 10.1까지는 고정 이후 255.255에 속하는 IP로 설정하겠다는 의미 2. 생성된 VPC 우클릭 -> Edit DNS hostnames 클릭 -> DNS hostnames 체크 후 저장 * VPC 내 인스턴스 등이 DNS를 생성할지말지를 정하는 설정으로 허용하고 진행 3. 서브넷 설정 * 서브넷 탭 클릭 * 서브넷 생성 클릭 * 이전에 생성한 VPC 선택 * 생성한 VPC의 CIDR 블록이 표시됨(서브넷은 VPC의 CIDR 블록을 나눠서 사용할 수 있도록하는 역할) * 각 서브넷을 영역별로 생성 * 서브넷명 * 가용영역 * 서브넷 CIDR 4. 외부 인터넷과 통신할 수 있는 인터넷 게..

Infra & AWS 2023.06.05

이커머스 플랫폼의 이미지 로드 속도 개선기 - AWS와 Nodejs Sharp 모듈을 활용한 개선 사례

서론 이커머스 어플리케이션에서 매끄러운 사용자 경험은 매출 증대와 직결됩니다. 특히 상품 이미지의 로드 속도는 사용자가 사이트에 머무르고 구매로 이어지게 하는 중요한 요소 중 하나입니다. 최근 제가 운영 중인 어플리케이션에서 상품 이미지 로드 시간이 2초를 넘어서는 문제를 발견했고, 이는 사용자 경험에 부정적인 영향을 미칠 수 있다는 우려로 이어졌습니다. 문제 인식 실제로 일부 이미지의 로드 시간이 2초를 넘는 경우가 있었습니다. 이는 사용자가 페이지를 이탈할 가능성을 높이고, 최종적으로는 판매 감소로 이어질 수 있는 심각한 문제였습니다. 해결 방안 이 문제를 해결하기 위해 기존에 사용하고 있던 AWS S3 설정을 개선해야할 필요가 있었습니다. 저는 S3 + CloudFront 설정에 Lambda@Edg..

성능 개선 2023.01.07