라이징캠프 (2주차)-3

Do_Doolly·2022년 2월 16일
0

라이징캠프

목록 보기
5/14
post-thumbnail
  • 부트캠프 상세내용은 아래 링크[1] 참고.

이번에는 AWS의 인스턴스를 DNS로 연결할 것이다. 그리고 HTTPS도 적용해서 보안을 강화해보겠다.


📖 강의 주제

- Server & Client

Protocol, IP, Port Forwarding, Domain 등의 전반적인 네트워크 인프라 개념 구축


📝 목표

- 로컬 서버 운영

  • Bitnami 설치 (MAMP)
  • 포트 포워딩

- AWS 서버 운영

  • AWS 인스턴스 생성
  • 인스턴스 및 OS (Ubuntu) 설정
  • LEMP 설치
  • MySQL 외부 접속
  • Domain 적용
  • HTTPS 적용

▶️ 개발 일지

6. Domain 적용

1) Domain 구입

  • 도메인(Domain)은 쉽게 말하면 외우거나 식별하기 어려운 IP 주소를 example.com처럼 기억하기 쉽게 만들어주는 네트워크 호스트 이름이다. 최상위 영역의 도메인(com, org, edu, kr 등)외에 2차, 3차 도메인이 있으며, 인증된 기관에서 관리한다.
  • 가비아(Gabia)라는 국내 업체를 통해 도메인을 구입할 수 있다. 2022년 2월 기준으로 .shop 도메인에 대해 할인 이벤트 중이다. 가비아 홈페이지를 방문해보자
  • 오늘의 도메인에 들어가면 아래 행사중인 도메인이 나와있다. .shop이기 때문에 쇼핑용으로 주로 쓰이는 것 같지만 테스트용으로 구매하는 거니까 그냥 사자
  • 내가 원하는 서버 이름을 적고 검색한다.
  • 중복되지 않는다면 오른쪽에 선택을 누르고 신청하기를 클릭한다. 구매를 위해서는 회원가입을 해야한다.
  • 신청 기간을 1년으로 선택한다. 2년 이상으로 하면 할인이 적용되지 않는다. 필요한 정보를 적고 결제를 완료하면 이 도메인은 내 것이다!😙

2) Domain 연결

  • 결제 후 바로 내가 신청한 서비스에 나타나지 않는다. 5분정도 있으면 도메인 신청이 완료됐다고 알림이 오고, 서비스 관리 탭에서 도메인 관리에 들어간다.
  • DNS 설정으로 들어가면 DNS 정보가 나온다. 오른쪽에 설정을 클릭한다.
  • 여기에 내가 만든 AWS 인스턴스 IP 주소를 입력해야, 주소창에 도메인만 입력해도 내 서버로 접속할 수 있다. 먼저 왼쪽 하단에 있는 레코드를 추가하고 타입은 A, 호스트는 www, 값/위치에 IP 주소를 적는다. (추가) 레코드를 하나 더 추가해서 타입은 A, 호스트는 @으로 적는다. @는 www를 적지 않아도 DNS로 접속할 수 있게 한다.
    TTL은 Time To Live의 약자로 연결시간이 일정시간 지나면 자동으로 끊기게 하는 것이다. 3600으로 설정한 뒤 확인을 누르고 저장하자.
  • 주소창에 내가 신청한 도메인만 입력해도 아래와 같이 서버로 잘 접속함을 볼 수 있다.

7. HTTPS 적용

1) HTTP와 HTTPS

  • HTTPS는 HTTP에 SSL(Secure Socket Layer)라는 보안 프로토콜을 추가한 것이다. 요즘은 HTTP는 보안이 취약하여 대부분 사이트가 HTTPS를 사용하며, 서버에 접속하는 클라이언트 또한 HTTP에 접속하면 알람을 띄운다.
  • 서버와 클라이언트가 인증서를 갖고 있어야 하며, 인증서를 발급하는 서비스 기관을 CA(Certificate Authority)라고 한다.

2) Certbot 설치

  • CA중 일반인에게 무료로 발급해주는 곳이 있는데 Let's Encrypt라는 곳이다. 여러 미들웨어를 통해 발급받을 수 있는데 나는 Certbot을 이용해서 설치했다.
  • Certbot 공식 홈페이지에 들어가보면 설치 매뉴얼이 자세하게 나와있다. 우분투 패키저 매니저인 apt 대신에 snap을 사용해서 설치를 진행한다. 혹시 apt나 yum으로 certbot 패키지를 설치한게 있다면 모두 지워야한다.
# snap이 최신 버전인지 확인하고 아니면 업데이트
$ sudo snap install core;
$ sudo snap refresh core;
# certbot 패키지 설치
$ sudo snap install --classic certbot
  • 심볼릭 링크를 이용해 certbot 명령어를 사용할 수 있게 만든다.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
  • certbot을 통해 인증서를 발급받는다. 성공적으로 발급 완료가 나와야 한다.
$ sudo certbot certonly --nginx
  • 인증서 발급이 끝났다고 주소창에 https: //domain을 입력해도 접속이 안 된다. Nginx 세팅이 전부 안 됐기 때문에 config파일에서 server_name을 설정해줘야 한다. 443 포트 listen을 명시하고, server_name을 적는다. (추가) ssl_certificate 인증서 위치도 추가한다.
# default가 아니라도 사용중인 config 파일로 편집
$ sudo vim /etc/nginx/sites-available/default
# 작성 후 nginx 재시작
$ sudo service nginx restart

  • 주소창에 https: //domain으로 접속하면 아래와 같이 도메인 옆에 보안이 적용된 것을 확인할 수 있다.

다음은 Sub Domain과 Redirect를 만들어볼 예정이다.


& 링크모음

[1] : 라이징캠프

profile
생각하면 복잡하니까 일단 해보자

0개의 댓글