aws 19

CI/CD - Linux 핵심 명령어 / Linux 코드 작성 환경 준비 (vs code) / 간단한 Flask 어플을 만들어보는데, Flask가 뭐지? / EC2 인스턴스에 연결하기

Linux에서 자주 사용되는 핵심 명령어는 파일 관리, 시스템 상태 확인, 프로세스 제어 등 다양한 작업을 수행하는 데 유용합니다. 아래는 Linux 초보자부터 중급자가 알아두면 좋은 주요 명령어를 간단히 정리한 목록입니다.1. 파일 및 디렉토리 관리(1) 디렉토리 탐색 및 관리ls디렉토리 내용 확인.cd디렉토리 이동.pwd현재 작업 중인 디렉토리 경로 출력.(2) 파일 및 디렉토리 생성/삭제touch빈 파일 생성.mkdir새 디렉토리 생성.rm파일 또는 디렉토리 삭제.cp파일/디렉토리 복사.mv파일 이동 또는 이름 변경.2. 파일 내용 확인cat파일 내용 출력.less긴 파일을 페이지 단위로 읽기.head / tail파일의 시작 또는 끝 부분 출력.grep파일 내용에서 특정 문자열 검색.3. 권한 및 ..

CI/CD - AWS EC2 / Linux 사용 - Linux 운영체제 - VirtualBox / Ubuntu Linux (iso) /

AWS EC2에 대해서 간단하게 설명해줄 수 있어?AWS EC2(Amazon Elastic Compute Cloud)는 Amazon Web Services에서 제공하는 **가상 서버(인스턴스)**를 생성하고 관리할 수 있는 서비스입니다. 간단히 말해, 인터넷 상에서 필요한 컴퓨팅 자원을 제공하는 클라우드 기반의 가상 서버 서비스라고 할 수 있습니다.주요 특징가상 서버 제공EC2를 통해 원하는 성능과 사양의 서버를 쉽게 생성할 수 있습니다. CPU, 메모리, 스토리지 등을 선택해 맞춤형 서버를 만들 수 있습니다.확장성과 유연성서버 자원을 필요에 따라 늘리거나 줄일 수 있어, 트래픽이 많은 시간대에는 서버를 확장하고, 사용량이 적을 때는 축소하여 비용을 절감할 수 있습니다.요금제사용한 만큼만 요금을 지불하는..

[번외] - 내 자산을 소중히 여기듯이 회사 자산을 소중히 - 'AWS 무료 이용 한계 알림 + 요금 부과 내역'을 확인하고 난 뒤 나의 생각

CI/CD Pipeline 구축을 실습할 때 AWS도 활용되었다. 그 과정에서 여러 가지 서비스를 이용해야 했었다.그리고 무료 사용 한계 알림을 받았다. 나처럼 개인적으로 실습을 해보는 사람들은 예산이 제한적이다. 그러다보니 실습이 끝나고나서는 구축했던 걸 다 삭제를 해야 한다. 실습이 제대로 진행되었는지 확인하기 위해서는 실습이 끝나자마자 바로 삭제를 할 수 없어서 남겨놓았는데, 저렇게 알림이 왔다.   ECS와 VPC 에서 요금이 부과되었다는 걸 확인했다. 합쳐서 20불 정도가 부과되었다.나는 특별하게 한 건 없다고 생각하는데, 20불이라니.그런데 직접 서버를 구축했다면 20불로는 끝나지 않았을 일이다.어쨌든, 추가로 더 부과되지 않기 위해서 이용 중인 서비스를 모두 정리를 해야겠다.   흥미로운 사..

생각 기록하자 2024.11.29

Python Django Project를 AWS 상에서 작동하는 서비스로 만들다 (6) - 사용자 피드백을 받아보고, 그리고 '프로젝트 설명서'를 끝으로 마무리

아내랑 일본어랑 영어를 할 줄 아는, 일본인 친구에게 사용해보라고 했다.그런데, 둘 다 chatGPT를 유료 버전으로 결제해서 사용하는 사람들이라 그런지, '구리다' 라는 평..ㅋㅋㅋㅋ하지만 아내는 IT 보안, 클라우드 보안 엔지니어를 준비 중인 사람이라 그런지, 이런 웹 페이지 하나 개발하고 배포하는 게 얼마나 어려운지, 이렇게 다른 사람이 접속해볼 수 있는게 얼마나 쉽지 않은지 알고 있다면서 고생했다고 말해줬다.나도 정리를 좀 하자면,덕분에 처음부터 끝까지 개발해보고 배포해보는 경험을 해본 것이 굉장히 의미있는 경험이라고 생각한다.AI의 도움을 받아서 개발과 배포를 했는데, AI가 없었으면 못 했을거라는 걸 인정은 한다. 하지만 AI가 없는 세상은 이제 오지 않을 것이다. 그러니까 AI를 잘 활용해서..

Python Django Project를 AWS 상에서 작동하는 서비스로 만들다 (5) - 정상 배포 완료 / http->https

aichatbot-wyfamily.com 이라는 도메인을 1년간 이용하는 권한을 샀었고, 이제 정상 배포가 완료가 되어서 웹페이지 접속이 가능해졌다.메인 도메인, 메인 페이지에는 아무것도 지정해준 게 없어서 Not Found가 뜨는게 정상이다.도메인/chatbot 으로 가야지만 채팅방 목록을 보여주는 것이다. 하지만 지금 DB는 로컬에서 쓰던 PostgreSQL이 아니라 AWS 의 RDS 에서 PostgreSQL을 연결하거니까 아무런 데이터가 없다. 그래서 채팅방 목록이 보이지 않는 것.그리고 도메인/admin 은 django가 기본적으로 제공하는 기능이라서 연결이 된다.하지만 로컬에서 할 때에는 superuser를 만들었지만 지금은 AWS에서 배포한거고 DB에 아무런 정보가 없으니까superuser 부..

Python Django Project를 AWS 상에서 작동하는 서비스로 만들다 (4) - Nginx 설정 및 방화벽 설정 / Django static 파일 수집 / 502 에러 해결

AWS Lightsail 인스턴스 설정서버 업데이트 및 필수 패키지 설치Django 프로젝트 코드 클론Python 가상환경 설정 및 의존성 설치Django 프로젝트 설정Gunicorn 설정Systemd 서비스 파일 생성Nginx 설정방화벽 설정Django 정적 파일 수집7번까지 진행이 된 상황이다. 계속 가보자.처음에 GPT에게 질문했을 때에 8, 9, 10 단계에 대해 해주었던 답변은 이랬다. 8. Nginx 설정/etc/nginx/sites-available/ 파일을 생성하고 다음과 같이 설정합니다.server { listen 80; server_name your-lightsail-ip or your-domain.com; location / { proxy_pass http..

Python Django Project를 AWS 상에서 작동하는 서비스로 만들다 (3) - Python 가상환경 / Django 프로젝트 설정 / Gunicorn 설정 / Systemd 서비스 파일 생성

AWS Lightsail 인스턴스 설정서버 업데이트 및 필수 패키지 설치Django 프로젝트 코드 클론Python 가상환경 설정 및 의존성 설치Django 프로젝트 설정Gunicorn 설정Systemd 서비스 파일 생성Nginx 설정방화벽 설정Django 정적 파일 수집3번까지 진행이 된 상황이다. 계속 가보자.일단, python 가상환경 설정 및 의존성 설치를 해야 하는 이유를 공부하고 넘어가자. 가상환경을 설정하는 이유는 프로젝트마다 독립적인 환경을 제공하기 위해서입니다. 가상환경은 Python 패키지들이 시스템 전체와 충돌 없이 각 프로젝트에만 필요한 패키지들을 설치하고 관리할 수 있도록 돕습니다.가상환경 설정의 주요 이유:프로젝트 간 독립성 유지:각 프로젝트는 필요한 라이브러리와 버전이 다를 수 ..

Python Django Project를 AWS 상에서 작동하는 서비스로 만들다 (2) - 인스턴스 생성과 도메인 연결/ 코드 옮기기

도메인을 구입할 것이다. 회사를 다니면서 진행중인 프로젝트가 아니라 개인적으로 하고 있는 거니까 추가로 개인 돈이 조금(?) 발생한다. 엄청 무리되는 금액은 아닌데, 소비를 많이 하지 않는 성향을 가진 나에게는 쓰라린(?) 금액이다. 아픈 건 아니고, 쓰라린...ㅋㅋㅋㅋ아무튼, 도메인 구입을 할 것이다. 그런데, 내가 생각하기에 구입이라는 단어는, 완전히 나의 소유가 되는 것이라는 의미를 가지게 되는데, 완전 소유는 아니고 도메인을 1년간(또는 년단위의 원하는 기간)만 내 소유로 인정을 받는 구조다.아무튼, 가보자. 나는 도메인 주소를 뭔가 특별한 걸 찾는게 절대 아니다.그래서 도메인 주소는, aichatbot-wyfamily 이런 느낌으로, 누가봐도 내가 만든 프로젝트성 페이지라는 걸 알 수 있게 하려..

Python Django Project를 AWS 상에서 작동하는 서비스로 만들다 (1) - 구조를 짠 뒤, RDS 부터!

시작은 Django의 official documentation을 확인해보자. 개발자 입장에서 배포하는 건 deploy라고 함Django currently supports two interfaces: WSGI and ASGI.WSGI is the main Python standard for communicating between web servers and applications, but it only supports synchronous code.ASGI is the new, asynchronous-friendly standard that will allow your Django site to use asynchronous Python features, and asynchronous Django feat..