상세 컨텐츠

본문 제목

Spark SQL_ch 03_구글 GCP_Compute Engine에 깃허브 연동하기

SQL

by seonjaechoi 2023. 10. 18. 02:10

본문

반응형

구글 클라우드 플랫폼(GCP)의 Compute Engine에서 GitHub를 연동하는 이유

 

개발 및 배포 자동화:
GitHub를 GCP Compute Engine과 연동하면 소프트웨어 개발 및 배포 프로세스를 자동화할 수 있습니다. 코드가 GitHub 저장소에 푸시되면, GCP Compute Engine 인스턴스를 트리거하여 새로운 코드를 가져와 애플리케이션을 업데이트하거나 배포할 수 있습니다.

지속적인 통합과 지속적인 배포 (CI/CD): 
GitHub 연동을 통해 CI/CD 파이프라인을 구축할 수 있습니다. 이를 통해 코드 변경 사항이 자동으로 빌드, 테스트, 스테이징 및 프로덕션 환경으로 배포될 수 있습니다.

팀 협업과 버전 관리: 
개발 팀은 GitHub를 사용하여 코드를 협업하고 버전을 관리합니다. 
GCP Compute Engine에서 GitHub를 연동하면 팀 간의 협업이 용이하며, 
코드 변경 사항이 추적되고 문서화됩니다.

백업 및 복구: 
GitHub는 코드 저장소를 안전하게 보관하므로 코드 손실을 방지할 수 있습니다. 
GCP Compute Engine와 GitHub를 연동하면 코드 백업과 복구가 쉬워집니다.

확장성 및 유연성: 
GCP Compute Engine은 필요에 따라 인스턴스를 확장하거나 축소하는 데 유용하며, 
GitHub를 통해 코드를 관리하면 이러한 확장성을 활용할 수 있습니다.

보안: 
GitHub는 코드 검토 및 보안 취약점을 관리하는 데 도움이 되며, GCP Compute Engine과 통합하여 애플리케이션의 보안을 강화할 수 있습니다.

요약하면, GCP Compute Engine와 GitHub를 연동하면 개발 및 배포 프로세스를 향상시키고 개발 팀 간의 협업을 간소화하며 보안과 확장성을 개선할 수 있습니다. 이러한 이점들은 개발 및 운영 프로세스를 효율적으로 관리하고 개발자들이 코드를 더 효과적으로 관리할 수 있도록 도와줍니다.

 


1. 인스턴스를 시작/재개하여 중지된 인스턴스를 재실행한다.

 

2. Github설치를 위해 SSH에서 더보기를 눌러 브라우저 창에서 열기를 실행한다.

 

3. SSH 실행 후 아래의 깃허브 설치코드를 실행한다.


SSH(Secure Shell)란?
네트워크를 통해 안전하게 원격 시스템에 접속하고 데이터 통신하는 프로토콜로, 암호화와 인증을 통해 보안을 제공합니다. 주로 원격 서버 관리와 파일 전송에 사용되며, 민감한 정보를 안전하게 전송하고 접속할 때 사용됩니다. SSH는 비밀번호 노출과 중간자 공격을 방지하여 보안을 강화합니다.

 

▣ Github 설치 코드

# 패키지 관리자를 통해 시스템 패키지 목록을 업데이트합니다.
(base) ~$ sudo apt-get update -y

# 현재 설치된 패키지를 최신 버전으로 업그레이드합니다.
(base) ~$ sudo apt-get upgrade -y

# Git 버전 관리 시스템을 설치합니다.
(base) ~$ sudo apt install git

# Git 버전을 확인합니다.
(base) ~$ git --version

 

4. git --version 을 통해 최종 설치된 깃허브의 버전을 체크하자

 

5. SSH KEY 값 설정하기

  • 아래의 코드에 본인의 깃허브 이메일을 추가하여 터미널에 명령어를 입력하자
# SSH 키 생성 명령어를 실행합니다.
(base) ~$ ssh-keygen -t rsa -b 4096 -C “your@email.com”

# -t 옵션은 생성할 키 유형을 지정하며, 여기서는 RSA 키를 생성합니다.
# -b 옵션은 키의 비트 길이를 설정하며, 4096 비트의 안전한 키를 생성합니다.
# -C 옵션은 키에 대한 주석(선택 사항)으로 이메일 주소를 입력합니다.

 

6. Key값을 복사하기 위해 아래의 명령어를 실행한다.

# SSH 공개 키를 출력합니다.
(base) ~$ cat .ssh/id_rsa.pub

# 'cat' 명령어를 사용하여 SSH 디렉터리에서 (일반적으로 ~/.ssh/) id_rsa.pub 파일의 내용을 표시합니다.
# 이 파일은 SSH 키 쌍에서 공개 키(public key)를 나타내며, 이 키를 다른 서버 또는 서비스에 등록하여 원격 접속할 때 사용합니다.

SSH 키 값

 

7. 위의 Key값을 활용하기 위해 깃허브에 접속하여 아래와 같이 신규 리포지토리를 만들어준다.

 

8. Repository 생성 후 우측 상단의 프로필 사진을 클릭하여 세팅으로 들어간다.

 

9. SSH and GPG keys로 들어가서 New SSH key를 생성 해야된다.

 

10. Key는 위의 터미널 캡쳐본의 키를 그대로 갖고온다.
(Ctrl + F검색: SSH 키 값)

 

11. 메타 데이터 등록

 

12. Github Repository 연동하려면 생성한 리포지토리의 SSH 주소가 필요하다.

  • SSH 항목에서 주소를 복사하자

  • 나의 현재 경로를 파악하고 이 경로로 깃허브를 연동할 예정이다.
(base) ~$ pwd
/home/your_id

(base) ~$ ls
miniconda3

(base) ~$ git clone git@github.com:your_id/mulcamptest.git
Cloning into 'mulcamptest'...
The authenticity of host 'github.com (20.200.245.247)' can't be established.
ECDSA key fingerprint is SHA256:your_ssh_key
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com,20.200.245.247' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (4/4), done.

# 깃허브가 불러와진 모습
(base) ~$ ls
miniconda3  mulcamptest

 

13. 아래의 코드를 입력하여 README 파일을 vi편집기로 편집해보자.

(base) ~$ ls
miniconda3  mulcamptest

(base) ~/mulcamptest$ ls
README.md

(base) ~/mulcamptest$ vi README.md

 

14. config에 나의 이메일과 아이디 세팅을 저장한다.

(base) ~/mulcamptest$ git config --global user.email "your_id@email.com"
(base) ~/mulcamptest$ git config --global user.name "yourname"
  • 위와 같이 설정이 완료되면 아래와 같이 업데이트를 진행한다.
(base) ~/mulcamptest$ git add .
(base) ~/mulcamptest$ git commit -m "updated"
[main 3271b58] updated
 1 file changed, 3 insertions(+), 1 deletion(-)
(base) ~/mulcampFP$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 2 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 302 bytes | 302.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:dschloe/mulcampFP.git
   bb07067..3271b58  main -> main

 

15. 깃허브에 vi편집기에서 수정한 내용이 업데이트 되었음을 확인할 수 있다.

 

16. 이번에는 깃허브에서 파일을 하나 불러와보자.

  • 아래와 같이 Create new file을 선택하여 test.py를 생성하자

  • 위와 같이 test.py를 생성 했다면 아래의 코드를 입력해 파일을 불러와보자.
(base) ~/mulcamptest$ git pull
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 736 bytes | 736.00 KiB/s, done.
From github.com:seonjaechoi0307/mulcamptest
   147f0fc..8279d75  main       -> origin/main
Updating 147f0fc..8279d75
Fast-forward
 test.py | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 test.py
  • 불러온 파일을 확인하고 파이썬으로 test.py를 실행해보자.
(base) ~/mulcamptest$ ls
README.md  test.py
(base) ~/mulcamptest$ python test.py
Traceback (most recent call last):
  File "/home/faragon/mulcamptest/test.py", line 1, in <module>
    import pandas as pd
ModuleNotFoundError: No module named 'pandas'

 

17. 아직 라이브러리를 설치하지 않았으므로 No module이 뜨는 모습이다.


관련글 더보기