본문 바로가기
AI, 클라우드, 협업, 교육, 문서, 업무자동화

Address already in use" (이미 사용 중인 주소) 문제

by 아톨 2025. 7. 25.

이 에러 메시지는 "Address already in use" (이미 사용 중인 주소) 문제로, Flask 애플리케이션을 실행하려는 5500번 포트가 이미 다른 프로그램에 의해 사용되고 있기 때문에 발생합니다.

Port 5500 is in use by another program. Either identify and stop that program, or start the server with a different port.

이 메시지처럼, 5500번 포트를 사용 중인 프로그램을 찾아 중지시키거나, Flask 서버를 다른 포트에서 시작해야 합니다.

 

해결 방법:

옵션 1: 5500번 포트를 사용 중인 프로그램 찾아서 중지시키기 (권장)

이 방법은 가장 일반적이며, 기존에 백그라운드로 실행해 둔 Flask 앱이나 다른 웹 서버 프로세스가 아직 살아있는 경우에 해당합니다.

  1. 5500번 포트를 사용 중인 프로세스 확인:
    AWS EC2 인스턴스 터미널에서 다음 명령어를 입력합니다.
    Bash
    sudo netstat -tulnp | grep 5500

  • sudo: 관리자 권한으로 실행합니다.
  • netstat -tulnp: 현재 활성화된 네트워크 연결 및 리스닝 중인 포트 정보를 표시합니다.
  • -t: TCP 연결
  • -u: UDP 연결
  • -l: 리스닝 중인 소켓만 표시
  • -n: 주소와 포트 번호를 숫자로 표시 (이름으로 변환하지 않음)
  • -p: 해당 포트를 사용 중인 프로그램의 PID(Process ID)와 이름 표시
  • grep 5500: netstat 결과에서 5500을 포함하는 라인만 필터링합니다.

이 명령어를 실행하면 다음과 유사한 결과가 나올 수 있습니다:

tcp        0      0 0.0.0.0:5500            0.0.0.0:* LISTEN      12345/python3
여기서 12345가 프로세스 ID (PID)이고, python3가 해당 프로세스의 이름입니다. (PID는 매번 다를 수 있습니다.)

  1. 해당 프로세스 중지시키기 (kill):
    위에서 확인한 PID를 사용하여 프로세스를 강제로 종료합니다.
    Bash
    sudo kill 12345

    (여기서 12345는 netstat 명령어로 찾은 실제 PID로 바꿔야 합니다.)
    만약 kill 명령어로 종료되지 않는다면, kill -9 (강제 종료)를 시도할 수 있습니다.
    Bash
    sudo kill -9 12345

  2. 다시 Flask 애플리케이션 실행:
    프로세스를 종료한 후, 다시 Flask 애플리케이션을 실행해 보세요.
    Bash
    python3 test5-3-from-4-2.py

    또는 백그라운드로 실행하려면:
    Bash
    nohup python3 test5-3-from-4-2.py &

옵션 2: Flask 애플리케이션을 다른 포트에서 실행하기

만약 5500번 포트를 사용 중인 프로그램을 중지시키기 어렵거나, 다른 이유로 다른 포트를 사용하고 싶다면, Flask 앱의 포트를 변경할 수 있습니다.

  1. Flask 코드 수정:
    Flask 애플리케이션 코드의 app.run() 부분을 수정합니다. 예를 들어, 5501번 포트를 사용하도록 변경합니다.
    Python
    if __name__ == "__main__":
        app.run(debug=True, port=5501) # 5500을 5501로 변경

  2. 저장 및 실행:
    코드를 저장한 후, Flask 애플리케이션을 다시 실행합니다.
    Bash
    python3 test5-3-from-4-2.py

    이제 Flask 앱은 http://127.0.0.1:5501에서 실행될 것입니다.
  3. AWS 보안 그룹 업데이트 (필수):
    만약 Flask 앱이 외부에서 접근해야 한다면, AWS EC2 인스턴스의 보안 그룹에서 새로 변경한 포트(예: 5501번)에 대한 인바운드 규칙을 추가하거나 기존 규칙을 수정해야 합니다. (이전에 설명해 드린 보안 그룹 설정 방법을 참고하세요.)

이 두 가지 옵션 중 하나를 선택하여 문제를 해결하실 수 있습니다. 일반적으로는 옵션 1을 통해 기존 프로세스를 정리하고 원하는 포트를 사용하는 것이 선호됩니다.

 

반응형