AWS CodeDeploy 사용

이 자습서에서는 AWS에서 가상 머신에 애플리케이션 코드를 배포하는 방법을 배우게 됩니다. AWS 또는 온프레미스 서버에 코드 배포를 자동화하는 서비스인 AWS CodeDeploy를 사용하여 Amazon EC2로 생성하고 관리하는 가상 머신에 코드를 배포할 것입니다. 

이 자습서에서 수행하는 모든 작업은 프리 티어에 해당합니다.

AWS 리소스 관리

Console 로그인

Amazon EC2로 가상 머신에 액세스하려면 키 페어를 생성해야 합니다.  이미 키 페어가 있다면 2단계로 넘어가십시오.


a. 여기를 클릭하면 AWS Management Console이 새 브라우저 창에서 열리므로 이 단계별 안내서를 계속 열어 놓을 수 있습니다.  [키 페어 생성]을 클릭합니다.

tmt-codeDeploy-20

(확대하려면 클릭)

tmt-codeDeploy-20

b.  키 페어에 이름을 지정합니다.  이 자습서에서는 MyFirstKey를 사용합니다. [생성]을 클릭합니다.

참고: Amazon EC2는 공개 키 암호화를 사용하여 로그인 정보를 암호화 및 복호화합니다. 키 페어에 대한 자세한 내용은 Amazon EC2 키 페어를 참조하십시오.

tmt-codeDeploy-19

(확대하려면 클릭)

tmt-codeDeploy-19

a. AWS Management Console의 오른쪽 상단 모서리에 있는 홈 아이콘을 클릭합니다.  [개발자 도구] 아래에서 [CodeDeploy]를 찾아서 클릭하면 AWS CodeDeploy Console이 열립니다.

tmt-codeDeploy-0

(확대하려면 클릭)

tmt-codeDeploy-0

b. AWS CodeDeploy Console에서 [지금 시작하기]를 클릭합니다.

이미 애플리케이션이 있다면 오른쪽 열에서 [배포 시연 생성]을 클릭합니다.

tmt-codeDeploy-1

(확대하려면 클릭)

tmt-codeDeploy-1

c. [샘플 배포]를 선택하고 [다음]을 클릭합니다.

tmt-codeDeploy-2

(확대하려면 클릭)

tmt-codeDeploy-2

코드를 배포할 AWS 가상 머신을 시작해야 합니다.  AWS 가상 머신은 Amazon EC2 인스턴스, 또는 줄여서 ‘인스턴스’라고 합니다. 이 단계에서는 사전 구성된 EC2 템플릿으로 3개의 EC2 인스턴스를 시작합니다.

a. AWS Management Console의 오른쪽 상단 모서리에 있는 홈 아이콘을 클릭합니다.  [개발자 도구] 아래에서 [CodeDeploy]를 찾아서 클릭하면 AWS CodeDeploy Console이 열립니다.

tmt-codeDeploy-0

(확대하려면 클릭)

tmt-codeDeploy-0

아래의 옵션으로 인스턴스 설정을 구성합니다.

  • 운영 체제: EC2 인스턴스의 OS를 선택할 수 있습니다.  이 자습서에서는 Amazon Linux를 사용합니다. 
  • 인스턴스 유형: 이 자습서에서는 프리 티어에 머물기 위해 t1.micro 인스턴스 유형을 기본값으로 선택했습니다. Amazon EC2는 각 사용 사례에 맞게 최적화된 다양한 인스턴스 유형을 제공합니다. 인스턴스 유형은 CPU, 메모리, 스토리지 및 네트워킹 용량의 다양한 조합으로 구성되며, 애플리케이션에 따라 적합한 리소스 조합을 선택할 수 있는 유연성을 제공합니다.  
  • 키 페어 이름: 드롭다운 목록에서 1단계에서 생성한 Amazon EC2 인스턴스 키 페어인 MyFirstKey를 선택하여 Amazon EC2 인스턴스와 연결합니다. 기존의 키 페어를 선택할 수도 있습니다. 
  • 태그 키와 값: AWS CodeDeploy는 이 태그 키와 값을 사용하여 배포 중에 인스턴스의 위치를 찾습니다. 기본값을 유지할 수 있습니다.

[인스턴스 시작]을 클릭합니다.

참고: 이 단계를 완료하는 데 몇 분이 걸릴 수 있습니다.  완료되기를 기다리는 동안 아래의 영상을 시청하면서 자유롭게 이 자습서를 검토하십시오.

tmt-codeDeploy-4

(확대하려면 클릭)

tmt-codeDeploy-4

AWS CodeDeploy는 코드 배포 중에 애플리케이션 이름을 사용하여 올바른 배포 구성 요소(예: 배포 그룹, 배포 구성, 애플리케이션 개정)를 참조하고 있는지 확인합니다.


a. [애플리케이션 이름] 상자에 HelloWorld를 샘플 애플리케이션의 이름으로 입력하고 [다음 단계]를 클릭합니다.

tmt-codeDeploy-5

(확대하려면 클릭)

tmt-codeDeploy-5

b. 애플리케이션 개정 정보(예: 위치, 설명)를 검토합니다.

참고: 샘플 번들을 다운로드하는 옵션도 있습니다. 이 뷰에서는 EC2에 배포하고 싶은 애플리케이션 개정에 대한 정보를 검토할 수 있습니다. 애플리케이션 개정은 소스 내용(예: 소스 코드, 웹 페이지, 실행 파일, 배포 스크립트)이 포함된 아카이브 파일과 애플리케이션 사양 파일(AppSpec 파일)입니다. AppSpec 파일은 CodeDeploy가 개정의 소스 파일을 대상으로 매핑하고 배포의 여러 단계에서 스크립트를 실행하도록 합니다.

[다음 단계]를 클릭합니다.

tmt-codeDeploy-7

(확대하려면 클릭)

tmt-codeDeploy-7

배포 그룹은 CodeDeploy가 개정을 배포하는 개별 EC2 인스턴스의 모음입니다. 배포 그룹에는 개별적으로 태그된 인스턴스나 Auto Scaling 그룹의 Amazon EC2 인스턴스, 또는 그 두 가지가 모두 포함됩니다.


[배포 그룹 이름] 상자에 제안된 배포 그룹 이름(DemoFleet)은 그대로 둡니다.

그런 다음, [Amazon EC2 태그로 검색] 섹션에 키-값 쌍을 입력하여 배포할 Amazon EC2 인스턴스를 지정합니다.

  • []와 [] 열은 3단계의 값이 자동 입력되어야 합니다.
  • [인스턴스] 열에는 코드를 배포할 EC2 인스턴스의 개수가 표시됩니다.  이 자습서에서는 3개의 EC2 인스턴스를 시작하고 사정 구성하였으며, 해당 인스턴스는 이미 배포 그룹으로 함께 태그가 지정되었습니다.

[다음 단계]를 선택합니다.

tmt-codeDeploy-8

(확대하려면 클릭)

tmt-codeDeploy-8

이 단계에서는 인스턴스에 배포하기 위한 AWS CodeDeploy 권한을 부여합니다. Amazon EC2 또는 AWS CodeDeploy와 같은 서비스에 대한 권한을 부여하려면 AWS 서비스에 대한 역할을 생성해야 합니다. 이 서비스는 AWS 리소스에 액세스할 수 있으므로 역할을 생성하여 서비스가 이 리소스로 무엇을 할 수 있는지 결정해야 합니다.


서비스 역할: [새 서비스 역할 생성]을 선택합니다.  이미 서비스 역할이 있다면 기존 서비스 역할 사용을 선택할 수 있습니다.

역할 이름: CodeDeploy_HelloWorld의 기본값을 선택할 수 있습니다.  기존 서비스 역할을 사용한다면 역할 이름 드롭다운 목록에서 선택하십시오.

[다음 단계]를 클릭합니다.

tmt-codeDeploy-9

(확대하려면 클릭)

tmt-codeDeploy-9

이 단계에서는 배포 구성을 선택한 다음, 3개의 EC2 인스턴스에 대한 배포를 시작합니다. 이 단계가 끝나면 정상 작동하고 실행되는 웹사이트를 배포하고, 온라인에서 해당 사이트를 방문할 수 있습니다.


a. 배포 구성을 사용하여 동시에 애플리케이션 개정을 배포할 인스턴스가 몇 개인지 결정하고 배포의 성공 및 실패 상태를 설명할 수 있습니다. 예를 들어 기본 구성(“한 번에 1개”)을 사용할 때 애플리케이션을 3개의 인스턴스에 배포할 경우 이 구성에서는 한 번에 1개의 인스턴스에 배포합니다.

[기본 배포 구성]을 수락하고 [다음 단계]를 클릭합니다.

tmt-codeDeploy-10

(확대하려면 클릭)

tmt-codeDeploy-10

b. 배포 세부 정보를 검토하고 [지금 배포]를 클릭합니다.

참고: 이 작업은 완료하는 데 몇 분이 걸릴 수 있습니다.

tmt-codeDeploy-11

(확대하려면 클릭)

tmt-codeDeploy-11

c.  이 샘플 개정은 각 인스턴스에 하나의 웹 페이지를 배포합니다. 3개의 인스턴스가 모두 완료되면 [모든 인스턴스 보기]를 클릭합니다.

tmt-codeDeploy-14

(확대하려면 클릭)

tmt-codeDeploy-14

d.  배포한 인스턴스 중 하나에서 인스턴스 ID를 클릭합니다. EC2 대시보드로 이동해서 시작한 인스턴스를 볼 수 있습니다.

tmt-codeDeploy-15

(확대하려면 클릭)

tmt-codeDeploy-15

e. 샘플 애플리케이션이 성공적으로 배포했는지 확인하려면 하단의 패널에 있는 공개 DNS 필드의 주소를 복사해서 브라우저에 붙여넣습니다. 그러면 실제 웹 페이지가 표시됩니다.

tmt-codeDeploy-21

(확대하려면 클릭)

tmt-codeDeploy-21

나중에 변경되는 것을 방지하기 위해 이 자습서에서 사용한 리소스를 정리해야 합니다. 이 자습서에서 시작한 EC2 인스턴스는 종료하지 않으면 계속 실행됩니다.


a. EC2 콘솔의 검색창에 인스턴스 ID에 해당하는 검색 필터가 자동 입력되어 있습니다.  이 필터를 삭제하면 CodeDeploy에서 시작한 모든 인스턴스가 보입니다.  

tmt-codeDeploy-16a

(확대하려면 클릭)

tmt-codeDeploy-16a

b. 종료할 각 Amazon EC2 인스턴스의 상자를 선택합니다. [작업], [인스턴스 상태]를 선택하고 [종료]를 클릭합니다.

메시지가 나타나면 [예, 종료합니다]를 클릭합니다.

tmt-codeDeploy-18a

(확대하려면 클릭)

tmt-codeDeploy-18a

AWS CodeDeploy를 사용하여 처음으로 코드를 생성하고 Amazon EC2 인스턴스에 배포하는 작업을 완료하였습니다. 먼저, 제공된 템플릿을 사용해서 적절한 태그로 사전 구성되고 AWS CodeDeploy를 사용하는 데 필요한 에이전트로 설치된 3개의 인스턴스를 시작했습니다. 마지막으로 배포를 위해 애플리케이션을 준비하고 인스턴스를 배포하기 위한 CodeDeploy 권한을 부여한 다음, 코드를 배포했습니다.

AWS CodeDeploy를 사용하여 Amazon EC2 인스턴스에 대한 샘플 배포를 완료하였으므로 자신의 애플리케이션에서 CodeDeploy를 사용하는 방법을 배울 수 있습니다. CodeDeploy 설명서에서 EC2 인스턴스를 시작하는 방법을 참조한 다음, CodeDeploy가 코드를 배포할 수 있도록 인스턴스를 구성하십시오. 저희가 준비한 자습서에서는 CodeDeploy의 작동 원리를 배우고 경험하는 데 도움을 드리기 위해 이러한 구성 단계를 단순화하였습니다.

AWS CodeDeploy 인스턴스 구성 방법에 대해 자세히 알아보기

아니요