본문 바로가기

전체 글

(63)
API 캐시 도입 (@Cacheable) 동일한 데이터를 가져오면서 해당 데이터 호출하는 api 횟수가 많아 생기는 이슈가 발생하였다.해당 이슈는 캐시 처리 해서 디비 커넥션을 줄일 수 있다고 판단하였다. 이슈상황RDS 의 CPU가 갑작스럽게 치는 이슈 생김가설RDS 매일 백업이 일어난다.쿼리의 속도가 느리다.커넥션이 많아졌다. 문제의 쿼리 확인 캐시 도입 ( Cacheable / EhCache / ElastiCache )@Cacheable, @EhCache, 그리고 AWS ElastiCache는 모두 캐싱과 관련된 개념이지만, 각각의 적용 범위와 사용 목적이 다릅니다. 이를 비교하면서 설명하겠습니다.1. @Cacheable설명@Cacheable은 Spring Framework에서 제공하는 어노테이션으로, 메서드 레벨에서 캐싱을 설정하는 데 사..
Route53 : ACM 외부도메인 연동 AWS Route53 ACM 적용AWS에서 도메인을 구매할경우 co.kr은 지원이 되지 않는다.가비아 또는 후이즈 사이트에서 도메인을 구매한후 aws에 적용하는 포스팅을 해보도록 하겠다.필요한 서비스로는 aws route53과 acm이 되겠다.참고로 aws의 route53과 acm 등은 SSL 즉 https를 사용하기 위한 작업이다.  아래와 같은 순서대로 작업을 진행할 예정이다. 도메인구입 : 가비아 또는 후이즈 또는 기타사이트AWS Route53에서 호스팅영역 생성하기가비아 또는 후이즈 사이트 AWS의 네임서버 정보 입력ACM 인증서 요청하기Route53에 레코드 생성하기ACM에서 생성된 CNAME 정보 가비아나 후이즈 사이트에 연동하기최종확인 최종결과물은 아래와 같다.AWS에 외부도메인 연동완료 1..
EC2 인스턴스에 HTTPS 적용 (elb:로드밸런서:대상그룹) >> 2. elb:로드밸런서:대상그룹AWS EC2 SSL 적용하기  AWS EC2에 HTTPS (SSL)을 적용하고자 한다.적용하기 위해서는 AWS에서 필요한 요소들은 아래와같다.Elastic Load Balancing (ELB) / 로드밸런서 / 대상그룹 / Route53 / ACM / 도메인구입  아래 아키텍처 기준으로 SSL 적용을 해보도록 하겠다.SSL 아키텍처 1. 대상그룹생성AWS의 EC2 메뉴로 들어간다음 아래쪽에보면 대상그룹 이라는 메뉴가있다.(EC2 > 로드 밸런싱 > 대상 그룹)대상그룹생성 버튼을 클릭한다.대상유형은 인스턴스 를선택하고 대상그룹 이름은 "프로젝트명-target" 이라 생성하였다.만약 Spring-MVC같은 단일소스라면 target은 하나만 생성하고, 백엔드와 프론트엔드가..
EC2 인스턴스에 HTTPS 적용 (도메인 구매하고 ACM 인증서 발급하기) >> 1. 도메인 구매하고 ACM 인증서 발급하기개요HTTPS는 SSL이라는 보안 프로토콜 위에서 HTTP 통신을 하는 프로토콜을 뜻합니다. (요즘은 발전된 버전인 TLS 사용)요즘은 http로 된 주소를 찾아보기 힘들고, 서비스 중인 대부분의 웹사이트는 https 주소를 사용합니다. https는 구글 검색 엔진에 가산점이 있다. http는 브라우저에서 보안 위험 표시가 나온다.클라이언트 서버 배포 시 자주 사용하는 Vercel에서 http 주소를 지원하지 않는다. (프론트는 잘 몰라서 정확한 건 아닙니다)등 여러가지 이슈가 있습니다. 서버 개발자 입장에서, 그냥 https 사용을 염두에 두는 것이 마음이 편할 지경입니다. 하지만 처음 https 주소를 사용하고자 한다면, 과정이 꽤 길고 복잡합니다.(물..
RDS 화이트리스트 설정하기 회사에 RDS가 튀는현상 발생!!!무차별 공격으로 확인되었다.화이트 리스트를 설정하여 RDS에 회사망을 제외하고 접근자체를 막아보자!    Amazon RDS에서 화이트리스트(허용 IP 목록)를 설정하려면 보안 그룹(Security Group)을 구성해야 합니다. 다음은 RDS의 화이트리스트를 설정하는 방법입니다.1. RDS의 보안 그룹 확인RDS는 AWS 보안 그룹(Security Group)을 통해 접근을 제어합니다. 현재 RDS 인스턴스에 할당된 보안 그룹을 확인해야 합니다.AWS 콘솔에서 확인하는 방법AWS Management Console에 로그인RDS 서비스 이동인스턴스 선택 후, 연결 및 보안(Connection & Security) 탭 확인VPC 보안 그룹을 확인 (클릭하면 EC2 보안 그..
RESTful API 이란? REST APIREST API 란REST API 에서 REST는 Representational State Transfer 의 약자로 소프트웨어 프로그램 아키텍처의 한 형식 입니다.즉, 자원을 이름 (자원의 표현) 으로 구분하여 해당 자원의 상태 (정보)를 주고 받는 모든 것을 의미한다.월드 와이드 웹 (WWW) 과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.REST의 구체적인 개념HTTP URI를 통해 자원을 명시하고, HTTP Method (POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD OPERATION을 적..
REST, REST API, RESTful 특징 REST, REST API, RESTful 특징 알아보기RESTREST 정의REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다.자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.즉, 자원(resource)의 표현(representation) 에 의한 상태 전달자원(resource)의 표현(representation)자원: 해당 소프트웨어가 ..
Github + Jenkins + Docker로 빌드 Github + Jenkins + Docker로 빌드 하여 자동 배포화 하는 방법을 알아보자   저번에 Github에 Commit을 하면 Jenkins에서 다운로드와 Build를 하고 다른 EC2에 자동 배포하는 것까지 했습니다.이번에는 저번 사용하던 jenkins 서버와 docker를 사용하여 빌드 / 배포 자동화를 해보겠습니다. 저번에 Jenkins로 Build하여 jar파일을 만드는 부분까지 같습니다. [ ]Dockerfile과 jar파일로 docker image를 생성하여 docker hub에 업로드 합니다.배포서버인 ec2에 접속하여 docker hub에 업로드 되어있는 docker image를 다운받고 실행합니다.Docker HubDocker Hub을 사용하기 때문에 기본적으로 Docker H..