[CI/CD] 가비아 도메인 구매 및 EC2 연결하기

김진회·2023년 1월 6일
0

CI/CD

목록 보기
5/7

0. 사전 세팅

AWS EC2로 서버를 생성하고 탄력 ip를 할당받았다.
또한, EC2 서버에 nginx 배포 설정을 전부 다 한 상태이다.
다만 ip를 통한 배포 설정을 했고 아직 도메인은 구매하지 않은 상태이다.
이 포스팅은 위 상태에서 도메인을 구매/연결을 하고 https를 적용하는 포스팅이다.

전 과정을 알고 싶으면 아래 포스팅을 참고하자.
AWS EC2 https://velog.io/@kku64r/awsec2
도커 설치 https://velog.io/@kku64r/docker
젠킨스, Nginx, Certbot https://velog.io/@kku64r/jenkins
*에러 참고: EC2 프리티어 참고사항 https://velog.io/@kku64r/ec2freetier


1. 도메인 구매

도메인 구매는 가비아에서 진행했다.
다양한 종류의 도메인이 있었고 무슨 차이가 있는지 구글링으로 검색해봤지만 배포 사이트의 특색에 맞게 도메인을 고르는 것, .dev/.app/.page는 HTTP를 지원하지 않아 HTTPS를 필수적으로 사용해야 한다는 점밖에 찾지 못했다.

따라서 여러 도메인 중 1년에 500원으로 할인이 진행 중인 .shop을 이용했다. 구매 방법은 어렵지 않으니 설명은 생략하겠다.


2. Route 53

AWS EC2를 이용했고, 탄력IP를 설정해 고정 IP를 받았다는 가정하에 진행한다.
1) AWS Route 53으로 가서 호스팅 영역 클릭

2) 호스팅 영역 생성 클릭

3) 구매한/할 도메인 주소 입력 후, 호스팅 영역 생성 클릭
👉http나 www를 붙이지 않은 도메인만! ex) jinhoe.shop

4) 해당 4개의 주소 복사해놓기 (마지막의 .는 제외)


3. 도메인과 탄력IP 연결하기

1) 가비아 홈페이지 > 서비스 관리 > 구매한 도메인의 관리 클릭
2) 네임서버 설정 클릭 > 1~4차에 복사한 주소 붙여놓고 적용 클릭

3) 기다리면 DNS 서버에 등록되어 구매한 도메인을 통해 서버에 접속할 수 있다. 완료!!


4. certbot을 이용한 ssh발급/https 적용

1) 도메인 사용 전, ip주소를 이용한 배포/접속을 했다면 EC2 서버에 생성해 놓은 nginx 관련 파일이 있을 것이다. 해당 파일 중 Dockerfile의 servername이 ip주소로 되어 있을 것이고 해당 주소를 도메인 주소로 바꾸자

2) EC2에 makeCertbot(임의명) 폴더를 생성하고, docker-compose.yml 파일 작성

version: "3.3"
services:
  nginx:
    image: nginx:latest
    volumes:
        - ./nginx/conf.d:/etc/nginx/conf.d
        - ./nginx/log:/var/log/nginx
        - ./www:/var/www/html
    ports:
        - 80:80
  certbot:
    restart: "no"
    depends_on:
      - nginx
    image: certbot/certbot
    container_name: certbot
    volumes:
      - ./certbot/etc:/etc/letsencrypt
      - ./certbot/var:/var/lib/letsencrypt
      - ./www:/var/www/html
    command: certonly --webroot --webroot-path=/var/www/html --email 이메일주소 --agree-tos --no-eff-email --force-renewal -d 도메인 주소

3) 도커 컴포즈 업

docker-compose up
  • Successfully received certificate가 나오면 정상적으로 설치가 된 것
  • 실패하면 1시간 후 혹은 1주일 후에 생성할 수 있음 (동일 주소 요청으로 주 50회 제한. 본 프로젝트에서는 첫 시도부터 안돼서 1주일 후에 발급받음. 기다릴 시간이 없으면 다른 발급 기관에서 발급받기를 추천)

4) docker-compose-back.yml 파일의 내용에 맞춰 생성된 certbot 폴더를 옮겨주기 (본인은 certbot폴더를 deploy폴더에 복사해놓음)

5) 주소창에 https를 붙여 검색하고 정상적으로 작동하는지 확인! 완료!


4. 그 외 사항

  • www를 사용하고 싶으면 따로 설정을 해야하고 어렵지 않으니 구글링해서 해보도록 하자
profile
SSAFY 7기. HMG. 협업, 소통, 사용자중심

0개의 댓글