[typescript] 타입스크립트를 사용하여 AWS SDK로 Elasticsearch 서비스 구성하기
AWS에서 제공하는 Elasticsearch 서비스를 타입스크립트를 사용하여 구성하는 방법에 대해 알아보겠습니다. Elasticsearch는 검색 및 분석 엔진으로, 대량의 데이터를 저장하고 신속하게 검색할 수 있는 기능을 제공합니다. 이를 효율적으로 활용하기 위해 AWS SDK를 사용하여 Elasticsearch 서비스를 설정할 수 있습니다.
1. AWS SDK 설치
먼저 타입스크립트 프로젝트에 AWS SDK를 설치해야 합니다.
npm install aws-sdk
2. AWS 자격 증명 설정
AWS SDK를 초기화하기 전에 AWS 자격 증명을 설정해야 합니다. 보안을 위해 IAM 역할 또는 자격 증명 프로필을 사용하여 AWS에 연결할 수 있습니다.
import AWS from 'aws-sdk';
// 자격 증명 설정
const credentials = new AWS.SharedIniFileCredentials({ profile: 'my-profile' });
AWS.config.credentials = credentials;
3. Elasticsearch 서비스 구성
다음으로 Elasticsearch 서비스를 구성합니다. 예를 들어, 존, 엔드포인트 및 엑세스 구성을 설정할 수 있습니다.
// Elasticsearch 서비스 생성
const es = new AWS.ES({ region: 'us-east-1' });
// 존 설정
const zone = 'us-east-1a';
// 엔드포인트 구성
const endpoint = 'search-domain-12345xyz67.us-east-1.es.amazonaws.com';
// 엑세스 구성
const accessPolicy = {
PolicyDocument: {
Version: '2012-10-17',
Statement: [{
Effect: 'Allow',
Principal: { AWS: '*' },
Action: 'es:*',
Resource: `arn:aws:es:${zone}:1234567890:domain/domain-name/*`
}]
}
};
// 엑세스 권한 설정
es.createElasticsearchDomainAccessPolicy({ DomainName: 'domain-name', AccessPolicy: accessPolicy }, (err, data) => {
if (err) {
console.error(err, err.stack);
} else {
console.log(data);
}
});
4. Elasticsearch 서비스 테스트
마지막으로 설정한 Elasticsearch 서비스를 테스트해봅니다. 예를 들어, 색인 생성 및 검색을 수행하여 정상적으로 동작하는지 확인할 수 있습니다.
// Elasticsearch 서비스 연결
const client = new AWS.ES({ region: 'us-east-1', endpoint: endpoint });
// 색인 생성
client.index({
index: 'myindex',
type: 'mytype',
body: {
title: 'Hello, World!',
content: 'This is a test document.'
}
}, (err, data) => {
if (err) {
console.error(err, err.stack);
} else {
console.log(data);
}
});
// 검색
client.search({
index: 'myindex',
q: 'test'
}, (err, data) => {
if (err) {
console.error(err, err.stack);
} else {
console.log(data);
}
});
위의 예제를 참고하여 타입스크립트를 사용하여 AWS SDK로 Elasticsearch 서비스를 구성해보세요.
자세한 내용은 AWS 공식 문서를 참조하시기 바랍니다. AWS JavaScript SDK Documentation
간단한 예제와 설명은 다음 블로그에서도 확인하실 수 있습니다. AWS SDK와 Elasticsearch