AWS 기반 프로젝트

.NET 및 AWS Toolkit for Visual Studio를 사용하여

더욱 향상된 봇

모듈 5: 배포 및 정리

이 모듈에서는 AWS CodeBuild 및 AWS CodeDeploy를 사용하여 EC2에 Chatbot을 배포하고 요금이 발생하지 않도록 리소스를 정리합니다.

개요

아래의 단계별 지침에 따라 Chatbot 애플리케이션을 배포한 후 리소스를 정리합니다. 각 단계 번호를 클릭하면 해당 섹션이 펼쳐집니다.

 소요 시간

30분

 사용된 서비스

CodeDeploy, CodeBuild, EC2, AWS CodeStar

구현 지침

    • a. AWS 콘솔에서 [서비스]를 클릭한 후 [개발자 도구]에서 [CodeStar]를 선택합니다.
      b. [새 프로젝트 생성]을 클릭하고 ASP.NET Core 웹 애플리케이션 템플릿을 선택합니다.
      c. [프로젝트 이름]을 입력하고 CodeCommit을 리포지토리로 선택한 후 [다음]을 클릭합니다.
      d. [AWS CodeStar가 자동으로 AWS 리소스를 관리하도록 권한 부여] 확인란이 선택되어 있는지 확인하고 [프로젝트 생성]을 클릭합니다.
      e. 키 페어를 선택하고 [이 키 페어의 프라이빗 키 파일에 액세스할 권한이 있으며, 이 파일 없이는 인스턴스에 로그인할 수 없음을 알고 있습니다.] 확인란이 선택되어 있는지 확인합니다.
      f. 이제 프로젝트 코드를 편집하는 방법을 선택할 수 있습니다. 이 선택은 언제든지 변경할 수 있지만 여기서는 [명령줄 도구]를 클릭하여 사용 중인 운영 체제의 설정 지침을 따릅니다.
      g. 명령줄에서 지침을 따랐다면 CodeCommit에서 프로젝트 리포지토리를 복제했을 것입니다.
      h. 다양한 제품과 Git 가져오기 도구를 사용할 수 있지만, 없는 경우에 사용할 수 있도록 수동으로 이 작업을 빠르게 수행하는 방법을 설명해 드리겠습니다. 모듈 4의 Github 리포지토리에서 복제한 코드를 가져와 새로 복제된 CodeCommit 리포지토리의 모든 코드를 해당 코드로 바꿉니다(.NET Chatbot 코드를 붙여 넣기 전에 이전 코드 모두 삭제).
      i. 명령줄에서 복제된 디렉터리로 이동하여 다음 명령을 실행합니다.

      1. git add -A
      2. git commit -m "adding Chatbot code"
      3. git push origin master

      j. [건너뛰기]를 클릭하면 지속적 배포를 진행 중인 코드의 대시보드가 나타납니다. 표시되는 다른 여러 옵션도 살펴보시기 바랍니다.
      k. Visual Studio 솔루션 파일이 있는 프로젝트 디렉터리에서 appspec.yml 파일과 buildspec.yml 파일을 복사합니다.
      l. Visual Studio 솔루션 파일이 있는 프로젝트 디렉터리에 폴더를 생성하고 이름을 scripts로 지정합니다.
      m. 복제한 repo의 Linux 배포 디렉터리에 있는 모든 파일을 이전 단계에서 생성한 scripts 디렉터리에 복사합니다.
      n. 애플리케이션 엔드포인트 링크를 클릭하여 Chatbot 애플리케이션을 보고 테스트합니다.

      ⚐ 참고: 자세한 내용은 Github 프로젝트 내에 있는 설명서를 참조하십시오.

      ec2 keypair
    • a. AWS 계정에 로그인하여 us-east-1(버지니아 북부) 또는 eu-west-1(아일랜드) 리전에 있는지 확인합니다.
      b. GitHub 자격 증명을 사용하여 GitHub 계정에 로그인합니다.
      c. [템플릿]을 클릭하여 AWS CloudFormation으로 us-east-1에 인프라 스택을 생성합니다. 또한 여기에서 CloudFormation 템플릿을 다운로드하고 원하는 리전의 AWS CloudFormation 서비스에서 CloudFormation 템플릿을 실행할 수도 있습니다.
      d. AWS CloudFormation 콘솔 웹 페이지로 이동되고 인프라 리소스를 생성하는 데 필요한 파라미터를 입력하는 화면이 나타납니다. [스택 이름] 및 [애플리케이션] 파라미터에 원하는 값을 입력합니다.
      e. 다른 브라우저 창을 열고 GitHub 계정으로 돌아가 GitHub 계정에서 [설정]을 클릭한 후 [개인 액세스 토큰]을 클릭하고 scopes repo와 admin:repo_hook를 사용하여 새 토큰을 생성합니다. 앞서 언급한 두 스크립트 모두에 대해 모든 하위 옵션을 선택해야 합니다.
      f. AWS CloudFormation 웹 페이지로 돌아가 GitHubOAuthToken 파라미터에 이전 단계에서 생성한 GitHub의 값을 입력합니다.
      g. 솔루션을 배포할 VPC와 해당 VPC에 속한 퍼블릭 서브넷(인터넷 게이트웨이가 연결되어 있는 서브넷)을 선택합니다.
      h. 키 페어 이름을 선택합니다. 키 페어 이름에 대한 자세한 내용을 보려면 여기를 클릭하십시오.
      i. 원하는 경우 인스턴스 유형을 변경하고 그렇지 않으면 제공된 기본값을 그대로 둡니다.
      j. OSTtype 필드에서 대상 EC2 인스턴스에 사용할 운영 체제로 Windows를 선택한 후 [다음] 버튼을 클릭합니다.
      k. [옵션 및 고급] 섹션의 기본 옵션을 그대로 두고 [다음] 버튼을 클릭합니다.
      l. 검토 화면에서 [AWS CloudFormation이 사용자 지정 이름으로 IAM 리소스를 생성할 수 있습니다.] 옆에 있는 확인란을 클릭합니다.
      m. 스택을 생성하고 [이벤트] 탭에서 CREATE_COMPLETE 상태로 표시될 때까지 전체 스택과 필요한 모든 리소스가 생성되는 과정을 살펴봅니다.
      n. CodePipeline을 살펴보고 애플리케이션이 GitHub부터 CodeBuild로, 다시 CodeDeploy로 전체 CD/CI 프로세스를 거치면서 end 1의 EC2에 배포되는 과정을 살펴봅니다.
      o. 애플리케이션이 성공적으로 배포되면 CloudFormation의 [출력] 탭으로 이동하여 URL 값을 클릭하고 환경에서 실행 중인 Chatbot 애플리케이션을 확인합니다.

      ⚐ 참고: 자세한 내용은 GitHub 프로젝트 내에 있는 설명서를 참조하십시오.

    • a. 콘솔에서 CodeStar 페이지로 이동합니다.
      b. 프로젝트의 오른쪽 상단에서 말줄임표를 선택합니다. 아래의 스크린샷을 참조하십시오.
      c. [삭제] 옵션을 선택합니다.
      d. 프로젝트의 이름을 입력하여 삭제 의사를 확인합니다. [CodeStar 프로젝트와 함께 관련 AWS 리소스 삭제] 옆에 있는 확인란을 그대로 둡니다. 선택하면 어떻게 되는지 자세히 알아보십시오.
      e. [삭제] 버튼을 누릅니다.

      codestar 프로젝트 삭제
    • a. 콘솔에서 CloudFormation 페이지로 이동합니다.
      b. 스택을 선택합니다.
      c. [작업] 드롭다운 메뉴로 이동합니다.
      d. [스택 삭제] 옵션을 선택합니다.
      e. [예, 삭제합니다.] 버튼을 누릅니다.

  • Lambda
    a. 콘솔에서 Lambda 페이지로 이동합니다.
    b. 제목의 왼쪽에 있는 풍선을 클릭하여 목록에서 함수를 선택합니다.
    c. [작업]을 누르고 [삭제]를 클릭합니다.

    Lex
    a. 콘솔에서 Lex 페이지로 이동합니다.
    b. 제목의 왼쪽에 있는 풍선을 클릭하여 목록에서 봇을 선택합니다.
    c. [작업]을 누르고 [삭제]를 클릭합니다.

    Cognito
    a. 콘솔에서 Cognito 페이지로 이동합니다.
    b. [연동 자격 증명 관리]를 클릭합니다.
    c. 연동 자격 증명을 클릭합니다.
    d. 오른쪽 상단에서 [자격 증명 풀 편집]을 클릭합니다.
    e. 아래로 스크롤하여 [자격 증명 풀 삭제] 버튼을 클릭합니다. 그런 다음 빨간색 삭제 버튼을 클릭하여 삭제 의사를 확인합니다.

    ⚐ 참고: 이 지침은 GitHub 프로젝트 내의 Documentation 폴더에도 있습니다.

축하합니다!

Amazon Web Services를 사용하여 .NET을 기반으로 Amazon Lex Chatbot을 구축했습니다.

경의를 표하는 로봇들

Chatbot을 친구들과 공유하세요. 앞으로 여러분이 구축할 Chatbot들이 기대됩니다!