전체 글 123

Ubuntu - Hostname 변경하기

기존의 인스턴스를 냅두고 프로젝트에 필요한 서버를 새로 만들기 위해 새로운 인스턴스를 생성하였더니 다음과 같이 ip로 이름이 뜨는 것이 직관적이지 않아 변경하기로 했다.(AWS는 ip로 설정되는 듯하고 GCP는 생성한 인스턴스 이름으로 생성되는 것 같다.) 순서 1. 다음코드 입력하면 아래 그림과 같이 vi 가 뜨게 되는데 localhost를 원하는 이름으로 변경하면 된다. sudo vi /etc/hosts 2. `a`를 눌러 insert 모드로 들어가서 원하는 이름으로 변경한 후 `esc`를 누른 후 수정모드에서 빠져 나온다. 3. 빠져 나온후 `:wq`를 입력하여 `저장 후 나가기` 명령어 입력 4. 다음 명령어 입력 sudo vi /etc/hostname 5. 다음과 같은 ip-0000000 으로 ..

Infra/Cloud 2022.09.20

ssh-keygen을 이용한 SSH - RSA key pair 생성 방법 + GCP

구글 클라우드 플랫폼(GCP)를 90일동안 300 달러 크레딧만큼 무료로 사용해볼 수 있어 테스트 서버를 사용해보기 위해 인스턴스를 만들었다. 이후 AWS처럼 SSH 접속을 위해 key를 만들 수 있는 곳이 있는지 확인해 보았으나 아마존과는 달리 없는 것 같아 ssh 키를 만들 수 있는 방법을 확인했다. 1. ssh-keygen으로 RSA 키 만들기 cmd 창에서 다음 커맨드를 입력하면 된다. #windows 10 이상 ssh-keygen -t rsa -f C:\Users\WINDOWS_USER\.ssh\KEY_FILENAME -C USERNAME -b 2048 #Linux or macOS ssh-keygen -t rsa -f ~/.ssh/KEY_FILENAME -C USERNAME -b 2048 입력하..

Infra/Cloud 2022.09.08

아마존 인스턴스별 차이점

처음 AWS를 접하게 되면 프리티어로 사용하다보니 t2.micro하게 되었는데 elasticsearch를 설치하기 위한 서버를 고르다보니 서버별 차이점이 궁금하게 되어 찾아보게 되었습니다. 당연히 넘버링에 의해 t2가 t3보다 성능이 떨어지고 가격적인 면에서 더 저렴할 것으로 생각했는데 오히려 반대이길래 무슨 차이가 있는지 궁금해졌습니다. 인스턴스 계열 특징 AWS에서 우리가 인스턴스를 구매하게 되면 24시간 같은 성능을 제공할 것이라고 생각되지만, 그렇지 않습니다. 서비스를 제공하면서 생기는 트래픽이라는 것은 서비스를 사용하는 주체에 따라 몰리는 시간대가 정해질 것 입니다. 예를들어서 위의 그림처럼 시간대에 따라 cpu의 사용양이 달라지겠지요. 이런 상황에서 아마존은 크레딧과 버스트 기능이라는 정책을 ..

Infra/Cloud 2022.09.07

4. 엔티티 매핑

엔티티 매핑 객체와 테이블 매핑 @Entity @Entity가 붙은 클래스는 JPA가 관리하며 엔티티라 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션이 필수이다. 주의 기본 생성자는 필수(파라미터가 없응 public 또는 protected 생성자) 리플렉션같은 다양한 기술을 사용하기 때문에 기술 스펙으로서 기본 생성자가 필요함 final 클래스, enum, interface inner 클래스 사용 x 저장할 필드에 final 사용 X @Entity 속성정리 @Entity(name): JPA에서 사용할 엔티티 이름을 정할 때 사용함. 기본값: 클래스 이름을 사용하며 가급적 기본값을 사용해야 헷갈리지 않는다. @Table: name: 매핑할 테이블 이름(기본값: 엔티티 이름 사용..

Spring - Paging 처리

Pagination 본인은 전통적인 서블릿 JSP 기반 프로젝트에서 페이지네이션을 하기 위에 List를 받아와 나누어 사용하는 Paging 알고리즘을 이용하여 해본 경험 뿐이 없었다. Pagination을 깔끔하고 이쁘게 만들려면 상당히 복잡했던 기억이 있다. 이 후 Spring을 유튜브를 통해 처음 공부하면서 스프링에서 표준화한 Pageable 객체를 처음 접했고, 이런 방법이 있구나 하면서 신기해 했던 기억이 난다. Spring Data JPA를 통해서 Paging을 할 것이므로 먼저 문서를 찾아보기로 했다. 1. Spring Data JPA 공식 문서 Page 검색해보기 검색해보니 현재 기준 대략 105건 정도가 나온다. 1. 3.4.4. Special parameter handling 첫번째로 다..

Web Dev/Spring 2022.08.22

Travis CI 배포 자동화 (3) - Travis CI, AWS S3, CodeDeploy 연동

이전 글 읽으러 가기 Travis CI 배포 자동화 (1) - Travis 설정하기 Travis CI 배포 자동화 (2) - S3 버킷 Travis CI, AWS S3, CodeDeploy 연동 이번 글에서는 사용자를 만들었지만 역할을 만들어 보겠습니다. IAM 에서 사용자와 역할은 어떤 차이가 있을까요? 역할 사용자 - AWS 서비스에만 할당할 수 있는 권한 - EC2, CodeDeploy, SQS 등 - AWS 서비스 외에 사용할 수 있는 권한 - 로컬PC, IDC 서버 등 역할 만들기 다시 AWS IAM으로 돌아와 `역할 만들기` 해보겠습니다. 다음 사진의 역할 만들기를 클릭해주세요. 지금 만들 권한은 AWS 내부에서 EC2가 S3에 대한 접근을 하는 것이므로 역할을 만들 것입니다. AWS 서비스를..

Infra/CI&CD 2022.08.21

Travis CI 배포 자동화 (2) - S3 버킷

이전 글 읽으러 가기 Travis CI 배포 자동화 (1) - Travis 설정하기 배포 자동화 모식도 간단하게 피그마를 이용하여 Travis와 S3가 어떤 역할을 하고 어떤 방식으로 배포 자동화가 이루어지는 지 책에 있는 그림을 다시 그려보았습니다. Travis CI와 S3 연동 이제는 위 모식도에서 1번을 위하여 준비합니다. AWS CodeDeploy에서 바로 빌드하고 배포하는 방법도 있습니다. 하지만 배포와 빌드를 분리하여 빌드없이 배포하고 싶을 경우(기존의 배포 파일을 재사용)를 대비해 이렇게 분리하여 자동화 흐름을 만든다고 합니다. 그리고 S3를 사용하는 이유는 배포를 위한 CodeDeploy에는 `저장`기능이 없습니다. 따라서 우리가 빌드한 JAR 파일을 보관할 곳이 없고 배포 파일 보관 저장..

Infra/CI&CD 2022.08.21

Travis CI 배포 자동화 (1) - Travis 설정하기

Travis로 CI를 해보기에 앞서 간단한 용어들을 정리하고자 합니다. 간단 용어 정리 CI/CD란 무엇이며 왜? 하는가? CI/CD is a method to frequently deliver apps to customers by introducing automation into the stages of app development. The main concepts attributed to CI/CD are continuous integration, continuous delivery, and continuous deployment. -- Red Hat Article [what is CI/CD?] CI CI란 지속적인 통합(Continuous Integration)을 의미합니다. 지속적인 통합이란 말을..

Infra/CI&CD 2022.08.21