일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- time wait port kill
- conda 가상환경 설정 오류
- conda 기초 설정
- conda base 기본 설정
- 3000 port kill
- 려려
- 티스토리챌린지
- 실행중인 포트 죽이기
- conda base 활성화
- 오블완
- window netstat time wait 제거
Archives
- Today
- Total
모도리는 공부중
[GithubAction] Github 제공 러너 vs Github Actions 자체 호스팅 러너 (feat.ChatGPT) 본문
내 지식 정리/날것 그 자체
[GithubAction] Github 제공 러너 vs Github Actions 자체 호스팅 러너 (feat.ChatGPT)
공부하는 모도리 2025. 1. 17. 11:57728x90
반응형
🤔
내가 이해한 걸 정리하면, github action에서 제공하는 vm을 이용하면 동적ip가 할당되고 vm 사용료가 있기 때문에 월 2000분 이상 사용 시 추가적인 비용이 발생하지만, github action runner를 내가 소유중인 서버에 설치해서 ip를 입력해두면 github action이 작동할 때 입력된 ip 서버로 이동해서 action이 이뤄지기 때문에 추가 비용이 발생하지 않는다. 다만 해당 서버가 클라우드 서버냐, 온프레미스 서버냐에 따라 추가적인 발생 비용이 있을지는 다르다는 거지?
🤖
네, 정확히 이해하셨습니다! 간단히 정리하면 다음과 같습니다.
1. GitHub Actions 기본 VM (GitHub 제공 러너)
- 동적 IP: GitHub에서 제공하는 러너는 동적 IP를 사용하며, IP 화이트리스트를 사용하는 환경에서는 접근이 제한될 수 있습니다.
- 사용 요금:
- 퍼블릭 리포지토리: 무제한 무료.
- 프라이빗 리포지토리: 월 2,000분 무료 제공, 초과 시 추가 요금 발생.
- 초과 요금:
- Linux: $0.008/min
- Windows: $0.016/min
- macOS: $0.08/min
2. GitHub Actions 자체 호스팅 러너
- 동작 방식:
- GitHub Actions 워크플로우가 실행될 때, GitHub 제공 VM 대신 러너가 설치된 서버에서 작업이 수행됩니다.
- 고정 IP 사용 가능:
- 온프레미스 서버나 클라우드 서버에서 고정 IP를 설정하면, IP 화이트리스트가 있는 환경에서도 문제없이 사용 가능.
- 추가 비용:
- GitHub에서 러너를 제공하지 않으므로 GitHub Actions 사용 시간에 대한 추가 요금 없음.
- 러너를 설치한 서버가 클라우드 서버인지, 온프레미스 서버인지에 따라 추가 비용 발생 가능.
3. 추가 비용 여부
서버 환경 비용 발생 여부
GitHub 제공 러너 | 월 2,000분 초과 시 추가 요금 발생. (Linux $0.008/min 등) |
클라우드 서버 러너 | 클라우드 제공사의 VM 사용 요금 발생. (예: GCP, AWS, Azure 등에서 VM 비용) |
온프레미스 서버 러너 | 이미 운영 중인 서버라면 추가 비용 없음. 다만, 전력 비용, 하드웨어 유지보수 비용이 간접적으로 발생할 수 있음. |
4. 결론
- GitHub 제공 러너: 편리하지만, 동적 IP로 인해 제한이 있을 수 있고, 무료 사용량(2,000분)을 초과하면 비용이 발생.
- 자체 호스팅 러너:
- 클라우드 서버: 클라우드 요금에 따라 추가 비용 발생.
- 온프레미스 서버: 추가 비용이 발생하지 않을 가능성이 높음(이미 운영 중인 리소스를 활용).
추가적으로 궁금한 점이 있으면 말씀해 주세요! 😊
🤔
궁금한 점 클라우드 서버를 이용하면 동일 클라우드 내 다른 vm에 ssh, scp를 할 때도 화이트 리스트 등록이 필요한가? 같은 프로젝트 내이거나 같은 그룹 내이면 상관 없나? 아니면 그럼에도 불구하고 등록해야하는가? 온프레미스 서버를 이용하면 온프레미스 서버 ip를 화이트리스트로 등록하고, 온프렘 서버에서 생성한 pub키를 클라우드에 등록하고 pem키를 github actions에 등록해두면 되는가?
🤖
1. 클라우드 서버를 이용할 경우 (같은 클라우드 내 다른 VM 접근)
1-1. 화이트리스트 등록 필요 여부
- 같은 프로젝트 또는 같은 VPC 내에 있는 경우:
- GCP, AWS, Azure 등 클라우드 플랫폼에서는 **같은 VPC(Virtual Private Cloud)**나 프로젝트/네트워크 그룹 내의 VM끼리는 별도의 화이트리스트 등록 없이 내부 IP를 통해 통신 가능합니다.
- 예: GCP에서는 10.x.x.x 같은 내부 IP를 사용하여 SSH나 SCP를 실행할 수 있습니다.
- 다른 프로젝트나 네트워크 그룹에 속한 경우:
- 다른 프로젝트나 VPC에 있는 VM에 접근하려면, 방화벽 규칙 또는 화이트리스트를 설정해야 합니다.
- 예: GCP에서 프로젝트 A의 VM이 프로젝트 B의 VM에 접근하려면, 프로젝트 B의 VM에서 외부 IP를 허용하거나, VPC 네트워크 피어링을 설정해야 합니다.
1-2. 설정 방법
- 같은 VPC에서 SSH 통신 설정 (화이트리스트 불필요):
- GCP에서 같은 VPC 내 VM은 내부 IP를 사용해 SSH로 연결 가능합니다:
ssh user@<internal-ip>
- GCP에서 같은 VPC 내 VM은 내부 IP를 사용해 SSH로 연결 가능합니다:
- 다른 VPC 또는 프로젝트에서 접근 허용:
- 방화벽 규칙에서 SSH 포트(22번)를 허용하거나, VPC 피어링 설정을 추가:
- GCP → VPC 네트워크 → 방화벽 규칙 → SSH (TCP 22) 포트 허용.
- 방화벽 규칙에서 SSH 포트(22번)를 허용하거나, VPC 피어링 설정을 추가:
2. 온프레미스 서버를 이용할 경우
2-1. 화이트리스트 등록
- 클라우드 서버의 방화벽에 온프레미스 서버의 IP를 화이트리스트에 등록해야 합니다.
- 클라우드 서버(GCP, AWS, Azure 등)의 방화벽 규칙에서 온프레미스 서버의 고정 IP를 허용해야 SSH, SCP 등을 사용할 수 있습니다.
- 예: GCP에서 VPC 네트워크 → 방화벽 규칙 → SSH (TCP 22) 포트 허용 → 소스 IP로 온프레미스 서버의 고정 IP 입력.
2-2. SSH 키 관리
- 온프레미스 서버의 SSH 공개 키(pub key)를 클라우드 서버에 등록:
- 클라우드 서버의 ~/.ssh/authorized_keys 파일에 온프레미스 서버에서 생성한 SSH 공개 키를 추가합니다.
- 예:
echo "<on-prem-server-pub-key>" >> ~/.ssh/authorized_keys
- GitHub Actions에 온프레미스 서버의 비공개 키(pem key)를 등록:
- 온프레미스 서버에서 생성한 SSH 키 쌍의 **비공개 키(pem)**를 GitHub Secrets에 저장.
- Actions에서 비공개 키를 사용해 온프레미스 서버를 통해 클라우드 서버에 연결:
- name: SSH to cloud server via on-prem server run: | ssh -i private_key.pem user@<cloud-server-ip> "echo 'Connected!'"
3. FAQ와 결론
3-1. 클라우드 서버 내에서 다른 VM 접근 시 화이트리스트가 필요한가?
- 같은 VPC/프로젝트 내:
- 내부 IP로 접근 가능하며 화이트리스트 등록이 필요 없습니다.
- 다른 VPC/프로젝트:
- 방화벽 규칙에서 접근을 허용하거나, VPC 피어링을 설정해야 합니다.
3-2. 온프레미스 서버를 사용하는 경우 SSH 키와 화이트리스트는 어떻게 설정하나요?
- 화이트리스트:
- 클라우드 서버의 방화벽에서 온프레미스 서버의 고정 IP를 허용.
- SSH 키:
- 온프레미스 서버에서 생성한 **공개 키(pub)**를 클라우드 서버의 ~/.ssh/authorized_keys에 등록.
- 온프레미스 서버의 **비공개 키(pem)**를 GitHub Actions의 Secrets에 저장하여 사용.
3-3. 추천 설정
- 클라우드 내 작업:
- VPC 내부에서 실행하고 내부 IP를 사용해 통신.
- 온프레미스 + 클라우드 통합 작업:
- 온프레미스 서버의 고정 IP를 클라우드 방화벽에 등록하고, SSH 키를 통해 통신 설정.
추가로 필요한 부분이나 설정 과정에서 궁금한 점이 있다면 말씀해주세요! 😊
728x90
반응형
'내 지식 정리 > 날것 그 자체' 카테고리의 다른 글
[URL링크하기] QR코드 생성 (feat. ChatGPT) (0) | 2025.01.10 |
---|---|
[DB 보안] db ↔ 애플리케이션 연결 SSL 구성 관련 (feat. ChatGPT) (0) | 2025.01.07 |
2025.01. 개발 궁금증 링크 일기 (0) | 2025.01.02 |
[SQL Alchemy & Alembic] DDL문으로 작성된 테이블 인덱스와 Alchemy 모델에 작성된 인덱스에 차이가 있을 경우 (feat. ChatGPT) (0) | 2024.12.30 |
[git submodule] 'git submodule update'와 'git submodule update --init --recursive'의 차이 (feat.ChatGPT) (0) | 2024.12.30 |
Comments