EC2 12

EC2에 Springboot 배포시 RDS연결 불가 문제

이전에는 잘 되던 배포가 갑자기 안되기 시작했다.... 갑자기라는건 없지만... 나한테는 갑작스러운 문제였다. 오류를 살펴보니 MySQL connection문제임을 알 수 있다. RDS의 MySQL을 연결해둔 상태였는데 갑자기 안됐다. 해당 문제에 대해서는 여러가지 원인이 있겠지만 나같은 경우 EC2에 올라와있는 jar파일이 RDS로 접근할 수 없었던게 이유였다. 생각해보니 전에 RDS인바운드 보안 규칙을 팀원들의 ip로 한정지었던게 생각이 났다...! 같은 VPC를 사용중이라 당연히 될 줄 알았지만 크나큰 오해였다...! EC2의 private IP를 RDS의 인바운드규칙 소스에 추가해주면 해결이 된다..! 여기서 중요한 점은 publicIP가 아닌 privateIP를 추가해줘야 한다는 것이다. 같은 ..

RDS DB 데이터 이전(MySQL)

RDS DB이관을 진행했다. 처음 RDS를 생성할 때 너무 신나서 했더니 개발용 RDS를 생성하였고.... r5.large요금을 사용해버렸다... 그 결과 이틀만에 18000원이라는 과금을 하게 되었고... 요금제를 변경하려고 했지만 변경할 수 있는 가장 저렴한 요금제가 t3.micro였다. 큰 차이가 없을 것 같아서 그대로 진행하려했지만 하루에 4천원꼴의 과금이 발생하였고 2주 프로젝트 기간을 생각한다면.... 물론 큰 돈은 아니지만 모의 프로젝트에 그만한 돈을 쓰기 아까웠다. 그리하여 멘토님의 조언대로....DB이관을 결심하였다. 중간에 실수를 하게 되면 다른 팀원들의 개발 환경에 영향을 미칠까 최대한 안하려고 했지만 어쩔 수 없었다. 내가 진행했던 프로세스의 환경은 이러하였다. RDS --> RDS..

REST, REST API란?

이번주는 REST API 설계와 구현을 할 것이다. 무작정 시작하기보단 REST API에 대해서 공부를 하는 것이 좋을 것 같다. REST 2020년 정보처리기사를 공부하며 익숙해진 단어이다. 실기를 준비하며 외웠던 REST란 uri를 통해 자원을 구분하고 그 자원을 주고 받는 형식이다. 하지만 부족하거나 틀렸을 수도 있으니 정확히 공부해보자! REST는 Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것들을 의미한다 Uri를 통해 자원을 명시하고 HTTP method를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미한다. REST구조는 3가지로 구성이 된다 자원(Resource) - URI 행위 (Verb) - HTTP ..

url로 ip입력시 도메인으로 redirect하기

주소로 ip입력시 도메인으로 redirect하는 과정을 진행해볼 것이다! ip가 1.1.1.1인 인스턴스에 도메인을 적용시킨 이후 ip로 인스턴스를 접근할 때 이를 도메인으로 바꾸는 작업이다. ex) [1.1.1.1 입력 --> abcd.com 으로 자동변경] 정말 쉽다! 서브도메인을 적용시켰던 것 처럼 nginx.conf에 Server{}부분을 추가해줄 것이다. 이전과 동일하게 /etc/nginx/에 redirect.conf라는 파일을 만들고 이를 nginx.conf파일에 include 시켜줄 것이다. redirect.conf의 코드는 아래와 같다. server_name에는 나의 ip를 넣어주고 $scheme://[이동하고자 하는 도메인]$request_uri; 으로 return 시켜준다. 아주아주 간..

AWS Nginx gabia 서브도메인 적용하기

서브 도메인이란 내가 쓰고 있는 도메인을 확장시킨 도메이다 예를들어 내가 abcd.com이라는 도메인을 구입했으면 www.abcd.com, hello.abcd.com 와 같이 비슷한 이름의 도메인을 사용할 수 있는 것이다. 나는 기존에 구입했던 도메인에 www서브 도메인을 적용시킬 것이다. 1.가비아에서 서브 도메인 설정 가비아에서 자신이 구매한 도메인의 설정창을 열어준다 [DNS 레코드 설정 --> 설정] 해당 도메인의 설정 Button 2.AWS Route53설정 가비아에서의 설정이 끝났다면 AWS에서의 설정도 해줘야한다! 우리가 설정하고 있었던 도메인 호스팅에서 CNAME유형을 더 추가해줄 것이다. 값에는 내가 사용하는 도메인의 이름을 써주고 레코드 이름의 빈칸에는 내가 가비아에서 추가했던 호스트 ..

AWS EC2 인스턴스에 도메인 연결하기

이전에 만들었던 웹서버에 브라우저로 접속하려면 ip를 입력했어야 했다. 하지만 우리가 웹을 이용하는 과정에서는 ip를 입력해서 웹페이지에 접근하지 않는다! 흔히들 생각하는 웹 주소를 이용하여 웹페이지에 접근하기 위해서 도메인 연결을 해보자 1.도메인 구입 일단 내가 사용하고자 하는 도메인을 사야한다! 나는 gabia를 이용하였다. 내가 구매한 도메인이 abcd.com이라고 가정해보자. 2.Route 53 도메인을 구매한 뒤 AWS route 53에 접속하자. [Route53 -> 호스팅 영역 -> 호스팅 영역 생성] 도메인 이름에는 내가 구입한 도메인을 넣는다 ( ex,위에서 가정한 abcd.com) 설명은 본인이 알아보기 위해 넣는 설명! 사용자들이 접근할 수 있도록 퍼블릭 호스팅 영역을 선택해주자 과..

AWS EC2, RDS를 활용한 웹 서버 구축하기(extra)- phpMyAdmin 설치하기

phpMyAdmin이란 웹 상에서 mySQL를 컨트롤 할 수 있도록 도와주는 도구인 것 같다. 굉장히 편리해보이지만 보안상의 이슈가 제법 있는 것 같다.... 언제나와 같이 yum 으로 설치를 하려고 시도했다 >>sudo yum install phpmyadmin 은 실패했다. 오류를 보면 이러하다 보아하니 yum으로는 phpmyadmin을 찾지 못하는 모양이길래 구글링! >>yum install epel-release 를해줘야한다해서 명령어를 줘봤지만 친절하게 다른 명령어를 입력하라고 알려줬다!! 그래서 넣어줬지! >>sudo amazon-linux-extras install epel 이후 다시 시도해봤다. >>yum install phpmyadmin 이와 같은 과정을 거치면 /usr/share 디렉토리..

AWS EC2, RDS를 활용한 웹 서버 구축하기(3)- RDS연동, MySQL Workbench

1.EC2에서 RDS 접속 RDS구축은 이미 다 끝내놨으니 EC2에서의 접속을 해보자. 명령어는 아래와 같다. >> mysql -u [사용자 이름(master name)] -p -h [엔드포인트] 엔드포인트를 못찾겠다면! [RDS > 데이터베이스 > 자신의 데이터베이스 선택 ] 하면 정보로 엔드포인트를 볼 수 있다. 엔드포인트를 그대로 복사해서 넣으면! 접속이 되었고 show databases; 쿼리를 넣으면 처음 RDS설계할 때 첫 데이터베이스로 생성하였던 vivi_sample을 볼 수가 있다!!!! 성공적!☺️ 2. MySQL WorkBench를 사용하여 외부에서 DB접속 WorkBench는 내가 평소에 사용하던 툴이라 따로 설치 과정은 없다 😭 그리고...이 과정을 이번학기에 정말 많이했다... 교..

AWS EC2, RDS를 활용한 웹 서버 구축하기(3)- nginx, php 설치

만날 천날 apache만 쓰다가 nginx는 처음 써보기에 nginx에 대해서 간단하게 알아보았다. nginx는 apache보다 단순하고 전달자 역할만 하기 때문에 동시접속 처리에 특화되어 있다고 한다. AWS에서는 시장점유율이 44%나 되는 것으로 봐서 가볍고, 성능이 좋은 엔진이라고 할 수 있다. Apache독주에 제동을 걸만한 엔진이라고!!!!! 궁금하니까 후딱 설치해보자! nginx를 사용하기 위해서 yum 패키지 매니저를 사용할 것이기 때문에 업데이트를 해주자 --> yum update 1.nginx install 다음은 nginx 설치이다. >> yum install nginx 로 설치가 가능하다고 하지만 aws에서는 조금 다른 모양이다 (알아보니 yum으로는 nginx를 못찾는 모양이다) 아..