AWS CodeDeploy 사용

이 자습서에서는 AWS의 가상 머신에 애플리케이션 코드를 배포하는 방법을 알아봅니다. AWS 또는 온프레미스 서버로의 코드 배포를 자동화하는 서비스인 AWS CodeDeploy를 사용하여 Amazon EC2로 생성 및 관리하는 가상 머신에 코드를 배포합니다. 

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

AWS 리소스 관리

콘솔에 로그인

Amazon EC2를 사용하여 가상 머신에 액세스하려면 키 페어를 생성해야 합니다.  키 페어가 이미 있는 경우 2단계로 건너뛰십시오.


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

tmt-codeDeploy-20

(확대하려면 클릭)

tmt-codeDeploy-20

b.  키 페어 이름을 지정합니다.  본 자습서에서는 MyFirstKey라는 이름을 사용합니다. Create(생성)를 클릭합니다.

참고: Amazon EC2는 퍼블릭 키 암호화 기법을 사용하여 로그인 정보를 암호화 및 해독합니다. 키 페어에 대한 자세한 내용은 Amazon EC2 키 페어를 참조하십시오.

tmt-codeDeploy-19

(확대하려면 클릭)

tmt-codeDeploy-19

a. AWS Management Console의 왼쪽 상단에 있는 홈 아이콘을 클릭합니다.  Developer Tools(개발자 도구)에서 CodeDeploy를 찾아 클릭하여 AWS CodeDeploy 콘솔을 엽니다.

tmt-codeDeploy-0

(확대하려면 클릭)

tmt-codeDeploy-0

b. AWS CodeDeploy 콘솔에서 Get Started Now(지금 시작)를 클릭합니다.

애플리케이션이 이미 있는 경우 오른쪽 열에서 Create Deployment Walkthrough(배포 프로세스 생성)를 클릭합니다.

tmt-codeDeploy-1

(확대하려면 클릭)

tmt-codeDeploy-1

c. Sample Deployment(샘플 배포)를 선택하고 Next Step(다음 단계)를 클릭합니다.

tmt-codeDeploy-2

(확대하려면 클릭)

tmt-codeDeploy-2

코드를 배포할 AWS 가상 머신을 시작해야 합니다.  AWS 가상 머신은 Amazon EC2 인스턴스 또는 간단히 '인스턴스'라고 합니다. 이 단계에서는 미리 구성된 EC2 템플릿을 사용하여 3개의 EC2 인스턴스를 시작합니다.


아래의 옵션을 사용하여 인스턴스 설정을 구성합니다.

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

Launch Instances(인스턴스 시작)를 클릭합니다.

참고: 이 단계를 완료하는 데 몇 분 정도 걸릴 수 있습니다.  기다리는 동안 아래의 동영상을 통해 본 자습서를 검토해 보시기 바랍니다.

codeDeploy_video
2:10
AWS CodeDeploy 프로세스
tmt-codeDeploy-4

(확대하려면 클릭)

tmt-codeDeploy-4

AWS CodeDeploy는 코드 배포 시 애플리케이션 이름을 사용하여 해당 배포가 올바른 배포 구성 요소(예: 배포 그룹, 배포 구성 및 애플리케이션 개정)를 참조하도록 합니다.


a. Application Name(애플리케이션 이름) 입력란에 HelloWorld를 샘플 애플리케이션 이름으로 입력하고 Next Step(다음 단계)을 클릭합니다.

tmt-codeDeploy-5

(확대하려면 클릭)

tmt-codeDeploy-5

b. 위치, 설명 등, 애플리케이션 개정 버전에 대한 정보를 검토합니다.

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

Next Step(다음 단계)을 클릭합니다.

tmt-codeDeploy-7

(확대하려면 클릭)

tmt-codeDeploy-7

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


Deployment Group Name(배포 그룹 이름) 상자에서 제안된 배포 그룹 이름(DemoFleet)을 그대로 둡니다.

그런 다음 Seach by Amazon EC2 Tags(Amazon EC2 태그로 검색) 섹션에 키-값 페어를 입력하여 배포할 Amazon EC2 인스턴스를 지정합니다.

  • Key(키) Value(값) 열은 3단계에서 설정한 값으로 자동으로 채워집니다.
  • Instances(인스턴스) 열에 코드를 배포할 EC2 인스턴스의 수가 표시됩니다.  이 자습서에서는 3개의 EC2 인스턴스를 시작 및 사전 구성했으며, 해당 인스턴스는 이미 배포 그룹으로 한데 태그가 지정되어 있습니다.

Next Step(다음 단계)을 선택합니다.

tmt-codeDeploy-8

(확대하려면 클릭)

tmt-codeDeploy-8

이 단계에서는 인스턴스에 배포할 수 있는 권한을 AWS CodeDeploy에 부여합니다. Amazon EC2 또는 AWS CodeDeploy 같은 서비스에 권한을 부여하려면 AWS 서비스에 대해 역할을 생성합니다. 이러한 서비스는 AWS 리소스에 액세스할 수 있으므로, 역할을 생성함으로써 서비스가 해당 리소스를 사용하여 수행하도록 허용할 작업을 결정하는 것입니다.


Service Role(서비스 역할): Create a new service role(새 서비스 역할 생성)을 선택합니다.  서비스 역할이 이미 있는 경우 Use an existing service role(기존 서비스 역할 사용)을 선택할 수 있습니다.

Role Name(역할 이름): 기본갑인 CodeDeploy_HelloWorld를 수락할 수 있습니다.  기존 서비스 역할을 사용하는 경우 Role Name(역할 이름) 드롭다운 목록에서 해당 역할을 선택합니다.

Next Step(다음 단계)을 클릭합니다.

tmt-codeDeploy-9

(확대하려면 클릭)

tmt-codeDeploy-9

이 단계에서는 배포 구성을 선택한 후 3개의 EC2 인스턴스로의 배포를 시작합니다. 이 단계를 끝내면 실행 중인 라이브 웹 사이트를 성공적으로 배포하여 온라인으로 접속할 수 있습니다.


a. 배포 구성을 통해 애플리케이션 개정 버전을 동시에 배포할 수 있는 인스턴스의 수를 결정하고 배포의 성공 및 실패 조건을 설명할 수 있습니다. 예를 들어 기본 구성("One at a Time(한 번에 하나)")을 사용하여 애플리케이션을 3개의 인스턴스에 배포하는 경우 이 구성은 한 번에 하나의 인스턴스를 배포하게 됩니다.

Default Deployment Configuration(기본 배포 구성)을 수락하고 Next Step(다음 단계)을 클릭합니다.

tmt-codeDeploy-10

(확대하려면 클릭)

tmt-codeDeploy-10

b. 배포의 세부 정보를 검토하고 Deploy Now(지금 배포)를 클릭합니다.

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

tmt-codeDeploy-11

(확대하려면 클릭)

tmt-codeDeploy-11

c. 이 샘플 개정은 각 인스턴스에 단일 웹 페이지를 배포합니다. 3개의 인스턴스가 모두 완료되고 나면 View All Instances(인스턴스 모두 보기)를 선택합니다.

tmt-codeDeploy-14

(확대하려면 클릭)

tmt-codeDeploy-14

d. 배포 대상 인스턴스 중 하나의 인스턴스 ID를 클릭합니다. 그러면 시작한 인스턴스를 볼 수 있는 EC2 대시보드로 이동됩니다.

tmt-codeDeploy-15

(확대하려면 클릭)

tmt-codeDeploy-15

e. 샘플 애플리케이션이 성공적으로 배포되었는지 확인하려면 맨 아래 패널에 있는 Public DNS(퍼블릭 DNS) 필드의 주소를 복사하여 브라우저에 붙여 넣습니다. 그러면 라이브 웹 페이지가 표시됩니다.

tmt-codeDeploy-21

(확대하려면 클릭)

tmt-codeDeploy-21

나중에 요금이 부과되지 않도록 이 자습서에서 사용한 리소스를 정리해야 합니다. 이 자습서에서 시작한 EC2 인스턴스는 종료하지 않는 한 계속 실행됩니다.


a. EC2 콘솔의 검색 창에 인스턴스 ID의 검색 필터가 자동으로 채워집니다.  이 필터를 삭제하면 CodeDeploy에 의해 시작된 인스턴스가 모두 표시됩니다.  

tmt-codeDeploy-16a

(확대하려면 클릭)

tmt-codeDeploy-16a

b. 종료할 각 Amazon EC2 인스턴스의 확인란을 선택합니다. Actions(작업), Instance State(인스턴스 상태)를 차례로 선택하고 Terminate(종료)를 클릭합니다.

메시지가 나타나면 Yes, Terminate(예, 종료합니다)를 클릭합니다.

tmt-codeDeploy-18a

(확대하려면 클릭)

tmt-codeDeploy-18a

AWS CodeDeploy를 사용하여 Amazon EC2 인스턴스로의 첫 번째 코드 배포를 성공적으로 생성하고 완료했습니다. 제공된 템플릿을 사용하여, 먼저 올바른 태그로 사전 구성된 3개의 인스턴스를 시작하고 AWS CodeDeploy를 사용하는 데 필요한 에이전트를 설치했습니다. 마지막으로, 애플리케이션을 배포할 준비를 하고, 인스턴스에 배포할 CodeDeploy 권한을 부여한 후 코드를 성공적으로 배포했습니다.

AWS CodeDeploy를 사용하여 Amazon EC2 인스턴스로의 샘플 배포를 성공적으로 완료했으므로, 이제 자체 애플리케이션에서 CodeDeploy를 사용하는 방법을 알아볼 수 있습니다. EC2 인스턴스를 시작한 다음, CodeDeploy가 해당 인스턴스에 코드를 배포할 수 있도록 인스턴스를 구성하는 방법을 자세히 알아보려면 CodeDeploy 설명서를 참조하십시오. 이 자습서에서는 CodeDeploy의 작동 방식을 쉽게 배우고 경험할 수 있도록 해당 구성 단계를 간소화했습니다.

AWS CodeDeploy 인스턴스를 구성하는 방법 알아보기

아니요