AWS EC2 구성

duckbill413·2022년 12월 23일
0

AWS 서버 구성하기

목록 보기
1/6
post-thumbnail

AWS를 활용하여 서버 구성하기

2023-05-02 업데이트

  • Ubuntu OS 활용

1. EC2 인스턴스 생성

  1. [인스턴스] 탭 클릭 (인스턴스 위치: 서울)
  2. 인스턴스 시작 버튼 클릭
  3. [이름 및 태그] 에서 인스턴스 이름 설정 하기
  4. [애플리케이션 및 OS 이미지] 에서 ubuntu 설정하기
  5. [인스턴스 유형]에서 프리티어 기준 t2.micro 선택
  6. [키 페어] pem을 사용하여 키페어 사용(보안에 신경 쓸것)
  7. [네트워크 설정] 보안그룹을 활용 SSH 트래픽은 모두 허용하기 보다는 내 PC의 IP를 등록하여 사용 권장
  8. [스토리지 구성] 프리티어로 최대 30Gib 까지 이용 가능
  9. 인스턴스 시작

2. 탄력적 IP 구성

탄력적 IP 생성

  1. [네트워크 및 보안] 탭 클릭
  2. [탄력적 IP 주소 할당] 버튼 클릭
  3. 추가적인 설정 없이 [할당] 버튼 클릭

인스턴스에 IP 할당

  1. 생성된 탄력적 IP 주소에 기존에 생성한 인스턴스 할당
  2. 프라이빗 IP 주소 선택
  3. [탄력적 IP 주소 연결]을 이용하여 기존에 만들어준 EC2 인스턴스와 연결해 준다. ( 프리티어 기준 1개 까지 이용 가능, 연결해주지 않을시 과금 발생 가능)

3. 보안 그룹

  1. 인스턴스를 구성하면서 생성한 보안 그룹에 접속
  2. 인바운드 규칙 수정
  3. 사용자 지정 TCP - 8080 포트를 규칙 추가 (내 IP )
  4. HTTP/HTTPS 의 모든 IP주소를 열어준다.
  5. SSH - 22 접속 IP로는 내 IP만 열어준다.
  6. (추가) 인스턴스에 접속하기 위한 추가 IP를 SSH에 추가

4. 인스턴스 접속(window)

  1. 윈도우 접속의 경우 putty를 사용하여 접속하여야 한다.

  2. WinSCP 설치

  3. Putty 설치

  4. 세션을 추가해 준다.
    호스트 이름: 인스턴스의 탄력적 IP 주소를 입력해 준다.
    사용자 이름: 인스턴의 기본 이름(ubuntu)

  5. 고급탭 → SSH → 인증 → 개인키 파일 에서 기존에 저장한 pem키를 ppk로 변환하여 등록하고 확인 버튼을 눌러준다.
    (pem → ppk 변환은 puttygen을 활용할 수 있다. 모든 파일에서 .pem파일을 선택하고 등록하면 간단하게 변환해준다.)


잠깐!!

Docker을 사용해서 배포한다면 여기까지만 해도 됩니다!!!


5. nginx, mysql, php 설치

가. apt 업데이트

  • sudo apt update

나. nginx 설치

  • sudo apt install nginx
  • nginx -v (nginx 설치 버전 확인)

다. mysql 설치

  • sudo apt install mysql-server mysql secure 구성
    • sudo mysql_secure_installation
    • Disallow root login remotely는 외부 접속을 위하여 ‘n’ 체크,
      이외의 항목은 ‘y’로 허용

라. php 설치

php-fpm, php-mysql 설치

  • sudo apt install php-fpm php-mysql

6. nginx - php 연동

  1. php 기본 폴더 위치 이동
    • cd /var/www/html
  • php 기본 예제 파일 생성
    • sudo vi phpinfo.php

      php 파일 생성

      ```php
      <?php
      	phpinfo();
      ?>
      ```
  1. nginx - php 연결
    1. nginx 기본 폴더 위치 이동
      • cd /etc/nginx/sites-available
    2. nginx 설정 파일 열기
      • sudo vi default
      • nginx default 파일 설정
        nginxDefault
        php 연동을 위하여 파일 설정
        • include 주석 해제
        • fastcgi_pass 주석 해제 및 php 버전 수정
  2. php 연동 실패시 추가 설정
    • nginx php 호환 추가 설치
      • updatedb
      • sudo apt install php-curl php-xml php-gd php-mbstring php-mysql
      • sudo apt install php-bz2 php-zip php-json php-readline
    • php.ini 구성 파일 업데이트
      • locate php.ini
      • sudo nano /etc/php/8.1/fpm/php.ini
      • php.ini 파일 수정
        file_uploads = On
        
        max_execution_time = 300
        
        memory_limit = 256M
        
        post_max_size = 32M
        
        max_input_time = 60
        
        max_input_vars = 4440
        위의 항목을 수정

7. 기타 명령어

  • nginx 관련 명령어 nginx 수정 후 테스트
    • sudo nginx -t

      nginx 재시작

    • sudo service nginx restart

  • mysql 관련 명령어
    • mysql 접속 방법
      • sudo mysql -u root -p
    • mysql restart
      • sudo service mysql restart
  • php 관련 명령어
    • php fpm restart
      • sudo service php8.1-fpm restart

Error Correction

mysql_secure_installation 비밀번호 설정시 오류 메시지 출력

  1. mysql -u root -p
  2. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';

비밀번호 strength 타입을 medium 혹은 string으로 설정시 설정 변경 방법

  • 비밀번호 정책 비밀번호 정책 선택 0 : 길이 8 이하 1 : 길이 8 이하, 숫자, 대/소문자 혼합, 특수 문자 사용 2 : 길이 8 이하, 숫자, 대/소문자 혼합, 특수 문자, dictionary 파일 사용
  1. mysql -u root -p
  2. mysql> SHOW VARIABLES LIKE ‘validate_password%’;
  3. mysql> SET GLOBAL validate_password.policy=LOW;
  4. mysql> exit
profile
같이 공부합시다~

0개의 댓글