🎉 berenickt 블로그에 온 걸 환영합니다. 🎉
DevOps
프론트 단계별 AWS 배포

1. 정적 페이지 배포

  1. 1단계에서는 package에 “build:ssg”: “next build && next export”, 적고 out이라는 폴더가 생성됨

    1. 2단게 이후 부터는 next build 사용
  2. next.config.js에 trailingSlash 추가

  3. AWS에 Root User로 로그인

  4. S3에 create Bucket

    1. 버킷이름은 구매한 도메인 이름
    2. AWS Region은 Asia Pacific (Seoul)
    3. Object Ownership은 ACLs enabled 클릭
    4. 모든 접근 (Block all public access)를 체크표시 해제
    5. Turning off block all ~~ 체크
    6. create bucket 생성
  5. 만들어진 bucket에 들어가기

    1. out 안에 있는 폴더들을 드래그앤드롭으로 올리기
    2. 업로드 버튼 클릭
    3. 모든 파일을 체크한 뒤에 Action에서 make public using ACL 클릭
    4. make public 클릭
    5. 다시 S3 buckets으로 돌아와서 index.html에 들어가 해당 Object URL을 클릭하면 접속됨
  6. S3에 properties에 들어가기

    1. Static website hosting에 edit 버튼 클릭
    2. enable 클릭
    3. host a static website
    4. index document에 index.html 입력
    5. error document에 404.html 입력
    6. save change 등록
    7. 그리고 밖에 나가서 맨 아래쪽에 자동으로 주소가 입력됨

2. 도메인 연결

  1. AWS Route 53 들어가기

    1. DNS management에 Create Hosted Zone 클릭

    2. Domain name은 구입한 도메인 이름 입력 후 create hosted zone 클릭

    3. Records(레코드)에

      1. 첫 번쨰 타입 NS(name server)
      2. 두번쨰 SOA(start of Auth, 시작권한)
    4. create Record 클릭 (생략)

      1. 서브 도메인은 설정X, 빈 값으로 놔두기

      2. cf. Record Type은 A - default 레코드

        1. value에 ip4 주소 입력
        2. Type AAAA는 Ip6
        3. CNAME은 표준 이름 정하기
        4. MX - 메일 서버 만들면 사용
        5. TXT - 텍스트, 암호 걸고 싶을 떄
    5. DNS 설정

      1. 가비아에서 세팅을 지우고, AWS에서 설정하기

        1. NS 레코드의 값들을 복사해서 가비아에 가서 변경해주기
        2. 가비아 통합 관리툴에 가서 네임서버 1차, 2차, 3차, 4차 변경해주기 (순서 상관X, 마지막 .은 제외)
        3. 바꿔치기 해준 뒤에 소유자 인증 클릭
      2. 터미널에서 dig 해당사이트주소 NS 입력해서 등록된게 잘 나오는 지 확인

        1. ns-cloude-…으로 나옴 (시간 좀 걸림)
    6. create Record 해서 A 레코드 등록

      1. Alias 클릭

        1. Route traffic to
        2. Alias to S3 website endpoint
        3. asia Seoul 리전 선택
        4. 자동으로 선택해준 s3-aws.com~~ 뜨는거 클릭
      2. 레코드 생성

      3. NS 레코드가 변경되면 A레코드가 조회됨

    7. 주소로 접속

도메인 이름 = cumadi.site

섹션 56 - SSL과 HTTPS (2단계) 인증서 설치

  1. AWS - ACM - certificate manager에 들어가기 (인증서)

    1. 지역을 버지니아 북부로 변경 (매우 중요) US East (N.Virginia)
    2. Certificates에서 request 버튼 클릭
    3. Request a public certificate 확인하고 다음 클릭
    4. 도메인 주소를 입력
    5. 나머지는 default로 놔두고 request 버튼 클릭
    6. 새로고침 후 Pending Validation(실제 도메인 주소가 맞는지 확인하는 과정)
    7. 해당 Certificate에 들어가서 Domains에 CNAME name을 검증해야 함
    8. Create record IN Route 53 버튼 클릭
    9. Create Records 클릭
    10. Route 53에 가서 진짜 CNAME 레코드가 생성되었는지 확인
    11. 조금 시간이 있으면 Pending이 풀릴 거임
  2. CloudFront 이동

    1. Create Distribution 클릭

    2. 새 창에서 S3로 이동 후 스토리지에 properties로 이동

      1. Static Website Hosting의 주소를 복사
      2. 다시 CloudFront로 이동
    3. Origin Domain에 스토리지 Amazon S3를 반드시 직접 입력해야함!!

      1. S3에서 복사해온 주소 입력, 앞에 http:// 는 지우기
      2. Viwer protocol policy에 Redirect HTTP to HTTPS 클릭
      3. Allowed HTTP methods는 GET, HEAD, OPTINS, PUT, POST, PATCH, DELETE 다 된거 클릭
      4. Settings에 Alternated domain name(CNAME) - Optional에서 ADD Item 클릭
      5. 사용할 도메인 주소 입력
      6. CUstom SSL Certificate에 refresh 아이콘 클릭하고 만든 SSL 인증서 클릭
      7. Create Distribution 클릭
      8. 인증서에서 Detail 도메인으로 새 창에서 확인(시간이 좀 걸림)
  3. Route 53에 가서 A 레코드 선택한 다음 Edit Record 클릭

    1. S3 website endpoint를 Alias to CloudFornt distribtution으로 변경
    2. 그 아래 choose distribution으로 지우기
    3. 지우면 cloundfornt.net이 새로 생기는데 그거 클릭
    4. 그 다음 save 버튼 클릭
    5. 이제 도메인명 입력하면 cloudFront 주소로 이동됨(HTTPS 장착된 상태)

여기까지 1단계이다.


2단계 건너뛰고, 4단계, 로드밸런서, EC2, 가상컴퓨터

  1. 리전은 서울로 변경
  2. EC2로 이동
    1. 인스턴스 (running) 클릭해서 이동
    2. Raunch Instance 클릭
      1. 이름은 아무거나 지어도됨, (my-ec2)
      2. AWS Linux 클릭
      3. Amazon Linux 2 AMI(HVM) free tier 클릭
      4. t2.micro 선택 (free tier)
      5. key pair는 Proceed without a key pair (Not recommended) 클릭
      6. Allow SSH Anywhere에 0.0.0.0으로 누군든지 터미널에 접근하게 확인
      7. Lanch 인스턴스 클릭 - 지금부터 1시간마다 돈 나감
    3. Running 중인 EC2 인스턴스에 들어가기
      1. 해당 인스턴스 체크하고, Connet 클릭
      2. Connet로 접속