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 ..
-
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로 리디렉션 ..
-
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 서비스를 검색해서 들어간 다음 시작하자 도메인 등록 버튼을 눌러서 ..
-
EC2 - 고정 IP 연결Infra/AWS 2024. 5. 7. 00:05
탄력적 IP란? EC2 인스턴스는 기본적으로 유동 IP로 설정된다. 인스턴스를 재부팅하면 IP주소가 바뀐다.이를 막기 위해 고정IP를 설정해줘야하는데, AWS에선 이를 탄력적 IP라고 부른다. 먼저 대쉬보드에 탄력적 IP로 들어간다. 들어가면, 탄력적 IP 주소 할당 버튼이 있다. 설정은 기본 값을 사용하여 IP주소를 하나 할당받아보자.생성된 탄력적IP주소를 선택하고 작업을 누르면, 탄력적 IP주소 연결이 있다. 해당 IP주소와 연결할 인스턴스만 선택해주면, 고정 IP 연결을 완료할 수 있다.
-
AWS - EC2 기본 설정Infra/AWS 2024. 5. 6. 23:58
EC2란Elastic Computer Cloud(EC2) : 컴퓨터들을 빌려서 원격으로 접속해 사용하는 서비스 -> 가상화된 인프라 환경 IaaS EC2는 주로 백엔드 서버를 배포할 때 많이 사용한다.프론트엔드 서버도 EC2를 활용하긴 하지만, 보통 S3를 사용해서 배포한다. EC2 설정하기1. Region 선택하기 Region 이란?인프라를 지리적으로 나누어 배포한 각각의 데이터 센터를 의미한다.AWS는 EC2를 통해 빌려 쓸 수 있는 컴퓨터(리소스)를 전 세계적으로 다양하게 분포시켜놨다.이런 컴퓨터가 위치한 위치를 AWS에서는 Region이라 부른다.각 Region마다 EC2가 따로 따로 관리 되기 때문에 설정을 바꾸면, 갑자기 만들어 뒀던 인스턴스가 안보이기도 함! 또한, 애플리케이션을 사용할 ..