AWS EC2에서 러너 Docker Machine 오토스케일 설정
AWS EC2에서 Docker Machine을 이용한 GitLab Runner 오토스케일 설정 방법 및 Spot 인스턴스 비용 절감 전략
GitLab Runner의 가장 큰 장점 중 하나는 빌드가 즉시 처리되도록 VM을 자동으로 시작하고 중지하는 기능입니다. 이것은 훌륭한 기능이며, 올바르게 사용하면 러너를 24/7 사용하지 않는 상황에서 비용 효율적이고 확장 가능한 솔루션을 원할 때 매우 유용합니다. 소개 # 이 튜토리얼에서는 AWS에서 GitLab Runner를 올바르게 구성하는 방법을 살펴봅니다. AWS의 인스턴스는 요청 시 새 Docker 인스턴스를 생성하는 러너 매니저 역할을 합니다. 이러한 인스턴스의 러너는 자동으로 생성됩니다. 이 가이드에서 설명하는 파라미터를 사용하며 생성 후 수동 구성이 필요하지 않습니다. 또한 Amazon의 EC2 Spot 인스턴스 를 활용하여 꽤 강력한 오토스케일링 머신을 사용하면서도 GitLab Runner 인스턴스 비용을 크게 줄일 수 있습니다. 사전 요구 사항 # 대부분의 설정이 이루어지는 Amazon Web Services(AWS)에 대한 친숙함이 필요합니다. 이 문서 후반부에서 설정할 파라미터에 익숙해지기 위해 Docker Machine amazonec2 드라이버 문서 를 빠르게 읽어보길 권장합니다. GitLab Runner는 네트워크를 통해 GitLab 인스턴스와 통신해야 하므로, AWS 보안 그룹을 구성하거나 DNS 설정을 구성할 때 이를 고려해야 합니다. 예를 들어 네트워크 보안을 강화하기 위해 EC2 리소스를 다른 VPC의 공용 트래픽과 분리할 수 있습니다. 환경이 다를 수 있으므로 상황에 맞는 방법을 고려하세요. AWS 보안 그룹 # Docker Machine은 Docker 데몬과의 통신에 필요한 포트 2376 및 SSH 22 에 대한 규칙이 있는 기본 보안 그룹 을 사용하려고 시도합니다. Docker에 의존하는 대신 필요한 규칙이 있는 보안 그룹을 만들고 아래에서 볼 수 있듯이 GitLab Runner 옵션에 이를 제공할 수 있습니다. 이렇게 하면 네트워킹 환경에 따라 미리 원하는 대로 커스터마이징할 수 있습니다. 러너 매니저 인스턴스 에서 포트 2376 및 22 에 액세스할 수 있어야 합니다. AWS 자격 증명 # 캐시를 스케일(EC2) 및 업데이트(S3를 통해)할 권한이 있는 사용자에 연결된 AWS 액세스 키 가 필요합니다. EC2용 정책 (AmazonEC2FullAccess)과 S3를 가진 새 사용자를 만드세요. S3에 필요한 최소 권한에 대한 자세한 내용은 runners.cache.s3 를 참조하세요. 보안을 강화하려면 해당 사용자의 콘솔 로그인을 비활성화할 수 있습니다. GitLab Runner 설정 중에 나중에 사용할 보안 자격 증명을 탭에 열어두거나 편집기에 복사해 두세요. 필요한 AmazonEC2FullAccess 및 AmazonS3FullAccess 정책이 있는 EC2 인스턴스 프로필 을 만들 수도 있습니다. 새 EC2 인스턴스에 대한 작업 실행을 프로비저닝하려면 이 인스턴스 프로필을 러너 매니저 EC2 인스턴스에 연결합니다. 러너 머신이 인스턴스 프로필을 사용하는 경우 러너 매니저의 인스턴스 프로필에
