이 기사에서는 AWS에서 DevOps 파이프라인을 설정하는 방법을 안내합니다. 하지만 먼저 DevOps가 실제로 무엇인지 정의해 보겠습니다.
과거에는 애플리케이션 개발이 보통 개발과 운영이라는 두 팀으로 나뉘어 있었습니다. 개발 팀은 코드를 작성하여 테스트한 다음 운영 팀에 전달하고 운영 팀은 코드를 서버에 구현하여 중단 없이 실행 및 확장할 수 있도록 했습니다.
최근의 클라우드 컴퓨팅으로의 전환으로 개발자들은 이제 애플리케이션을 실행하는 인프라에 대한 더 많은 지식을 얻게 될 것으로 예상됩니다. 즉, 개발 팀과 운영 팀이 하나로 통합되고 DevOps 방식으로 함께 작업한다는 의미입니다. 이를 통해 개발자는 프로덕션 환경에서 더 쉽게 관리할 수 있는 코드를 작성할 수 있습니다.
DevOps 작업 방식의 또 다른 이점은 운영을 담당하는 팀이 원래 애플리케이션을 개발한 팀과 동일한 경우 프로덕션 문제를 더 빨리 파악할 수 있다는 것입니다.
그러면 파이프라인은 DevOps와 어떻게 연결됩니까? 개발 및 운영으로 나뉘는 과거의 팀 작업 방식을 살펴보면, 릴리스는 일반적으로 아래에 설명된 다양한 프로세스를 따릅니다.
개발 팀은 릴리스에 포함되어야 하는 코드 변경 사항을 코드 저장소에 병합합니다.
개발 팀(또는 전담 테스터)이 릴리스 테스트를 수행합니다.
개발 팀은 출시 준비가 된 프로덕션 빌드를 생성합니다.
운영 팀은 프로덕션 빌드를 받아 프로덕션 환경에 수동으로 배포합니다. 일반적으로 릴리스 패키지를 서버 환경 내에 배치하고 스크립트를 실행합니다.
DevOps와 통합된 개발 및 운영 팀을 통해 작은 기능을 더 빠른 속도로 출시할 수 있습니다. 운영 관련 업무는 일반적인 개발 활동과 병행하여 수행할 수 있습니다. 이를 더욱 신속하게 수행하기 위해 DevOps 파이프라인을 사용하여 릴리스 및 테스트 작업을 자동화할 수 있습니다. 서버 환경 내에 릴리스 패키지를 배치하고 스크립트를 실행하는 작업은 버튼을 누르거나 코드 변경 사항을 특정 분기에 눌러 자동으로 실행할 수 있습니다.
이와 같은 파이프라인은 여러 가지 도구를 사용하여 설정할 수 있습니다. 그러나 이미 AWS에서 워크로드를 실행 중인 경우에는 AWS 생태계를 벗어나지 않고도 효율적으로 워크로드를 실행할 수 있도록 지원하는 다양한 서비스가 제공됩니다.
이제 몇 가지 배포 작업을 자동화할 수 있는 자체 파이프라인을 만들어 보겠습니다.
시작
다음 AWS 서비스를 사용하여 간단한 정적 사이트 배포를 자동화합니다.
CodePipeline - 소스 코드 리포지토리로 푸시하거나 버튼을 수동으로 눌러 배포를 트리거하는 데 도움이 되는 조정 도구입니다.
CodeBuild - 배포 작업에 필요한 스크립트를 실행할 수 있는 빌드 컨테이너입니다.
S3 - 정적 사이트를 호스팅할 정적 파일 호스팅 서비스입니다.
배포할 정적 사이트는 S3 URL에서 액세스하는 단순한 HTML 파일로 구성되어 있으며, 이를 배포하려면 AWS 콘솔에서 버킷에 HTML 파일을 수동으로 업로드해야 합니다. 이 작업을 수행하는 것은 그리 어렵지 않을 수 있지만, 이 작업을 자동화하면 언제든지 몇 분 정도 시간을 절약할 수 있습니다.
이 파이프라인의 목표는 앞서 언급한 AWS 서비스를 결합하여 다음을 달성하는 것입니다.
S3에서 정적 사이트 호스팅을 수행합니다.
1. 버킷을 만듭니다.
정적 사이트를 실행하려면 먼저 S3 버킷을 만듭니다. 이를 수행하려면 AWS 콘솔 → 서비스 → S3 → 버킷 생성으로 이동합니다. 인터넷을 통해 사이트에 액세스할 수 있도록 이 버킷에 대한 공용 액세스를 사용하도록 설정하십시오. 다른 옵션은 기본값으로 유지합니다.
2. 정적 사이트 호스팅을 활성화합니다.
이제 버킷에 있는 HTML 파일을 정적 사이트로 사용할 수 있도록 해야 합니다. 이렇게 하려면 S3 버킷 → 속성 → 정적 웹 사이트 호스팅 → 이 버킷을 사용하여 정적 웹 사이트를 호스팅합니다. 인덱스 문서로 index.html을 입력하고 저장을 누릅니다. 이제 정적 웹 사이트 호스팅 대화 상자에 표시된 끝점 URL로 이동하면 사이트가 실행 중이어야 합니다.
이제 정적인 장소가 생겼네요. 업데이트하려면 버킷에 index.html 파일의 새 버전을 업로드해야 합니다. 이를 자동화해 보겠습니다!
파이프라인을 생성합니다.
1. CodeCommit 저장소를 만듭니다.
코드를 호스팅하려면 파일 저장소가 필요합니다. 이것은 GitHub 또는 당신이 원하는 다른 저장소 서비스가 될 수 있습니다. 간소화를 위해 AWS 저장소 서비스 CodeCommit을 사용합니다.
AWS 콘솔 → CodeCommit → 저장소 생성으로 이동하여 저장소를 생성합니다. 이름을 입력하고 저장을 누릅니다. 마지막으로, SSH 또는 HTTPS를 통해 저장소에 연결하여 HTML을 푸시합니다. 파일에 대한 영감이 없으면 아래 파일을 사용할 수 있습니다.
<p>Hello from jjeongil.tistory.com!</p>
2. CodePipeline 파이프라인을 만듭니다.
이제 정적 사이트의 배포 프로세스를 조정할 파이프라인을 만들어야 합니다.
파이프라인 생성을 시작하려면 AWS Console → CodePipeline → Create new pipeline으로 이동합니다.
1단계
파이프라인의 이름을 입력합니다.
"새 서비스 역할"을 선택합니다.
나머지는 기본값으로 둡니다.
2단계
소스 제공자로 AWS CodeCommit를 선택합니다.
새로 만든 리포지토리를 소스로 선택합니다.
빌드할 분기를 지점 이름으로 선택합니다.
나머지는 기본값으로 둡니다.
3단계
빌드 단계 건너뛰기를 누르십시오. 이 파이프라인은 단순히 정적 HTML이므로 파일을 빌드할 필요가 없습니다.
4단계
배포 단계로 Amazon S3를 선택합니다.
이전에 만든 버킷을 버킷으로 선택합니다.
S3 개체 키를 비워 둡니다.
배포하기 전에 파일 압축을 풉니다.
추가 환경설정 영역을 펼치고 Caned ACL로 public-read를 선택합니다.
저장을 누릅니다.
5단계
Tada! 이제 파이프라인이 실행되어 CodeCommit 저장소에 있는 HTML 파일을 S3에 배포해야 합니다. 파일 변경을 푸시하면 파이프라인이 자동으로 다시 트리거됩니다.
이 설정은 가장 간단한 설정 중 하나이지만 매우 복잡한 백엔드 애플리케이션에서도 기본은 동일합니다. 파이프라인에서 더 많은 단계가 필요할 수 있지만 기본 흐름은 동일해야 합니다. 배포 파이프라인을 한 번 설정하고 워크플로우를 자동화하면 장기적으로 많은 시간을 절약할 수 있으며, 수동 작업을 피하면 항상 더 안전하고 인적 오류가 줄어듭니다.
새로운 DevOps 스킬을 잘 활용하시기 바랍니다.
'SW > 리눅스' 카테고리의 다른 글
Linux : Ubuntu 20.04 : Jenkins 설치 방법, 예제, 명령어 (0) | 2022.11.11 |
---|---|
Linux : 디렉토리 안 파일 개수 세는 방법, 예제, 명령어 (1) | 2022.11.10 |
Linux : Ubuntu 20.04 : Memcached 설치 방법, 예제, 명령어 (0) | 2022.11.08 |
Linux : Ubuntu 20.04 : Gradle 설치 방법, 예제, 명령어 (0) | 2022.11.06 |
Linux : Ubuntu 20.04 : Nginx Server Blocks 설정 방법, 예제, 명령어 (0) | 2022.11.05 |