AWS 8

[테코톡] Spring Boot와 AWS를 이용한 이미지 업로드 최적화

출처: https://www.youtube.com/watch?v=r2arbkCTVUk&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=34   이미지를 어디에 올릴까?AWS S3Firebase Storage이미지 전용 서버Database 어떻게 이미지를 업로드할까?MultipartFile: Spring MVC에서 제공하는 인터페이스 활용Stream: 서버를 bypass하여 S3에 업로드Pre-Signed URL: 클라이언트가 S3에 직접 업로드MultipartFile클라이언트는 서버에 파일을 Stream 형태로 전송서버는 파일을 MultipartFile 객체로 임시 디스크에 저장 -> 업로드 완료 후 저장 됨S3에 Stream으로 업로드  서버 디스크 용량을 초과하는 경..

AWS 2025.04.01

NAT gateway 대신 NAT instance 사용하기

지난번 프라이빗 서브넷에 ECS 클러스터를 구성하였다.그런데 알고 보니 NAT gateway는 시간당 0.059$의 요금이 청구된다...하루 운영하니 거의 7~8 달러가 늘어나서 급히 NAT gateway를 삭제하였다. 찾아보니 NAT gateway 대신 NAT instance를 사용하는 방법이 있어 적용해보았다. 1. EC2 인스턴스 생성인스턴스를 생성할 때 AMI 선택 시 NAT를 검색해 이미지를 선택해준다. 2. 탄력적 IP 할당생성된 인스턴스에 탄력적 IP를 할당받아 연결해준다. 3. 프라이빗 서브넷 라우팅 테이블 생성이전과 같이 라우팅 테이블을 생성하여 프라이빗 서브넷으로 사용할 서브넷을 연결해준다.이때 전과 달리 0.0.0.0/0 에 nat-gateway가 아닌 생성한 인스턴스를 선택하여 라우..

AWS 2025.03.03

AWS 로드밸런서와 https

가비아에서 구매해둔 도메인이 있어서 해당 도메인을 가지고 진행한다. 1. 탄력적 IP 할당EC2 > 탄력적 IP에 들어가 탄력적 IP를 하나 할당받는다. 2. 호스팅 영역 생성Route 53에서 호스팅 영역을 생성한다.'레코드 생성'을 누른 후 값에 할당 받은 탄력적 IP를 입력한다. 3. 가비아 등록3-1. 네임서버 등록레코드에 있는 NS 유형의 값을 가비아 도메인의 1~4차 네임서버에 입력해준다.이때 아래 값에 있는 마지막 .을 제외하고 입력해야 한다. 3-2. 탄력적 IP 등록가비아의 도메인 연결 설정에 들어가 DNS 레코드를 탄력적 IP로 수정한다. 4. Certificate Manager 인증서도메인을 가지고 퍼블릭 인증서를 요청한다.인증서가 만들어지면 ID를 눌러 들어간 후 route 53 레..

AWS 2025.02.26

AWS ECS

ECS를 사용해 배포해보고자 한다.아래와 같은 상태에서 시작한다. 1. ECR 생성1-1. 리포지토리 생성1-2. 생성한 리포지토리 생성 후 '푸시 명령 보기' 선택1-3. 사용할 도커 이미지를 위한 도커 파일을 생성한 후 해당 파일이 있는 위치에서 푸시 명령어를 차례대로 입력 2. ECS 태스크 정의앞에서 빌드한 도커 이미지의 uri를 사용하여 태스크를 정의한다.나는 스프링 태스크와 redis 태스크를 생성하였다.ec2 인스턴스와 bridge 네트워크 모드를 선택하였고cpu와 메모리는 기본 설정보다 작은 값을 설정하였다. -> 서비스 생성 시 프로비저닝 상태가 계속돼서 CPU와 메모리 모두 0.8로 설정하였다. 스프링 태스크에는 스프링 컨테이너를, redis 태스크에는 redis 컨테이너에 대해 설정한..

AWS 2025.02.26

AWS 로드밸런서와 오토스케일링 그룹

앞에서 설정한 서브넷을 가지고 로드밸런서와 오토스케일링 그룹 실습을 해보고자 한다.프라이빗 서브넷 내에 오토스케일링 그룹을 통해 EC2를 생성하고 로드밸런서를 생성한 뒤 로드밸런서를 통해 EC2에 접근하고자 한다. 1. 로드밸런서 생성1-1. 대상 그룹 생성 - 사용하는 프로토콜, 포트, 상태 검사 경로를 입력 - 인스턴스 등록은 하지 않고 넘어갑니다.  1-2. 로드밸런서 생성 애플리케이션 로드밸런서, 인터넷 경계 선택가용 영역은 퍼블릭 서브넷, 연결할 ec2가 있는 서브넷 선택만들어 둔 대상 그룹 선택  2. EC2 생성ec2를 생성한 후 서비스에 맞게 여러 패키지들을 설치하는 등 준비를 한다. 3. AMI 생성위 ec2에 대한 이미지를 만든다. 4. 시작 템플릿 생성Auto scaling group..

AWS 2025.02.24

AWS VPC와 서브넷

AWS ECS로 서버를 운영하고자 하는 몇 번의 시도를 실패하고 차근차근 공부해야 할 필요성을 느꼈다.일단 VPC부터 공부해보고자 한다. VPN (Virtual Private Network)VPN: 가상사설망인터넷을 통해 디바이스 간에 사설 네트워크 연결을 생성공인 인터넷을 사이에 둔 사설망과 사설망이 사설 IP를 이용해 통신할 수 있도록 지원 VPC (Virtual Private Cloud)기업이 공유 퍼블릭 클라우드 인프라에 프라이빗 클라우드와 같은 자체 컴퓨팅 환경을 구축할 수 있도록 제공하는 서비스VPC 별로 네트워크를 구성할 수 있고 각각의 VPC는 완전히 독립된 네트워크처럼 작동 Amazon VPCVPC에는 리전의 각 가용성 영역에 하나의 서브넷이 있고, 각 서브넷에는 EC2 인스턴스가 있고 ..

AWS 2025.02.24

AWS IAM 계정으로 배포하기

학교 동아리(Devkor)로부터 AWS IAM 계정을 받았다.해당 계정을 통해 현재 이용 가능한 것은 EC2, RDS, S3이다.현재 내 계정으로 돌아가고 있는 EC2와 RDS를 옮기고 CI/CD를 구축하고자 한다. 1. 환경변수 수정일단 application.yml의 환경변수를 수정해준다. DB 정보 관련인텔리제이에 RDS의 정보를 입력하여 연결해준다. 할당 받은 RDS에 database가 없어서 만들어준다.연결한 RDS의 콘솔창을 연 후 다음과 같이 입력하여 실행한다.create database kodaero; 위 인텔리제이 창에 있는 URL에 /kodaero를 추가해서 application.yml의 DB_URL에 저장해준다.username과 password도 수정한다. 그 외 기존 나의 ec2 ip..

AWS 2024.06.27