본문 바로가기

728x90

DevOps/AWS

(8)
AWS CM과 로드 밸런스로 HTTPS로 변환하기 HTTPS를 변환하는 방법에는 크게 1) 웹서버를 사용하는 방식과 2) AWS를 사용하는 방법이 있다. 두 개의 공통점 모두 SSL/TLS 인증서가 필요하다. 이 포스팅에서는 AWS를 사용하여 HTTPS로 변환하는 방법을 소개하고자 한다. 참고로 웹서버(NGINX) HTTPS 변환은 Certbot으로 SSL 발급, Nginx로 HTTPS로 리다이렉트 nginx HTTP 로 들어오면 강제로 HTTPS 로 전환하도록 설정하기(force redirect to SSL) www.lesstif.com 위의 두 블로그 글을 참고하길 바란다. 1. 도메인 생성 SSL을 발급하려면 먼저 도메인을 생성해야 한다. 필자는 대표적인 도메인 사이트 가비아를 사용하였다. (꼭 가비아가 아니라 무료 도메인 사이트를 사용해도 상관이..
AWS 네트워킹의 등장과 다양한 기능들 (1/2) ※ 본 내용은 AWS Summit 2023 내용을 정리한 글입니다. 1. AWS 등장 배경 전통적인 데이터센터 네트워크는 아래와 같다. 데이터 센터 연결 라우터/방화벽으로 외부망 연결 전용선, VPN을 이용한 연결 네트워크 보안 방화벽, IP 기반 접근 통제(ACL) 웹방화벽, DDOS 방어 등 확장성/가용성 L4/L7 부하 분산(LB) 개별 장비 업그레이드 재해복구 센터(DR) 추가 연결 위의 인프라를 구축하기 위해서 네트워크 운영자는 고민이 많다. 1) 보안, 2) 클라우드 환경과의 연결성, 3) 새 네트워크 환경에서의 민첩성 이 많은 걸 고려하면서 처음부터 개발한다? 개발, 유지 보수 비용이 장난이 아닐 것이다. 2. VPC Amazon Virtual Private Cloud(Amazon VPC)는..
EC2로 24시간 서버 운영 - Nginx (3/3) 1. Nginx란? EC2 서버에서 빌드된 vue 파일들과 빌드된 jar 파일을 연동시켜야 합니다. 이를 위해 Nginx의 reverse proxy를 이용할 겁니다. Nginx는 웹서버로 HTTP 요청을 읽어서 응답을 해주는 프로그램입니다. 웹 서버뿐만 아니라 리버스 프록시, 캐싱, 로드 밸런싱, 미디어 스트리밍 등의 다양한 역할을 해주는 오픈소스 소프트웨어입니다. 고성능 웹서버이기 때문에 대부분 서비스들이 현재 Nginx를 사용하고 있습니다. proxy 서버는 클라이언트가 자신을 통해 네트워크 서비스에 접속하게 해줄 수 있는 서버를 뜻합니다. Reverse Proxy란 클라이언트가 Reverse Proxy에 요청하면 관련 요청에 따라 적절한 내부 서버에 접속. 결과를 받은 후 클라이언트에 전달해 줍니다..
EC2로 24시간 서버 운영 - RDS (2/3) 1. 데이터베이스 운용 EC2서버와 데이터베이스를 연동하는 데 크게 두 가지 방법이 있습니다. 1) 직접 DB 설치 EC2에서 직접 데이터베이스를 설치해 다루게 되면 모니터링, 백업 ,HA 구성 등을 모두 직접 해야 합니다. 처음 구축할 때 며칠이나 걸릴 수 있습니다. 2) RDS RDS는 AWS에서 지원하는 클라우드 기반 RDBMS입니다. 데이터베이스를 설치, 운영 및 확장할 수 있습니다. 모니터링, 백업 등의 운영 작업을 자동화하여 개발자는 개발에만 집중할 수 있습니다. MySQL, Auora 등 원하는 DB 엔진을 선택할 수 있고, Amazon RDS on AWS Outposts를 통해 온프레미스에 배포할 수 있습니다. RDS 가격은 라이센스 비용에 영향을 받습니다. MySQL, PostgresSQ..
EC2로 24시간 서버 운영 - Spring boot + vue.js (1/3) 1. 24시간 서버 운영 4가지 방법이 있습니다. 1) 개인 PC 접근성이 좋고 서버 구입 비용이 없으나, 자신의 컴퓨터에 24시간 구동을 해야 합니다. 이러면 소음 때문에 제대로 잘 수가 있을련지?... 2) 웹호스팅 주로 PHP에서 많이 사용합니다. 하나의 서버(OS)에 여러 서버가 입주합니다. 가격이 저렴하나 환경이 제한됐습니다. 이외에도 트래픽 제한, 느린 속도, 도메인 등록 제한 문제가 있습니다. 3) 서버 호스팅 & 코로케이션 호스팅 업체를 통해 서버를 대여합니다. 가성비가 있지만 서버 설정을 직접해야 합니다. 서버를 인수 후에는 위의 사진처럼 코로케이션 형태로 전환해야 합니다. 4) 클라우드 AWS, Azure가 여기에 속했습니다. 이용한 만큼 지불하는 형태로 설정과 관리가 비교적 쉽습니다...
AWS S3 + Vue.js + SpringBoot(3/3) - CDN, Lambda 적용하기 1. 이미지 로딩 속도 개선 원본 사이즈를 그대로 올리는 건 엄청 오래 걸립니다. 보통 하나의 이미지 사이즈가 5MB라고 가정했을 때, 100개의 사진 목록을 한꺼번에 불러오려면 무려 500MB를 로딩해야 합니다. 이러면 로딩이 늦을 수밖에 없겠죠? 그래서 빠른 이미지 로딩을 위해서는 이미지 사이즈를 줄이는 게 필수입니다. 이미지 사이즈를 줄이는 데 2가지 방법이 있습니다. 첫 번째는 서버에서 직접 이미지 크기를 조정하는 것입니다. 두 번째는 SERVERLESS 한 LAMBDA를 활용하는 것입니다. 서버에서 많은 이미지를 리사이징 하면, CPU 리소스가 상당히 되기에 서버에 상당한 부하를 줄 수 있습니다. 이 포스팅에서는 LAMBDA의 방법을 설명하겠습니다. 또한 CDN도 사용하면 이미지 로딩 속도가 빨..
AWS S3 + Vue.js + SpringBoot(2/3) - S3와 프론트, 서버 연동 ※ 참고로 이 포스팅은 기본적인 axios와 api 연동에 관한 설명을 다루지 않습니다. 일반 데이터와 이미지 파일들이 뭐가 다른지 중점적으로 설명합니다. 기본적인 Vue.js와 spring boot 연동에 관해서는 다른 글들을 참고하시길 바랍니다. 1. 전체적인 플로우 Vue.js에서 MultipartFile 형식의 이미지를 서버에 전송 서버는 이미지 파일 확장자 확인 파일 이름을 토대로 중복이 안 되게끔 UUID로 지정 S3 bucket에 파일 업로드 DB에 키 값 저장 그냥 설명만 하면 재미가 없기에 제가 만든 프로젝트를 이용해 설명하겠습니다. 강남병원의 섬네일과 전체적인 사진들을 올려보겠습니다. 등록된 사진이 아무것도 없습니다. 썸네일 이미지 파일을 받아오는 JSON 형태는 아래처럼 가정하겠습니다..
AWS S3 + Vue.js + SpringBoot(1/3) - S3 사용 이유와 버킷 생성 1. S3를 왜 사용할까? 나중에 서비스가 커질 때, 서버를 확장해야 할 때가 있습니다. 이럴 때는 아래의 방식처럼 서버를 확장해야 합니다. Load Balancer는 요청이 들어오면 서버의 부하가 없는 곳에 전해줍니다. 이럴 경우 아래의 사건들이 발생합니다. DB: 서버와 완전 무관합니다. 처리하고 호출만 해줘서, 중앙화된 서버가 있어서 똑같은 데이터를 바라보기에 상관이 없습니다. 이미지: 아미지 파일들이 흩어져서 저장됩니다. 즉, 서버들이 상태를 갖게 됩니다. Stateful 한 상태가 되면 아래의 세 가지 문제가 발생합니다. 이미지 관리: 예를 들어 img6이 loadBalancer를 통해 Server3에서 저장이 됐는데 Server1에서 삭제하려고 하면 삭제를 못 합니다. 서버 축소: 항상 서버가..

728x90