분류 전체보기
-
[Linux]AWS EC2 서버에 SpringBoot 배포Server 2021. 10. 13. 09:30
현재 사용하는 EC2 서버가 성능이 좋은 편이 아니기 때문에 로컬에서 작업한 후에 WinSCP를 이용해 /var/www 경로에 옮겨주었다. 이때 깃 클론을 사용해도 된다. 깃 클론 사용시 필요한 명령어는 아래와 같다. $ cd /var/www $ git clone {옮기고자 하는 템플릿 url} 1. JDK 설치 $ javac $ sudo apt install default-jdk javac 명령어로 설치된 jdk가 있는지 확인한 후에 JDK를 설치하였다. 2. Nginx 설정 sudo vi /etc/nginx/sites-available/default root 경로를 /var/www/spring_boot로 변경한다. (각자 관리하고 있는 서버의 위치를 작성하면 된다.) 프록시 패스를 설정하기 위해 pr..
-
[Linux]AWS RDS 서버 구축Server 2021. 10. 2. 16:09
앞서 AWS EC2를 구축했을 때에는 EC2 인스턴스 안에 nginx, php, MySQL를 모두 설치하고 EC2에서 데이터베이스를 관리했다. 이번 포스팅에서는 기본 서버와 데이터베이스 서버를 분리하는 실습을 진행할 예정이다. 데이터베이스를 분리함으로써 얻을 수 있는 이점은 아래와 같다. N : 1의 확장성 WAS(Web Application Server)에서 처리할 부분이 DBS(Database Server)에 비해 상대적으로 많은 경우 WAS와 DBS를 분리하는 것이 좋다. WAS와 DBS의 성능을 높이기 위해선 기술적 방법이 각기 다르게 적용되어야 하므로 하나의 단일 서버로는 성능을 높이는데 한계가 있다. 즉, 서버의 분리를 통해 자원을 WAS 서버와 공유하지 않고 독점적으로 사용하므로 더 높은 성..
-
AQueryTool을 이용한 DB 설계, 한 방 쿼리 작성Server 2021. 9. 27. 10:27
ERD Entity Relationship Diagram의 약자로, 개체-관계 다이어그램이라고 불린다. ERD는 데이터들의 관계를 시각적으로 표현하는 도표이며 몇 가지 규칙이 있다. 여기서 A는 부모, B는 자식을 의미하며 "~로 구성되어 있다."는 "~을 포함하고 있다."와 같은 의미이다. 그림에는 없지만 실선과 점선으로 관계를 구분하는데 실선은 부모 테이블의 기본키를 자식 테이블이 가지고 있으며 이를 기본키로 사용하는 경우에, 점선은 부모 테이블의 기본키를 자식테이블이 가지고 있지만 이를 기본키로 사용하지 않는 경우에 사용한다. 넷플릭스 ERD 설계 넷플릭스 UI를 참고해 직접 ERD 설계를 해보았다. 넷플릭스의 실제 ERD와는 전혀 관련없다. ERD 설계 시 주의사항 ◾ User의 status는 활..
-
[Linux] WinSCP 파일 전송 시 권한 오류 해결Server 2021. 9. 24. 23:46
무료 웹 템플릿을 다운로드한 후 파일들을 드래그 앤 드롭으로 옮기려 했지만 아래와 같은 권한 오류가 발생했다. 구글링을 통해 가장 먼저 설정을 아래와 같이 변경해주었는데 오류가 해결되지 않아 다른 방법을 찾아보았다. 1. 루트 관리자 계정 생성 $ sudo passwd $ su - 첫 번째 명령어를 입력하고 나면 패스워드를 입력하라고 뜨는데 자신이 설정하고자 하는 값을 입력하면 된다. 두 번째 명령어를 입력하면 루트 관리자로 로그인되는지 테스트를 해볼 수 있다. 2. ssh 설정 파일 편집 $ vi /etc/ssh/sshd_config 설정 파일을 열고 PermitRootLogin yes #StrictModes yes로 수정한다. (노란색 박스로 표시한 부분이다.) 3. 암호화 키 복사 $ sudo cp..
-
[Linux]Subdomain, Redirection 적용Server 2021. 9. 22. 15:28
서브 도메인 적용하기 1. 서브도메인 추가 서브도메인을 추가할 때 타입은 'CNAME'으로 설정하고 호스트에는 서브도메인으로 이용할 'test'를 입력했다. 2. Nginx 설정 파일 수정 $ cd /var/www/html $ sudo mkdir test $ cd test $ sudo vi test.php 설정 파일을 수정하기 전에 /var/www/html 디렉토리에 하위 디렉토리 'test'를 생성하고 test 디렉토리에 'test.php'파일을 생성해야 한다. 필자는 php 정보를 출력하는 파일을 작성했지만 자신이 원하는 파일을 만들어도 된다. $ sudo vi /etc/nginx/sites-available/default nginx 설정파일에 노란색으로 표시 부분만 추가로 작성한다. ( 서브도메인에..
-
[Linux]HTTPS 적용 / Let's EncryptServer 2021. 9. 22. 15:28
HTTP HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다. 하지만 HTTP는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이였기 때문에 보안상 취약한 점이 있어 HTTPS 가 등장하게 되었다. HTTPS HTTP에 데이터 암호화가 추가된 프로토콜이다. HTTPS는 HTTP와 다르게 443번 포트를 사용하며, 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 공개키 암호화를 지원하고 있다. 1. certbot 설치 $ sudo apt update $ sudo add-apt-repository ppa:certbot/certbot $ sudo ..
-
[Linux]phpMyAdmin 설치Server 2021. 9. 22. 15:27
phpMyAdmin MySQL을 GUI로 관리할 수 있는 무료 소프트웨어 도구이다. phpmyadmin 을 사용하면, 콘솔에서 작업하는 것보다 쉽게 DB 작업을 할 수 있다. $ sudo apt install phpmyadmin EC2 인스턴스에 접속한 뒤 phpMyAdmin을 설치한다. $ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin nginx 웹 서버가 phpMyAdmin 파일을 올바르게 찾도록 하기 위해 설치 파일에서 nginx 문서 루트 디렉토리로의 심볼릭 링크를 생성한다. $ sudo phpenmod mcrypt $ sudo systemctl restart php7.2-fpm mcrypt 모튤을 활성화하고 php7.2-fpm을 다시 시작..