AWS에 Node.js 애플리케이션 배포에 대한 모든 것

소개

이번 주말에 AWS에 새 포트폴리오 웹 사이트를 배포하는 동안 저처럼 AWS에 대한 경험이 많지 않은 사람들에게는 매우 골치 아픈 일입니다. 또한 AWS 개발자 인증을 준비하면서 테스트 준비의 일환으로 모든 것을 문서화하는 것은 어떨까요?

이제 Node.js 프로젝트 (또는 Elastic Beanstalk를 사용하여 배포 한 경우 다른 프레임 워크)를 배포하는 방법에 대한이 자습서가 제공됩니다. 이 자습서에서는 사용자 지정 도메인 및 SSL 인증을 사용하여 웹 앱을 온라인으로 만드는 데 필요한 모든 것을 다룹니다.

이 튜토리얼은 세 부분으로 나뉩니다.

  1. Elastic Beanstalk 및 Code Pipeline을 사용하여 웹 앱 배포
  2. Route 53에 사용자 지정 도메인을 등록하고 사이트에 추가
  3. SSL 인증 신청 및 HTTP 요청을 HTTPS로 리디렉션

이제 첫 번째 부분 인 클라우드에 웹 앱을 배포하는 방법을 살펴 보겠습니다. 이전에 웹 사이트에 AWS Elastic Beanstalk와 Heroku를 모두 사용해 왔지만 전반적으로 유사한 서비스를 제공하지만 Heroku가 웹 애플리케이션 호스팅에 더 전문화 된 것처럼 AWS는 분명히 더 강력한 플랫폼을 가지고 있습니다.

먼저 AWS 계정이 필요하지만 자세히 설명하지는 않겠습니다. AWS 계정을 얻은 후 Elastic Beanstalk를 검색하기 만하면 여기에서 여정을 시작할 수 있습니다.

Elastic Beanstalk 구성

EB가 여기에서 앱을 호스팅하므로 새 애플리케이션을 만듭니다.

또한이를위한 새 환경을 만들어야합니다.

웹 서버 환경을 선택 하고 다음 단계로 이동하십시오.

웹 애플리케이션 유형을 선택합니다 (예를 들어 Node.js 프로젝트를 배포합니다).

이제 AWS가 환경을 구성하는 동안 여기에서 그대로 둘 수 있습니다.

코드 파이프 라인 및 구성 : Elastic Beanstalk에 대한 코드 CI / CD

EB 환경이 백그라운드에서 설정되는 동안 Code Pipeline 이라는 다른 서비스를 찾아 보겠습니다.

그렇다면 코드 파이프 라인은 무엇입니까? AWS에서 제공하는 CI / CD 도구입니다. 간단히 말해서 코드를 변경할 때마다 Code Pipeline은 클라우드에서 호스팅되는 애플리케이션에 이러한 변경 사항을 구현합니다. 파이프 라인이 수행하는 작업처럼 그렇지 않습니까?

EB에서 애플리케이션을 만드는 것과 유사하게 먼저 파이프 라인을 만들어야합니다.

기본적으로 코드의 출처 인 코드 소스를 추가하십시오. GitHub를 사용하고 있으므로 내 GitHub 계정에 연결하고 저장소를 여기에 추가하기 만하면됩니다.

다음 단계에서 Skip build stage를 선택 하고 프롬프트 메시지를 무시합니다.

이제 우리는 파이프 라인의 다른 쪽 끝으로 가고 있습니다. 코드를 어디로 보낼까요? 방금 설정 한 Elastic Beanstalk입니다.

EB 환경이 지금 설정되어야하므로 다음 옵션 중 하나로 표시됩니다.

파이프 라인 검토 및 생성 :

파이프 라인 대시 보드로 이동합니다. AWS가 GitHub에서 EB 환경으로 코드를 가져 오려고 할 때 잠시 기다리십시오.

몇 분을 기다린 후 모든 것이 좋습니다. 전환 중에 오류가 발생하면 EB 애플리케이션에 문제가있을 가능성이 가장 높습니다. 돌아가서 애플리케이션과 환경이 올바르게 생성되었는지 확인하세요.

이제 EB 대시 보드로 돌아 가면 애플리케이션이 이미 실행 중임을 알 수 있습니다.

URL을 클릭하면 AWS에서 방금 제공 한 웹 애플리케이션을 제공합니다.

2 부. Route 53에 사용자 지정 도메인 등록 및 웹 애플리케이션에 추가

이제 우리의 웹 앱은 이미 인터넷에서 액세스 할 수 있습니다. URL을 더 매력적으로 만들려면 어떻게해야합니까? 예, 다른 사람에게 "내 새 웹 사이트 SampleWebsite-env.eba-qcpytjdg.us-east-1.elasticbeanstalk.com확인해보세요 "라고 말하는 대신 자신의 도메인을 원할 것 입니다.

GoDaddy, Freenom 또는 Crazy Domain과 같은 호주 도메인 공급자와 같은 수많은 도메인 공급자가 시장에 있습니다. 여기서 사용할 것은 AWS에서 제공하는 DNS 서비스 인 Route 53입니다.

먼저 도메인을 구입해야합니다. 좋아하는 도메인 이름을 검색하고, 사용 된 경우 아래 제안 된 다른 이름으로 전환 해보십시오.

도메인을 구입 한 후 사람들이 도메인을 사용하여 웹 사이트에 액세스 할 수 있도록 도메인을 약간 구성 해 보겠습니다.

이제 DNS 관리 로 이동 하여 방금 구입 한 도메인을 클릭하십시오.

이제 여기에 두 개의 레코드를 만들어야하므로 EB 애플리케이션의 URL을 복사합니다.

아래와 같이 하나의 A 레코드를 만듭니다.

다른 CNAME 레코드를 다음과 같이 만듭니다.

이제 사용자 지정 도메인을 통해 웹 사이트에 액세스 할 수 있습니다!

3 부. 웹 사이트에 HTTPS 추가

브라우저의 왼쪽 상단 모서리, 주소 표시 줄 옆에있는 잠금 아이콘에주의를 기울이면 연결이 안전하지 않다는 것을 알 수 있습니다. 그렇다면 그것은 무엇을 의미합니까? 우리의 경우 HTTPS 대신 HTTP를 사용하여 웹 사이트에 액세스하고 있음을 의미합니다.

HTTPS는 HTTPS의 업데이트 된 버전으로, 브라우저와 웹 서버 (이 경우 AWS) 간의 모든 통신이 암호화됨을 의미합니다.

웹 사이트에 HTTPS를 활성화하려면 다음 세 가지를 수행해야합니다.

  1. SSL 인증 신청
  2. 웹 사이트에 추가
  3. HTTP 요청을 HTTPS로 리디렉션

다음에 할 일은 AWS에 SSL 인증을 신청하는 것입니다. 물론 다른 조직에서도 할 수 있지만 여기서는 AWS를 사용하겠습니다. 먼저 AWS 에서 Certificate Manager 를 검색해야합니다 .

인증서 요청을 선택합니다.

공개 인증 요청을 선택합니다.

웹 사이트에 SSL 인증 추가

인증을 받고 싶은 도메인 이름을 추가하세요.

DNS 유효성 검사 선택 :

지금은 아래 단계를 건너 뛰십시오.

요청 검토

이제 DNS 유효성 검사를 선택 했으므로이 두 레코드를 DNS 설정에 추가하기 만하면됩니다. 이미 Route 53을 사용하여 DNS를 관리하고 있으므로 Route 53에서 레코드 생성을 클릭하기 만하면 AWS가 이러한 레코드를 자동으로 추가합니다.

DNS 레코드가 전파 될 때까지 기다립니다. 30 분 정도 걸릴 수 있습니다. 그러면 "https://www.samplewebsite.com"을 통해 웹 사이트에 액세스 할 수 있습니다.

HTTP 요청을 HTTPS로 리디렉션

이제 HTTPS를 통해 웹 사이트에 액세스 할 수 있지만 주소 표시 www.samplewebsite.com 을 입력하면 여전히 HTTP 링크와 함께 제공 된다는 것을 알 수 있습니다. 이 문제를 해결하려면 HTTP 요청을 HTTPS 사이트로 보낼 수 있도록로드 밸런서를 구성해야합니다.

먼저 EB 애플리케이션으로 돌아가서 구성 탭을 엽니 다.

로드 밸런서 옵션까지 아래로 스크롤하여 조정하려는 위치입니다.

기본적으로 HTTP라는 한 가지 유형의 리스너 만 있습니다. 여기서해야 할 일은 아래와 같이 HTTPS 리스너를 추가하는 것입니다.

이제 AWS 서비스에서 EC2를 검색하고 Load Balancer 옵션을 찾으십시오.

EB 애플리케이션의로드 밸런서를 찾으면 리스너 탭 에 두 개의 리스너가 표시됩니다 .

HTTP 리스너에서 규칙을 편집하고 기본 동작 을 https://www.samplewebsite.com 으로 리디렉션 으로 설정합니다.

이제 사용자가 입력 한 경우에도 www.samplewebsite.com을 // : 브라우저, 당신은 HTTPS로 전달됩니다 WWW .samplewebsite.com

Suggested posts

깔끔한 코드를위한 10 가지 자바 스크립트 스 니펫

코드를 깔끔하고 간결하게 만드는 자바 스크립트 속기

깔끔한 코드를위한 10 가지 자바 스크립트 스 니펫

모든 JavaScript 프로그래머를 위해 가장 멋지고 유용한 속기 / 스 니펫 목록을 수집했습니다. 코드를보다 전문적으로 보이게하려면이를 사용하십시오.

저녁에 웹 스크레이퍼를 만드는 방법 배우기

저녁에 웹 스크레이퍼를 만드는 방법 배우기

웹 스크레이퍼를 만들고 싶었거나 어떻게 수행되는지 궁금하다면이 간단한 연습 자습서를 만들었습니다. 이 튜토리얼에서는 웹 스크래핑의 기초를 배웁니다.

Related posts

"실용적인 프로그래머"의 5 가지 필수 사항

역대 베스트셀러 코딩 북의 요점

"실용적인 프로그래머"의 5 가지 필수 사항

Pragmatic Programmer는 1999 년에 처음 출판되었으며 이후 역대 최고의 프로그래밍 책으로 선정되었습니다. 저자 Andy Hunt와 David Thomas는 Agile Manifesto의 원저자 중 하나였으며 몇 가지 심각한 자격을 가지고 있습니다.

대규모 GraphQL 쿼리 공격으로부터 보호

공격자가 공개적으로 사용 가능한 GraphQL 인터페이스를 사용하여 사이트를 스크랩하거나 서비스 거부 공격을 실행하는 방법에 대해 알아보십시오. 이들은 4 가지 방법 중 하나로이를 수행 할 수 있습니다. 단일 대형 쿼리를 신중하게 구성하여 실행하고, 관련 데이터를 가져올 수있는 병렬 쿼리를 많이 작성하고, 일괄 요청을 사용하여 많은 쿼리를 연속적으로 실행하고, 마지막으로 많은 요청을 보냅니다.

기술 인터뷰의 사회적 구성 요소

코딩 문제는 스트레스가 많지만 스트레스에 대한 당신의 반응은 당신의 기술적 능력보다 더 크게 말합니다.

기술 인터뷰의 사회적 구성 요소

기술 업계의 직책을 위해 인터뷰 할 때 일반적으로 제안을 고려하기 전에 최소한 3 차례의 인터뷰를 거치게됩니다. 라운드는 일반적으로 다음과 같습니다. 그렇게 생각하면 잘못된 것입니다.

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자를 만드는 비 기술적 인 것들 나는이 기사를 작성하는 것을 한동안 미루고 있습니다. 나는 그것을 작성할 자격이 있다고 생각하지 못했습니다. 오늘은 쓸 때라고 생각했습니다.