Infra 27

[MAC/Linux OS] port kill - lsof 정리

증상 맥을 통해 개발하면서 port가 오류로 살아있던 적이 없었는데 처음으로 마주하여 application을 종료해야할 일이 생겼다. 구글링해서 간단히 해결 lsof 정리 lsof 는 list open files 의약자로 시스템에서 열린 파일 목록을 알려주고 사용하는 프로세스, 디바이스 정보, 파일의 종류 등 상세한 정보를 출력해 준다. 리눅스와 유닉스는 추상화된 파일 시스템(VFS - Virtual File System)을 사용하므로 일반 파일, 디렉터리, 네트워크 소켓, 라이브러리, 심볼릭 링크 등도 모두 파일로 처리되며 lsof 에서 상세한 정보를 확인할 수 있다. 유닉스마다 고유의 lsof 와 비슷한 용도의 명령어가 있지만 명령어와 옵션이 제각각이고 출력 정보가 상이하여 OS 가 바뀌면 사용하기가..

Infra 2024.01.17

Amazon SES 사용하여 메일 보내기 (3) - 이메일 인증 기능 with Spring & AWS SDK for Kotlin

Amazon SES를 통해 메일보내기 시리즈 Amazon SES 사용하여 메일 보내기 (1) - SES란? Amazon SES 사용하여 메일 보내기 (2) - 아마존 SES 설정 Amazon SES 사용하여 메일 보내기 (3) - 이메일 인증 기능 with Spring & AWS SDK for Kotlin - 현재글 이 글에서는 이메일 인증 설정을 아~~~~~~~~주 간단하게 구현해볼 것이다. 사실 가능하다면 이 글보다 더 잘 쓰여진 글, 공식 문서가 존재하기 때문에 그것을 보는 것이 더 도움이 될 것이라 확신한다. 아래처럼 언어별로 설명서와 코드 예제가 있으므로 확인해보면 좋을 것 같다. 이메일 인증 기능 개발 시작 저는 SDK를 사용할 것이기 때문에 gradle.build.kts에 다음과 같이 의존성..

Infra/Cloud 2024.01.15

[AWS] IAM - Access Key 발급 받기

처음 AWS 프리티어를 만들고 SDK를 통해 AWS를 사용하려면 인증을 위해 Access Key가 필요하다. 이 글에서는 그 방법을 정리해보고자 한다. 먼저 IAM이란? IAM(AWS Identity and Access Management)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스다. 우리는 IAM을 사용하여 리소스를 사용할 수 있도록 제어할 수 있다. 팀에서의 보안 주체가 팀 인원들에 대해 인증(Authentication)과 권한부여(Authorization)을 받아 리소스에 대한 요청을 승인하는 것이 IAM의 주요 동작 방식이다. AWS 계정을 처음 생성하는 경우에는 전체 AWS 서비스 및 계정 리소스에 대해 완전한 액세스 권한을 지닌 단일 로그인 자격 증명으로 시작한다...

Infra/Cloud 2024.01.14

Amazon SES 사용하여 메일 보내기 (2) - 아마존 SES 설정

Amazon SES를 통해 메일보내기 시리즈 Amazon SES 사용하여 메일 보내기 (1) - SES란? Amazon SES 사용하여 메일 보내기 (2) - 아마존 SES 설정 - 현재글 Amazon SES 사용하여 메일 보내기 (3) - 이메일 인증 기능 with Spring & AWS SDK for Kotlin 시작하기 전.. 이 글에서는 도메인을 발신자로 만들어 메일을 보내는 것까지만 실습을 진행합니다. 만약 수신 기능까지 원하신다면 (예를들어 피드백 메일 등..) 서울 리전이 아닌 다른 리전에서 서비스를 이용하셔야 합니다. 가능한 리전은 아래에 첨부하겠습니다. 확인 해보니 기존에는 미국 3곳에서만 가능했지만 현재는 서버가 많이 늘어난 것 같습니다. 추후에는 서울도 지원할지도.. 또한, cname..

Infra/Cloud 2024.01.14

Amazon SES 사용하여 메일 보내기 (1) - SES란?

Amazon SES를 통해 메일보내기 시리즈 Amazon SES 사용하여 메일 보내기 (1) - SES란? - 현재글 Amazon SES 사용하여 메일 보내기 (2) - 아마존 SES 설정 Amazon SES 사용하여 메일 보내기 (3) - 이메일 인증 기능 with Spring & AWS SDK for Kotlin 아마존 SES는 사용자의 이메일 주소와 도메인을 이용해 이메일을 보내고 받기 위한 쉬운 기능을 제공하는 서비스이다. 필자가 이메일 인증 구현을 프로젝트로 진행할 때는 유명 검색엔진 메일 서버의 SMTP 설정을 사용해 기능을 구현했었는데 현업에서는 클라우드의 메일 서비스를 사용한다고 하기에 기능을 구현하고자 공부를 위해 정리하고자 한다. 이 글에서는 아마존 SES에 대해 공부해보고 정리하는 시..

Infra/Cloud 2024.01.14

[Elasticsearch] 엘라스틱서치 운영 준비

엘라스틱서치 운영 준비 - 아키텍처 구성 이 글은 `당신의 신문, 당신` 프로젝트를 진행하면서 간단한 Elasticsearch 클러스터를 구성하면서 진행된 일련의 과정을 정리해놓은 글입니다. Elasticsearch를 제대로 원활하게 사용하기 위해서는 높은 하드웨어 스펙을 가지고 있어야 하지만 신입 개발자를 준비하는 상태로 높은 스펙을 사용하기에는 경제적 문제가 있어 극한의 환경에서 구성하여 사용하였습니다. Elasticsearch의 구성과 하드웨어 스펙은 다음과 같습니다. 하드웨어 스펙과 구성 아키텍처 Docker를 이용하여 작은 인스턴스에 3개의 노드를 사용했던 지난 글에서 언급했듯 Elasticsearch를 사용하기 위해서는 하드웨어의 스펙이 어느정도 받쳐주어야 합니다. 그렇기 때문에 어떻게 이런 ..

Infra/Elasticsearch 2022.10.13

[Elasticsearch] 엘라스틱서치 설치

엘라스틱 서치를 사용하는 방법은 여러가지가 있다. 단순히 공식 홈페이지나 Amazon에서 제공하는 Elastic Cloud를 사용하거나 특정 OS에 직접 오픈소스를 설치하여 사용하는 방식, 그리고 이전 글에서 안내했던 Docker를 사용한 방법이 있다. 여기서 설명할 방식은 서비스를 사용하는 것이 아닌 직접 오픈소스를 사용해 설치하고 구성하고 운영하는 방식을 정리하고자 한다. 우리에게 주어진 방식은 본인의 로컬에서 사용하는 방식과 AWS EC2와 같은 서버, 인스턴스에 설치하여 사용하는 방법이 있다. 전자는 공식 홈페이지의 윈도우 설치 파일을 다운로드 하고 zip파일을 압축 해제하여 사용하고 후자는 우리 프로젝트와 같이 특정 server에 설치하여 사용한다.(Docker 방식은 이전글을 참조하면 좋을 것..

Infra/Elasticsearch 2022.10.12

[Elasticsearch] Ubuntu, Docker-compose를 이용한 Elasticsearch 환경 구성

Ubuntu Docker 를 이용한 Elasticsearch 환경 구성 당신의 신문 프로젝트를 진행하면서 최초에는 Docker에 Elasticsearch 및 kibana 컨테이너를 올려 환경을 구성하려 했었고, docker-compose를 통하여 구글 클라우드 플랫폼에 e3.medium(2 core, 4gb ram)의 환경으로 es node 3개 및 kibana를 올렸습니다. 다만, 미숙한 실력과 운영상의 문제가 있다고 판단하였고, 빠른 프로젝트 진행을 위해 직접 ES를 설치하여 진행하는 방식으로 선택했습니다. 또한, 이 문서 마지막에서 보이듯 작은 인스턴스에 많은 양의 node를 올림으로서 Elasticsearch 사에서 추천하는 최소 권장 사양을 하드웨어 스펙이 제공하지 못하므로 서비스의 원활한 운영..

Infra/Elasticsearch 2022.10.12

[Elasticsearch] 엘라스틱서치의 기본

도큐먼트와 인덱스 엘라스틱 서치는 인덱스(index)와 도큐먼트(document)로 이루어져 있습니다. 엘라스틱서치를 이해하기 위해서는 이 두가지 개념이 무척이나 중요한데 인덱스는 데이터를 저장하는 논리적 구분자로, 도큐먼트가 실제 데이터를 JSON 형식으로 저장하게 됩니다. 보통 운영상에서 프로젝트를 구현할 때 하나의 클러스터를 생성하게 될것입니다. 그리고 그 클러스터 내부에는 데이터의 성격에 따라 여러 개의 인덱스가 들어있을 것입니다. 하나의 인덱스는 여러 개의 JSON 형식의 데이터를 가진 도큐먼트로 이루어져 있고, 도큐먼트(Document)는 복수의 필드를 가집니다. 도큐먼트(Document) 도큐먼트는 데이터가 저장되는 기본 단위로 JSON으로 저장됩니다. 다음과 같이 하나의 도큐먼트는 여러 필..

Infra/Elasticsearch 2022.10.11

[Elasticsearch] 엘라스틱서치의 역사

엘라스틱서치(Elasticsearch)가 첫 등장했을 때는 지금과 같은 형태의 빅데이터 파이프라인을 구성하는 플랫폼으로 성공하리라 예상하지 못했습니다. 엘라스틱서치가 탄생한 배경은 명확했는데 사이트 내에서 전문 검색(full text search) 기능을 제공하는 강력한 소프트웨어의 필요성입니다. 인터넷 검색 서비스는 계속 등장했지만 이 기능에 대한 구현체는 기업의 저작권이 있기에 공개하지 않았고, 일반적인 개발자가 검색에 대한 로직을 알기 쉽지 않았습니다. 따라서 검색 서비스를 구현해야하는 회사들은 벤더의 비싼 솔루션을 사용할 수 밖에 없었습니다. 루씬(Lucene)의 등장 루씬이라는 이름은 1999년 하둡(Hadoop)으로 유명해진 더그 커팅의 부인의 중간 이름에서 따왔습니다. 루씬은 더그 커팅의 다..

Infra/Elasticsearch 2022.10.10