Deployment 7

EC2 인스턴스 스왑 메모리 설정으로 메모리 부족 문제 해결

프리티어에서 jenkins와 같은 무거운 프로그램을 돌릴때는 메모리 부족으로 인스턴스가 죽어버리는 현상이 발생하게 된다. 이러한 상황에서 디스크 용량을 이용해서 부족한 메모리를 대체할 수 있다. 1. 스왑 파일 생성 (2GB)sudo fallocate -l 2G /swapfile 2. 스왑 파일 권한 설정sudo chmod 600 /swapfile 3. 스왑 영역으로 포맷sudo mkswap /swapfile 4. 스왑 활성화sudo swapon /swapfile 5. 스왑 활성 상태 확인sudo swapon --showfree -h 스왑 메모리 2GB가 추가로 생성된 것을 확인할 수 있다.

Deployment/AWS 2025.08.07

Cloudflare를 사용하여 EC2 웹서버에 HTTPS 적용하기

Cloudflare를 사용하여 EC2 웹서버에 HTTPS를 적용시켜봤다. 이전 실습에서는 AWS의 ELB(Elastic Load Balancer)로 HTTPS 설정을 해줬다. 이 방법은 AWS의 여러 서비스와의 연동에서 강점을 보이지만, ELB셋팅 과정과 인증서 발급과정이 복잡하여 시간이 매우 오래 걸렸다. 하지만, Cloudflare를 사용하여 HTTPS 적용을 하면 비교적 저렴한 비용과, 간단한 설정들을 통해 쉽고 간편하게 구현 가능하다. 적용 과정 우선 cloudflare에 내 도메인을 등록 해줘야 한다.Cloudflare에 내 도메인을 등록하게 되면 Cloudflare 네임서버 값을 제공해주는데 이 값을 도메인을 구매한 곳에 등록을 해줘야 한다. 필자는 가비아에서 도메인을 구매해서 가비아에 Cl..

가비아 도메인 설정 EC2에 적용, Nginx Reverse Proxy 적용

가비아에서 도메인을 구입하여 EC2에 적용을 해봤다. 기존에는 Route53에서 도메인을 구입하였지만 가비아에서 더 저렴한 가격으로 구입할 수 있다고 해서 해봤다. 도메인 적용 1. 도메인 구입 나는 yangwoohyeon.shop을 500원에 구입했다. 2. AWS Route53에서 DNS 관리 접속, 호스팅 영역 생성 3.가비아에서 구입한 도메인 이름 등록호스팅 영역을 생성해주면 아래 사진과 같은 화면이 보인다. 여기서 NS 유형의 "값/트래픽 라우팅 대상"은 가비아에 나중에 등록해줘야 한다. 4.레코드 생성 값에는 EC2 인스턴스의 퍼블릭 IP 주소를 넣어준다. 5. 가비아에서 도메인 관리 페이지로 이동방금 전 레코드에서 확인했던 NS 유형의 "값/트래픽 라우팅 대상"을 모두 등록해준다.(..

Deployment/AWS 2025.05.31

GitHub Actions + Docker로 CI/CD 구축

GitHub Actions + Docker를 이용해 CI/CD 구축을 해봤다. GitHub Actions는 다음과 같은 장점을 가진다. 다른 CI/CD툴에 비해 사용하기 쉽다.YAML 파일을 통해 원하는 워크플로우를 손쉽게 정의하고 커스터마이징 가능공개 리포지토리의 경우 무료로 이용, 제한된 범위 내에서 사설 리포지토리도 무료로 사용 가능CI/CD를 위한 별도의 서버가 필요 없다. 구현 목표1. deploy.yml를 통해 GitHub Actions가 워크플로우 수행 2. Dockerfile을 이용해서 Docker Image 빌드3. DockerHub에 이미지를 업로드4. EC2에서 최신 이미지를 pull 받아서 실행 개발 과정은 다음과 같다. 1. DockerHub에 리포지토리 생성 리포지토리 ..

AWS S3 활용한 파일 및 이미지 업로드

S3란 무엇인가?S3는 AWS에서 제공하는 '클라우드 스토리지 서비스'이다. 쉽게 말하면 AWS에서 제공하는 파일 저장 서비스이다. S3의 사용 용도이미지나 동영상 저장 및 제공정적 웹사이트 호스팅CDN(CloudFront)과 연계해 빠른 콘텐츠 제공백업 및 복원용 스토리지백엔드 서버를 개발하다 보면 이미지나 동영상 업로드 기능을 구현해야 할때가 있다. 이때 사용자가 업로드 한 이미지를 S3에 저장하여 편리하게 사용 가능하다. 현업에서도 파일 업로드 기능을 구현할때 AWS S3를 많이 활용한다고 해서 공부하게 되었다.  그렇다면 어떠한 과정을 통해 S3를 활용할 수 있을까?  사용자가 API를 통해 이미지나 동영상 업로드 요청S3에 파일이 업로드S3에서 파일이 저장된 URL을 리턴DB에 파일 URL을 저..

Deployment/AWS 2025.03.18

EC2를 활용한 SpringBoot 프로젝트 배포[2]

https://developerwoohyeon.tistory.com/218 EC2를 활용한 SpringBoot 프로젝트 배포[1]프로젝트를 배포할때 흔히 사용하는게 바로 AWS의 EC2이다. 그렇다면 EC2는 무엇일까? 만약 내 컴퓨터로 서버를 배포하여 모든 사람들이 사용할 수 있도록 하려면 내 컴퓨터를 24시간 동안 켜놔야developerwoohyeon.tistory.com     이제 EC2 인스턴스와 연결하여 SpringBoot 프로젝트를 배포해보자.    우측 상단의 연결 버튼을 누르면 Ubuntu 환경의 터미널이 화면에 나온다.  Ubuntu 환경에서 JDK 설치 $ sudo apt update && /sudo apt install openjdk-17-jdk -y JDK를 설치할때 꼭 자신의 깃..

Deployment/AWS 2025.03.05

EC2를 활용한 SpringBoot 프로젝트 배포[1]

프로젝트를 배포할때 흔히 사용하는게 바로 AWS의 EC2이다. 그렇다면 EC2는 무엇일까? 만약 내 컴퓨터로 서버를 배포하여 모든 사람들이 사용할 수 있도록 하려면 내 컴퓨터를 24시간 동안 켜놔야 할것이다.또한 인터넷을 통해 내 컴퓨터에 접근할 수 있게 해야하므로 보안적으로도 문제가 될수있다. 하지만 이러한 단점을 AWS EC2를 이용하여 극복할 수 있다.  🎯 EC2는 컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스이다. 즉 EC2를 사용한다는 것은 하나의 컴퓨터를 빌려 사용한다는 것과 같고, EC2를 이용해 배포를 한다는 것은 빌린 컴퓨터를 이용해 서버를 배포한다는 것과 같다! 이렇게 되면 내 컴퓨터를 24시간 켜놔야 할일도 없고,  AWS  EC2에서 제공하는 여러 부가기능(로깅,오토케일링,로드..

Deployment/AWS 2025.03.05