본문 바로가기
Python

pycharm/ Django/ git bash/ aws에 EC2로 서비스/ github로 코드 수동 배포

by YUNZEE 2025. 4. 9.
728x90

- pycharm에서 Django 프로젝트 만들기

- pycharm 설치 참고 블로그

https://nadocoding.tistory.com/102

 

파이썬 개발 환경설정 - 파이참 (PyCharm)

파이썬 개발 환경설정 - 파이참 (PyCharm) 편입니다. ※ 본 포스팅은 윈도우 10 기준으로 작성되었습니다. ※ 파이썬 설치는 아래 링크를 참고해주세요. 👉 https://nadocoding.tistory.com/4 [파이썬 기본편]

nadocoding.tistory.com

 

 

- 원래 있던 git hub에 있는 코드를 git bash를 사용해서 코드를 가져오기

git bash 설치 참고 블로그

https://sfida.tistory.com/46

 

[Git] Git Download 깃 설치하기 : 초보자를 위한 상세 가이드

안녕하세요 :) 오늘은 깃(Git) 설치하는 방법에 대해 알아보도록 하겠습니다. 1. Git 파일 다운로드 https://git-scm.com/downloads Git - Downloads Downloads macOS Windows Linux/Unix Older releases are available and the Git source

sfida.tistory.com

- 깃허브에 있는 코드 url주소 가져오기

- 이제 내가 만든 깃허브 레포지토리에 추가할 거임

- 근데 다른 사람 코드를 가져오면 기록이 남기 때문에 지워줄 거임

la -al은 숨긴 폴더를 볼 수 있음

- 여기서. git이라는 폴더가 깃 정보를 다 가지고 있기 때문에 지워줘야 됨

-  git init -> 마스터

 

- git hub에 다시 업로드하기

 

 

- git bash에 명령어를 입력하다 보면 에러를 만남

- 아직 스테이지로 넘어가지 않은 파일들이 있음

- 여기서. add를 시켜주면 모든 변경 사항을 스테이지에 올리고, 이 상태에서 커밋이 됨

- git사용자 정보가 등록되어 있지 않아 발생하는 문제였음

 

- 본인 git hub 아이디를 입력해 주면

- 이렇게 잘 push 된 걸 확인할 수 있음

 

- 확인해 보면 커밋이 잘 된 걸 확인할 수 있음.

- PyCharm 터미널을 Git Bash로 바꾸는 방법

- pycharm에 터미널 로컬을 git으로 바꾸고 싶다면 tool에서 편집하면 됨

- 변경 후 터미널을 다시 클릭하면 바뀐 걸 확인할 수 있음

- 하면 requirements를 설치됨

 

- 여기서 밑에 있는 url을 클릭하면

- not found가 생성되는 이유는 main.html로 바로 들어가도록 설정을 안 해줬기 때문에 /main으로 입력해 주면 

- vpc1에 있는 퍼블릭 공간에 있는 web에 bastion에 ssh를 활용해서 연결해 준 상황

- xshell에 ssh파일을 연결해서

- 내가 깃허브에 올려둔 파일을 클론 해주기

ubuntu@ip-10-10-5-112:~$ git clone https://github.com/YUMZII/aws_toy_project

 

ubuntu@ip-10-10-5-112:~$ git clone https://github.com/YUMZII/aws_toy_project
Cloning into 'aws_toy_project'...

-> 실행시간이 너무 오래 걸림

오류/ 해결 방안

- 위의 코드를 입력해 줬는데 잘 안됨

ubuntu@ip-10-10-5-112:~$ curl -v http://github.com
* Host github.com:80 was resolved.
* IPv6: (none)
* IPv4: 20.200.245.247
*   Trying 20.200.245.247:80...
* connect to 20.200.245.247 port 80 from 10.10.5.112 port 60154 failed: Connection timed out
* Failed to connect to github.com port 80 after 132667 ms: Couldn't connect to server
* Closing connection
curl: (28) Failed to connect to github.com port 80 after 132667 ms: Couldn't connect to server

 

- 이러한 오류가 발생함

#root -> ubuntu로 갈때 

root@ip-10-10-5-112:~# cd
root@ip-10-10-5-112:~# su - ubuntu
ubuntu@ip-10-10-5-112:~$

 

root@ip-10-10-5-112:~# env | grep -i proxy
root@ip-10-10-5-112:~# git config --global --get http.proxy
root@ip-10-10-5-112:~# git config --global --get https.proxy


root@ip-10-10-5-112:~# su - ubuntu
ubuntu@ip-10-10-5-112:~$ git config --global --get http.proxy
http://proxy-server:port

-> 프록시를 확인해 봤는데 git내부에서 프록시를 사용하려고 하고 있는 상태임
ubuntu@ip-10-10-5-112:~$ git config --global --get https.proxy

-> 아무것도 안 뜨면 괜찮음
ubuntu@ip-10-10-5-112:~$ git config --global --unset http.proxy

-> 그래서 프록시 설정을 제거해 줌
ubuntu@ip-10-10-5-112:~$ git config --global --get http.proxy

-> 아무것도 생성 안된 걸 확인할 수 있음

그래도 안됨

ubuntu@ip-10-10-5-112:~$ nslookup github.com
Server: 127.0.0.53
Address: 127.0.0.53#53

 

-> 지금 nslookup github.com 실행 결과에서 실제 IP (20.200.245.247)가 반환되었으므로, DNS 자체는 정상적으로 작동하고 있는 상태야.
즉, 8.8.8.8이 아니라도 괜찮음

Non-authoritative answer:
Name: github.com
Address: 20.200.245.247

-> github는 잘 받아오는 걸 확인할 수 있음

-> 퍼블릭 ip가 없어서 안된 상황;;;

 

잘 해결됐고 이제 다시 시작 

sudo apt update
sudo apt install python3-pip

sudo apt install python3-venv -y
python3 -m venv aws_env
pip install -r requirements.txt

 

(aws_env) ubuntu@ip-10-10-5-112:~/aws_toy_project$ python3 manage.py migrate
Traceback (most recent call last):
  File "/home/ubuntu/aws_toy_project/manage.py", line 11, in main
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ubuntu/aws_toy_project/manage.py", line 22, in <module>
    main()
  File "/home/ubuntu/aws_toy_project/manage.py", line 13, in main
    raise ImportError(
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

확인사항 (중요!)

  • (aws_env)라는 가상환경이 활성화된 상태에서 반드시 설치 필요
  • 만약 requirements.txt 파일이 없다면 아래 명령으로 직접 Django 설치가 필요함
  • pip install django

 

(aws_env) ubuntu@ip-10-10-5-112:~/aws_toy_project$ python3 manage.py makemigration
Traceback (most recent call last):
  File "/home/ubuntu/aws_toy_project/manage.py", line 22, in <module>
    main()
  File "/home/ubuntu/aws_toy_project/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/home/ubuntu/aws_toy_project/aws_env/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/home/ubuntu/aws_toy_project/aws_env/lib/python3.12/site-packages/django/core/management/__init__.py", line 416, in execute
    django.setup()
  File "/home/ubuntu/aws_toy_project/aws_env/lib/python3.12/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/ubuntu/aws_toy_project/aws_env/lib/python3.12/site-packages/django/apps/registry.py", line 91, in populate
    app_config = AppConfig.create(entry)
                 ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/aws_toy_project/aws_env/lib/python3.12/site-packages/django/apps/config.py", line 193, in create
    import_module(entry)
  File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1324, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'rest_framework'
(aws_env) ubuntu@ip-10-10-5-112:~/aws_toy_project$ python3 manage.py migrate
Traceback (most recent call last):
  File "/home/ubuntu/aws_toy_project/manage.py", line 22, in <module>
    main()
  File "/home/ubuntu/aws_toy_project/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/home/ubuntu/aws_toy_project/aws_env/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/home/ubuntu/aws_toy_project/aws_env/lib/python3.12/site-packages/django/core/management/__init__.py", line 416, in execute
    django.setup()
  File "/home/ubuntu/aws_toy_project/aws_env/lib/python3.12/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/ubuntu/aws_toy_project/aws_env/lib/python3.12/site-packages/django/apps/registry.py", line 91, in populate
    app_config = AppConfig.create(entry)
                 ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/aws_toy_project/aws_env/lib/python3.12/site-packages/django/apps/config.py", line 193, in create
    import_module(entry)
  File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1324, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'rest_framework'

pip install django

pip install djangorestframework
python3 manage.py makemigrations
python3 manage.py migrate

- 127.0.0.1은 자기 자신을 가리키는 ip로 로브백 로컬리스트랑 똑같음

이 장고 페이지가 내 pc에만 생성됨

이 서버를 다른 pc에도 보이게 하고 싶다면 0.0.0.0:8000으로 해주면 됨

 

오류 /해결방법

(aws_env) ubuntu@ip-10-10-5-112:~/aws_toy_project$ python3 manage.py runserver 0.0.0.0:8000
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
Error: That port is already in use.

-> 기존 실행 중인 프로세스를 중지하고 새로 불러옴/ 수시로 위와 같은 에러가 발생하기 때문에 자주 사용할 것 같음

 

(aws_env) ubuntu@ip-10-10-5-112:~/aws_toy_project$ sudo lsof -t -i :8000
17087

(aws_env) ubuntu@ip-10-10-5-112:~/aws_toy_project$ sudo kill -9 17087
(aws_env) ubuntu@ip-10-10-5-112:~/aws_toy_project$ python3 manage.py runserver 0.0.0.0:8000
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
March 12, 2025 - 08:24:20
Django version 5.1.7, using settings 'djangoProject.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

python3 manage.py runserver
python3 manage.py runserver 0.0.0.0:8000

- 8000번 포트번호를 인바운드에서 열어줌

 

 

 

- 잘 된 걸 확인할 수 있음

 

pycharm에서 코드 수정하고 git에 바로 업로드하는 방법

git add .

git push 

하면 수정 됨

 

aws에 EC2로 서비스, github로 코드 수동 배포

- 근데 여기서 우리가 한 것까지 봤을 때 문제점은 터미널을 닫으면 서버가 죽는 것이 문제임

- 이런 문제를 해결하기 위해서는 다음 편에 계속

728x90