Infra/AWS
-
EC2로 Spring 레거시 배포하고 HTTPS 인증받기 (Nginx + Tomcat 연동 With Docker)Infra/AWS 2024. 8. 13. 15:48
1. 사전작업 - Nginx와 Tomcat을 띄울 인스턴스 2개 - WAS 배포 인스턴스에 Docker가 다운받아져야함 - Tomcat을 띄운 인스턴스는 깃허브 연동 (깃에서 pull 받아올 것) 2. 인스턴스2에 war 배포하기 2.1 배포를 위한 Dockerfile 작성 (프로젝트의 루트에 이를 작성해서 저장한다 파일 이름은 Dockerfile이다) Dockerfile의 내용은 다음과 같다.# 1. Maven 빌드 단계FROM maven:3.9.8-eclipse-temurin-11 AS build# 2. 프로젝트 소스 복사COPY . /app# 3. 작업 디렉토리 설정WORKDIR /app# 4. Maven을 사용하여 프로젝트 빌드 (테스트 생략)RUN mvn clean package ..
-
EC2에 Spring 레거시 배포하기Infra/AWS 2024. 8. 12. 16:43
1. EC2설정 EC2를 설정하고, 고정 IP를 받자 이를 하기 위한 방법은 다음 글에 자세히 설명해두었다.https://j-d-i.tistory.com/264 가상화된 인프라 환경 IaaS EC2는 주로 백엔드 서버를 배포할 때 많이 사용한다.프론트엔드 서버도 EC2를 활용" data-og-host="j-d-i.tistory.com" data-og-source-url="https://j-d-i.tistory.com/264" data-og-url="https://j-d-i.tistory.com/264" data-og-image="https://scrap.kakaocdn.net/dn/fR76q/hyWKy7vbpa/M61eZsC8kP4KVIPN9ohIDk/img.png?width=1060&height=11..
-
AWS - S3,Cloudfront를 활용한 웹 페이지 배포Infra/AWS 2024. 5. 9. 16:33
CloudFront컨텐츠(파일, 동영상)을 빠르게 전송해주는 서비스이다.컨텐츠가 S3에 저장되어 있을 때 S3저장소가 한국에 있다고 가정하자이때 한국인이 한국에 S3를 활용하는 게, 외국인이 한국의 S3를 사용하는 것 보다 빠를 것이다.이는 물리적 거리가 멀기 때문이다. 이를 해결하기 위해 전세계 곳곳에 컨텐츠의 복사본을 저장해 둘 수 있는 임시 저장소를 구축하고, 가까운 저장소에서 복사본을 꺼내서 빠르게 볼 수 있도록 하는데이를 CDN이라한다. (Content Delivery Network) CloudFront는 이런 CDN서비스의 일종이다.기본적으로 S3만 사용해도 웹페이지를 배포할 수 있지만, 성능향상 및 HTTPS 적용을 위해 S3를 활용한 웹 페이지 배포시 CloudFront는 필수이다. 웹 ..
-
AWS - S3를 활용한 파일 및 이미지 업로드Infra/AWS 2024. 5. 9. 15:55
s3란?파일 저장 서비스이다. 사진이나 동영상 같은 파일을 구글 드라이브나 icloud에 업로드 하는 것과 비슷하다 백엔드 서버를 구현하다보면, 이미지 업로드를 구현할 때가 많다. 이 이미지를 EC2 내부에 저장할 수도 있지만, EC2에 쌓이는 파일이 너무 많아질 우려가 있다.따라서 파잃은 S3서비스를 이용해서 따로 관리하는 것이다.현업에서도 파일 업로드 기능을 구현할 때면 대부분 S3를 활용한다고 한다.1. S3 버킷 생성하기버킷이란? S3 서비스 내에 여러 Repositroy를 의미한다. 객체란? S3에 업로그한 파일을 파일이라 부르지 않고 객체라고 부른다. 버킷에 이미지나 파일을 올리기 위해 모든 퍼블릭 액세스를 일단 허용해두자2. 버킷 정책 추가하기 정책이란 권한을 정의하는 JSON..
-
AWS - RDS 생성Infra/AWS 2024. 5. 9. 15:04
RDS란?MySQL,MariaDB등 여러 관계형 데이터 베이스 서비스를 AWS로부터 빌려서 사용하는 관계형 데이터베이스 서비스이다. 서비스를 배포할 때 DB도 같이 배포해줘야한다. 이때 RDB를 자주 사용하는데, 자동 백업, 모니터링, 다중 AZ등 다양한 부가 기능을 제공하기 때문이다.물론 EC2에 백엔드 서버와 MySQL을 같이 설치해서 사용하면, 비용 절감 등의 장점도 있다.하지만, 백엔드 서버의 장애로 서버가 다운되었을 때 DB도 같이 날아가는 불상사를 겪을 수 있다. 현업에서도 EC2와 RDS를 분리해서 인프라를 구성하는 경우가 대부분이라 한다.1. RDS 생성하기 먼저 RDS 서비스로 이동해서 Region을 선택하고, 데이터 베이스 생성을 누른다.다음으로 템플릿을 선택한다.학습용이므로, 프리티..
-
ELB를 활용하여 HTTPS 연결하기 (2) - ELB에 도메인 연결 HTTPS 적용Infra/AWS 2024. 5. 8. 16:55
1. Route 53으로 접속해서, 등록된 도메인에 대한 레코드를 생성한다.이때 별칭을 눌러 Application/Classic Load Balancer를 선택하고, 만들어둔 ELB를 등록한다. 2. HTTPS 적용을 위해 인증서 발급 받기 AWS Certificate Manager 서비스로 접속해서 인증서 요청을 누른다. 인증서 검증을 위해 위에 버튼을 누른다. 3-10분 정도 후 검증이 완료되면, HTTPS가 적용된 것이다.3. HTTPS에 대한 리스너 추가하기 로드 밸런서에 HTTPS 리스너가 없다면, 이를 추가해주지 - HTTPS를 적용하기 위해, Route 53 에서 발급받은 인증서를 집어 넣는다.4. HTTP 요청 막기 HTTP 리스너를 삭제하거나, HTTP 리스너를 HTTPS로 리디렉션 ..
-
ELB를 활용하여 HTTPS 연결하기 (1)Infra/AWS 2024. 5. 8. 16:29
1. ELB란? 트래픽(부하)를 적절하게 분배해주는 장치이다. 트래픽을 적절하게 분배해주는 장치 로드밸런서이다. 서버를 2대 이상 가용할 때 ELB는 필수적으로 도입하게 된다.AWS의 ELB는 부가기능으로 SSL/TSL을 간편하게 적용시킬 수 있도록 지원한다보안적인 이유, 사용자 이탈 방지 이유 등등 HTTPS를 적용해야하는 이유는 많다! .HTTPS 인증 받은 웹 사이트가 백엔드 서버와 통신하려면, 백엔드 서버의 주소고 HTTPS 인증을 받아야한다.따라서 백엔드 서버와 통신할 때도 IP주소가 아닌, HTTPS 인증을 받은 도메인 주소로 통신해야한다.웹사이트 주소: https://abc.co.kr백엔드 API 주소: https://api.abc.co.kr (서브 도메인) 2. ELB를 활용한 아키텍처 구..
-
Route53 - 도메인 등록Infra/AWS 2024. 5. 8. 15:04
Route 53도메인을 발급하고 관리해주는 서비스 , DNS 서비스이다. HTTPS 적용을 위해 도메인 등록은 필수이다.DNS의 역할을 하는 서비스는 Route 53 뿐 아니라, 가비아,후이즈 등에서도 구매할 수 있다.따라서, 꼭 Route 53을 이용해서 도메인을 구매해야하는 것은 아니다.Route 53을 이용한 도메인 등록 절차는 다음과 같다. (호스팅 영역, 레코드 등록 알아두자)도메인 구매 (어느 사이트든 상관없다) -> Route 53 호스팅 영역에 도메인 등록 -> 다른 DNS 서비스를 이용했다면, NS 등록 -> 도메인한 도메인과 서비스 연결 (EC2,로드벨런서 등)1. Route 53 도메인 구입 등록하기 Route 53 서비스를 검색해서 들어간 다음 시작하자 도메인 등록 버튼을 눌러서 ..