제일 처음 하는 AWS 서버 구축

정 승 연·2023년 1월 19일
0

AWS 서버 구축

AWS EC2로 Ubuntu 생성

  1. 인스턴스 생성
  2. Ubuntu 20.04 LTS (프리티어 사용 가능) 으로 생성
  3. 보안 그룹에 HTTP(80), Mysql, HTTPS 추가
  4. 생성한 인스턴스에 탄력적IP 할당

SSH로 EC2 접속

  1. aws의 인스턴스 또는 탄력적 ip 가서 ‘연결’ 버튼 누르면 나오는 ssh 접속 코드 복사해서 터미널에 붙여넣기
  2. ubuntu 접속 성공

Ubuntu에 nginx, mysql, php 설치

nginx

  1. sudo apt install nginx 로 nginx설치
    nginx란? 클라이언트의 요청으로부터 정적 파일 응답해주는 "웹서버"
    WAS서버의 부하를 줄일 수 있는 로드 밸런서로 활용 됨
  2. aws 인바운드 규칙에 HTTP도 추가하여 연결해줘야한다. + mysql, https도 추가 (나중에 사용)
  3. 검색창에 인스턴스 IP주소 입력하면 "Welcome to nginx!"라는 페이지가 뜬다.

mysql

  1. sudo apt installl mysql-server
  2. sudo mysql -> mysql 실행 -> exit
  3. sudo mysql_secure_installation
    여기서 많은 어려움을 겪었다. mysql root pwd를 설정해주어야한다.
    다시 Mysql 재접속해서 "alter user 'root'@'localhost' identified with mysql_native_password by 'new_password_you_want'"로
    root@localhost계정 비밀번호를 재설정 해주면 된다.
  4. 하고 나서 다른 질문들 다 Y로
    AWS 보안 그룹이란 EC2 인스턴스의 가상 방화벽 정도로 생각하면 된다.

php

  1. sudo apt isntall php-fpm php-mysql

  2. cd /var/www/html

  3. sudo vi phpinfo.php

  4. sudo service nginx restart

  5. cd /etc/nginx/sites-available

  6. sudo vi default

  7. 주석 풀어주기
    location ~ .php${
    include snippets/fastcqi.php.conf;

    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

    }

  8. 주석 풀어주고나서 sudo service nginx restart

  9. ip주소/phpinfo.php 접속

spring이랑 mysql 연결

인바운드 규칙은 외부에서 인스턴스로 들어오는 패킷에 대해, 아웃바운드 규칙은 인스턴스 내부에서 외부로 나가는 규칙이다.

Source 혹은 Target 주소와 포트에 대해 들어오고 나가는 것에 대한 필터링 정책이 바로 보안 그룹이다. 이를 이용하여 사무실 아이피 등 특정 장소에서만 인스턴스에 SSH로 접속할 수 있게 하거나, 데이터베이스 인스턴스 같은 경우 아예 외부에서는 직접 접근하지 못하도록 제한할 수 있다.

0개의 댓글