← 전체로 돌아가기
스킬 aws

EC2 인스턴스 및 Python 환경 설정

EC2 설정부터 Pyenv로 Python 환경 구축까지

awsec2pythonpyenvlinux

EC2 인스턴스 초기 설정부터 Pyenv로 Python 개발 환경 구축 핵심 가이드.

  • EC2 기본 설정:

    • 키페어 .pem 권한 chmod 400.
    • 보안 그룹 인바운드 SSH (22번) 허용.
    • 고정 IP는 Elastic IP 생성 후 인스턴스 연결.
    • SSH 접속: bash ssh -i your-key.pem ubuntu@EC2-IP
  • Pyenv Python 환경:

    • 빌드 필수 패키지 설치: bash sudo apt update sudo apt install -y make build-essential libssl-dev #...등
    • Pyenv 설치 및 쉘 설정: bash curl https://pyenv.run | bash # .bashrc에 PATH/eval 설정 후 source ~/.bashrc
    • Python 버전 설치/설정: bash pyenv install 3.10.12 pyenv global 3.10.12
    • 가상 환경: bash pyenv virtualenv 3.10.12 myenv pyenv activate myenv

여기서 배울 것

  1. EC2 인스턴스 기본 설정 (SSH, 보안 그룹)
  2. Elastic IP 할당 및 적용
  3. Pyenv를 이용한 Python 버전 관리
  4. Pyenv 가상 환경 생성 및 활용
원본 파일 보기 (.claude/skills/tn-ec2-setup/SKILL.md)
---
name: EC2 인스턴스 및 Python 환경 설정
description: This skill should be used when the user asks to set up a new AWS EC2 instance from scratch, including SSH connection, Elastic IP configuration, and a Python development environment using Pyenv.
version: 1.0.0
source: /home/son/prj/resume/backup_notes_260317/notion/Tech Note/EC2 Setup from scratch 165d7efd824b80b6bf50de1e0247ed8e.md
---

# EC2 Setup from scratch

Launch EC2 ubuntu

![Screenshot 2024-12-23 at 9.15.25 PM.png](EC2%20Setup%20from%20scratch/Screenshot_2024-12-23_at_9.15.25_PM.png)

Keypair

![Screenshot 2024-12-23 at 9.15.55 PM.png](EC2%20Setup%20from%20scratch/Screenshot_2024-12-23_at_9.15.55_PM.png)

SSH connect

![Screenshot 2024-12-23 at 9.16.20 PM.png](EC2%20Setup%20from%20scratch/Screenshot_2024-12-23_at_9.16.20_PM.png)

1. chmod 400
2. security group setup (inbound- port 22 - all)
    
    ![Screenshot 2024-12-23 at 9.31.46 PM.png](EC2%20Setup%20from%20scratch/Screenshot_2024-12-23_at_9.31.46_PM.png)
    
    ![Screenshot 2024-12-23 at 9.32.21 PM.png](EC2%20Setup%20from%20scratch/Screenshot_2024-12-23_at_9.32.21_PM.png)
    
3. connect 

connect with filezilla

![Screenshot 2024-12-23 at 9.36.00 PM.png](EC2%20Setup%20from%20scratch/Screenshot_2024-12-23_at_9.36.00_PM.png)

move files

Elastic IP

![Screenshot 2024-12-23 at 9.51.18 PM.png](EC2%20Setup%20from%20scratch/Screenshot_2024-12-23_at_9.51.18_PM.png)

Create Elastic IP and allocate it

modify security group setting

![Screenshot 2024-12-23 at 9.52.49 PM.png](EC2%20Setup%20from%20scratch/Screenshot_2024-12-23_at_9.52.49_PM.png)

setup basic things

Python (Pyenv)

### 1. **필수 패키지 설치**

먼저 Python을 빌드하는 데 필요한 패키지를 설치합니다.

```bash

sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev \
liblzma-dev python3-openssl git

```

---

### 2. **pyenv 설치**

1. **pyenv 설치 스크립트 실행**:
    
    ```bash
    
    curl https://pyenv.run | bash
    
    ```
    
2. **쉘 환경 설정 업데이트**:
설치 후 pyenv를 사용하려면 `.bashrc` 또는 `.zshrc` 파일에 다음을 추가합니다.
    
    ```bash
    
    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init --path)"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    
    ```
    
    파일을 저장한 후 쉘을 다시 시작하거나 다음 명령어로 변경 사항을 적용하세요:
    
    ```bash
    source ~/.bashrc
    
    ```
    
3. **pyenv 설치 확인**:
    
    ```bash
    bash
    Copy code
    pyenv --version
    
    ```
    

---

### 3. **Python 버전 설치**

1. **사용 가능한 Python 버전 확인**:
    
    ```bash
    bash
    Copy code
    pyenv install --list
    
    ```
    
2. **특정 버전 설치**:
원하는 Python 버전을 설치합니다.
    
    ```bash
    bash
    Copy code
    pyenv install 3.10.12
    
    ```
    
3. **설치된 버전 확인**:
    
    ```bash
    bash
    Copy code
    pyenv versions
    
    ```
    

---

### 4. **Python 버전 설정**

1. **글로벌(기본) 버전 설정**:
시스템에서 기본으로 사용할 Python 버전을 설정합니다.
    
    ```bash
    bash
    Copy codepyenv global 3.10.12
    
    ```
    
2. **로컬 버전 설정**:
특정 디렉토리에서만 사용할 Python 버전을 설정합니다.
    
    ```bash
    bash
    Copy code
    pyenv local 3.10.12
    
    ```
    
3. **임시 버전 설정**:
현재 쉘 세션에서만 사용할 버전을 설정합니다.
    
    ```bash
    bash
    Copy code
    pyenv shell 3.10.12
    
    ```
    
4. **적용된 버전 확인**:
    
    ```bash
    bash
    Copy code
    python --version
    
    ```
    

---

### 5. **가상 환경 관리 (선택 사항)**

pyenv와 함께 pyenv-virtualenv를 사용하면 가상 환경도 쉽게 관리할 수 있습니다.

1. **가상 환경 생성**:
    
    ```bash
    bash
    Copy code
    pyenv virtualenv 3.10.12 myenv
    
    ```
    
2. **가상 환경 활성화**:
    
    ```bash
    bash
    Copy code
    pyenv activate myenv
    
    ```
    
3. **가상 환경 비활성화**:
    
    ```bash
    bash
    Copy code
    pyenv deactivate
    
    ```
    
4. **가상 환경 삭제**:
    
    ```bash
    bash
    Copy code
    pyenv uninstall myenv
    
    ```
    

---

### 6. **문제 해결**

1. **빌드 실패 시**:
Python 빌드에 필요한 패키지가 누락되었을 수 있으니, 1단계에서 모든 필수 패키지가 설치되었는지 다시 확인하세요.
2. **PATH 문제**:
pyenv가 제대로 작동하지 않으면 환경 변수 설정이 올바른지 확인하세요:
    
    ```bash
    bash
    Copy code
    echo $PATH
    
    ```
    

**Nodejs(NVM)**

After Installing

![Screenshot 2024-12-24 at 4.25.17 PM.png](EC2%20Setup%20from%20scratch/Screenshot_2024-12-24_at_4.25.17_PM.png)

check it’s running

Setup Nginx

Nginx reroute

server_name이 중복되면 안되므로