Deployment 14

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

개요 Cloudflare를 사용하여 EC2 웹서버에 HTTPS 적용하기(2)1. 도메인 구매 가비아에서 테스트용으로 'woohyeon.store'를 구입했다. 2. Cloudflare에 도메인 등록 도메인을 등록하고, 도메인에 대한 DNS관리에서 DNS 레코드를 수정해줘야 한다. 도메인과 EC2 서버를developerwoohyeon.tistory.com 앞서 HTTPS를 적용할때는 '가변'(Flexible)' 모드를 사용했기 때문에 클라이언트 -> Cloudflare 구간은 암호화가 되었지만,Cloudflare -> 원본 서버 로 요청은 암호화가 되지 않아 보안상 안전하지 않았다.이번에는 암호화 모드를 '전체'(Full)'로 변경하여 Cloudflre -> 원본 서버 구간까지 암호화를 적용해보고자 한다...

Dockerfile이란?

Dockerfile Dockerfile은 Docker 이미지를 만들때 사용된다. DockerHub에는 mysql, nginx, node, openjdk등 다양한 사람들이 만들어 놓은 Docker 이미지가 존재한다. 하지만 내가 만든 프로젝트를 Docker를 이용해서 배포해야하는 경우 내 프로젝트를 Docker 이미지로 만들어야 한다.이럴때 Dockerfile을 사용하면 나만의 Docker이미지를 만들 수 있게 된다. Dockerfile의 구성 FROM만약 Spring Boot 애플리케이션을 Docker image로 생성할때를 예로 들어보자. 이 애플리케이션을 실행시키기 위해서는 다음과 같은 것들이 기본적으로 세팅되어 있어야 한다.운영체제JDK빌드툴(Gradle,Maven..)이러한 환경을 매번 직접 세팅..

Deployment/Docker 2025.08.28

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

1. 도메인 구매 가비아에서 테스트용으로 'woohyeon.store'를 구입했다. 2. Cloudflare에 도메인 등록 도메인을 등록하고, 도메인에 대한 DNS관리에서 DNS 레코드를 수정해줘야 한다. 도메인과 EC2 서버를 연결하기 위해서 A레코드에 EC2의 Public IP 주소를 등록해준다.또한 'www.woohyeon.store'로 접속해도 'woohyeon.store'로 맵핑되도록 해주기 위해 CNAME 레코드에 이름을 www로 등록해준다.형식 : A, 이름 : 도메인, IPv4 주소 : EC2 인스턴스의 public IP주소형식 : CNAME 이름 : www 대상 : 도메인 3. SSL/TLS 등록SSL/TLS란 브라우저와 서버 간 통신을 암호화해주는 프로토콜이고, HTTPS로 접속할때 S..

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에 리포지토리 생성 리포지토리 ..

Docker Volume(도커 볼륨)

Docker Volume이란 무엇일까? 컨테이너는 기본적으로 임시적인 환경이라서 컨테이너가 종료되거나 삭제되면 그 안의 데이터도 함께 사라진다.도커 볼륨은 이러한 문제를 해결해주는 영구적인 데이터 저장 공간을 말한다. 볼륨(Volume)은 컨테이너 자체의 저장 공간을 사용하지 않고, 호스트 자체의 저장 공간을 공유해서 사용하는 형태이다. 도커 볼륨 사용 명령어docker run -v [호스트의 디렉토리 절대경로]:[컨테이너의 디렉토리 절대경로] [이미지명]:[태그명] 그럼 이제 도커 볼륨을 통해 MySQL을 사용해보자.  1. MySQL 컨테이너 띄우기 $ cd /Users/jaeseong/Documents/Develop$ mkdir docker-mysql # MySQL 데이터를 저장하고 싶은 폴더 만들..

Deployment/Docker 2025.03.23

Docker CLI

Docker를 사용하면서 많이 이용되는 CLI를 몇개 공부 했다. 도커 이미지 생성,삭제도커 컨테이너 생성,삭제로그 확인컨테이너 포트 연결 도커 이미지 다운로드# docker pull 이미지명$ docker pull nginx # docker pull nginx:latest와 동일하게 작동  특정 버전 도커 이미지 다운로드# docker pull 이미지명:태그명$ docker pull nginx:stable-perl 태그명은 도커허브에 들어가서 확인 가능하다. https://hub.docker.com/ Docker Hub Container Image Library | App ContainerizationIncrease your reach and adoption on Docker Hub With a Doc..

Deployment/Docker 2025.03.21

Docker를 활용하여 Nginx 설치 및 실행

1. Docker Hubd라은 이미지 저장소에서 nginx의 최신 이미지를 내 컴퓨터로 다운로드  2. 도커 이미지 목록을 확인하여 Nginx가 정삭적으로 다운로드 되었는지 확인 3. nginx 웹 서버를 실행하는 컨테이너를 webserver라는 이름으로 백그라운드에서 실행하고, 내 컴퓨터의 80포트와 연결  4. 현재 실행 중인 컨테이너 목록확인  크롬에서 잘 돌아가는 것을 확인할 수 있다.  5. 실행 중인 컨테이너를 멈추기

Deployment/Docker 2025.03.19