EC2

ian·2023년 6월 23일
4

EC2

Amazon Elastic Compute Cloud(EC2)는 AWS에서 제공하는 가상 서버 인스턴스입니다. EC2를 사용하면 필요에 따라 가상 서버를 프로비저닝하고, 확장하거나 축소하여 애플리케이션을 실행할 수 있습니다.

EC2 인스턴스

EC2 인스턴스란 가상 컴퓨팅 환경입니다. 가상 머신을 생성하고 실행합니다.
웹 호스팅, 애플리케이션, 데이터베이스, 인증 서비스를 비롯해 서버가 수행하는 모든 워크로드를 지원합니다.

AMI

AMI란 인스턴스를 시작하는데 필요한 정보를 제공하는 이미지로, 한 AMI로 여러 인스턴스를 생성할 수 있습니다.

인스턴스 유형 선택

  • 범용
  • 컴퓨팅 최적화
  • 메모리 최적화
  • 액셀러레이티드 컴퓨팅
  • 스토리지 최적화

보안그룹 설정


EC2는 SSH 22번 포트를 사용하여 터미널을 접속하기에 기본으로 허용해주어야 합니다.

엘라스틱 IP

  • EC2 인스턴스가 중단된 후 재시작했을 시에 새로운 IP가 할당되기에 고정적인 IP가 필요하다면 Elastic IP를 할당해주어야 합니다.
  • Elastic IP 주소 할당 후 Elastic IP 주소를 원하는 EC2 instance로 연결

EC2 SSH에 접속하여 ubuntu일 경우 명령어를 통해 소프트웨어를 설치하여 EC2를 세팅합니다.

EC2 ubuntu 설정

EC2 Instance connect (ubuntu)
sudo apt-get update
sudo apt-get upgrade

#build tools
sudo apt-get install build-essential

#python
sudo apt install python3.11-venv
sudo apt-get install python3-pip

EC2 Security Group

Inbound 규칙을 설정
Protocol, ip source, port 설정

EC2 Elastic IP

Elastic IP adress 할당 후 Elastic IP adress를 원하는 EC2 instance로 연결

Docker 설치

sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER

sudo apt install docker.io: 이 명령어는 apt 패키지 관리자를 사용하여 Docker 패키지를 설치합니다. docker.io는 우분투 및 Debian 기반 배포판에서 Docker를 설치하기 위한 패키지 이름입니다. 이 명령어는 관리자 권한(sudo)이 필요하므로 관리자로 실행해야 합니다.

sudo systemctl start docker: 이 명령어는 Docker 데몬을 시작합니다. Docker 데몬은 Docker 컨테이너를 관리하는 백그라운드 프로세스입니다. systemctl 명령어는 리눅스에서 시스템 서비스를 시작하고 관리하는 데 사용됩니다.

sudo systemctl enable docker: 이 명령어는 Docker를 시스템 부팅 시 자동으로 시작하도록 설정합니다. Docker를 서비스로 등록하면 시스템이 재부팅될 때마다 Docker가 자동으로 시작됩니다.

sudo usermod -aG docker $USER: 이 명령어는 현재 사용자를 docker 그룹에 추가하여 sudo를 사용하지 않고도 Docker 명령어를 실행할 수 있게 합니다. 이 명령어를 실행한 후에는 로그아웃하고 다시 로그인해야 그룹 멤버십이 적용됩니다.

환경변수 설정

  • nano나 vim을 이용하여 .env 파일을 설정해준다

EC2에 Postgresl 설치하는 법

sudo apt-get update -y
sudo apt install postgresql

psql --version

PostgreSQL 서버 설정 파일인 postgresql.conf를 엽니다.


sudo nano /etc/postgresql/{version}/main/postgresql.conf

postgresql.conf 파일 내에서 listen_addresses 항목
주석 처리된(#로 시작하는) 부분을 찾아서 주석을 제거하고, 다음과 같이 수정
listen_addresses = ‘*’

PostgreSQL의 pg_hba.conf 파일을 엽니다.

sudo nano /etc/postgresql/{version}/main/pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             0.0.0.0/0               md5
host    all             all             ::/0                    md5

sudo service postgresql restart

postgresql 계정을 추가

sudo -u postgres psql << 안되면 sudo su 이후에
postgres=# \password
Enter new password:
Enter it again:
postgres=#
\q

sudo -u postgres psql
postgres=# ALTER USER <username> WITH PASSWORD <'password'>;
postgres=# CREATE DATABASE <db> WITH OWNER <username>;


postgres=# \du ==> Account
postgres=# \l ==>DB list
postgres=# \c <db> ==> DB 접속
SELECT * FROM <table>; ==> table 조회
psycopg2
dj-database-url
DATABASE_URL='postgresql://<user>:<password>@<host>:<port>/<db>'

pgAdmin을 활용한 postgresql 관리
Server 생성 후 connection
username, password 입력

profile
Backend Developer

0개의 댓글