IT(29)
-
AWS 기반의 CI/CD 환경 구성 (GitLab, Jenkins, Codedeploy, S3)
본문에서는 오픈소스인 GitLab과 Jenkins, AWS CI/CD 서비스인 Codedeploy를 이용하여 EC2에 배포하는 CI/CD 환경을 구성한다. AWS 기반 시스템에서 어떻게 CI/CD 프로세스를 구성하는 것이 좋을지 고민하고 있고, 본문은 구성하는 후보 중 하나이다. 1. GitLab, Jenkins 연동 EC2에 Jenkins를 설치하고, 전사 GitLab에 연동한다. 우선, GitLab에 생성된 레파지토리가 준비되어야 한다. 다음과 같이, Jenkins에서 Git plugin과 GitLab plugin을 설치한다. 추후 Codedeploy, S3도 연결을 필요한다면 해당 plugin도 설치한다. GitLab과 Jenkins를 연동하는 방법으로는 액세스 토큰을 이용하거나, GitLab의 계..
2020.06.03 -
Public Cloud AWS vs NCP 비교 (Amazon Web Service vs Naver Cloud Platform)
Public Cloud 제공업체에 따라 제공하는 리소스 및 서비스는 비슷하지만, 이름이 다르다. AWS, Azure, GCP는 비교하는 자료가 많이 나와있다. 국내 NCP 비교 자료는 찾기 힘들어 직접 작성하였다. (주로 AWS를 사용하다보니, NCP에 빠르게 적응하기 위한 매핑 자료가 필요하였다.) 앞으로 서비스는 점점 더 발전할 것이고, 이 자료는 지속적으로 업데이트 되어야 한다. 서비스 카테고리 제공 서비스 AWS (Amazon Web Service) NCP (Naver Cloud Platform) 컴퓨팅 가상 컴퓨터 (서버) Amazon EC2 Server 베어메탈 서버 Amazon EC2 Bare Metal Instance (Preview) Bare Metal Server 가상전용 호스트 Ama..
2020.05.04 -
Amazon Kinesis Data Streams, Kinesis Data Firehose 이용하여 로그 데이터 수집/저장
1. 설명 1.1 Kinesis Data Streams Amazon Kinesis Data Streams는 데이터를 실시간으로 수집하고, 저장하여 데이터를 사용(소비) 할 수 있는 상태로 만든다. Kinesis Data Streams 아키텍처는 다음과 같다. Producer는 지속적으로 Kinesis Data Streams에 데이터를 푸시하고, Consumer는 실시간으로 데이터를 처리한다. Shard는 Stream에서 고유하게 식별되는 데이터 레코드 시퀀스이다. Stream은 1개 이상의 Shard로 구성된다. 각 Shard는 고정된 용량을 제공하고, Stream의 총 용량은 해당 Shard의 용량의 합계가 된다. 데이터 속도가 증가하면 Stream에 할당된 Shard 수를 늘리거나 줄일 수 있다(리샤..
2020.05.04 -
AWS Storage gateway를 이용한 EFS와 S3 간 데이터 전송
1. 설명 1.1 Storage gateway 기능 및 종류 AWS Storage Gateway는 온프레미스 환경과 AWS 스토리지 인프라 사이의 연결을 서비스한다. Storage Gateway는 3가지 종류로 선택할 수 있다. 파일 게이트웨이 : NFS 또는 SMB에서 S3에 대한 파일 인터페이스를 지원한다. 볼륨 게이트웨이 : 온프레미스 볼륨 데이터 전체를 저장하고, AWS에 특정 시점의 스냅샷을 주기적으로 저장한다. 테이프 게이트웨이 : 가상 테이프 라이브러리(VTL) 인터페이스를 통하여 테이프 기반 백업을 지원한다. 1.2 Storage gateway 작동 방식 아래는 파일 게이트웨이의 배포를 나타낸 것이다. 게이트웨이용 VM 이미지를 다운로드하여 게이트웨이의 사용을 준비한다. (EC2에 구성 가..
2020.04.23 -
Amazon Redshift 구성 및 사용
1. 설명 Redshift는 클라우드 데이터 웨어하우스이다. 데이터 작업을 빠르고 간단하게 수행하고, AWS 에코시스템에 손쉽게 연결할 수 있도록 한다. Redshift를 사용하는 일반적인 프로세스는 다음과 같다. 사용할 데이터를 S3에 적재하고, Redshift에 로드하여 데이터를 분석한다. 본문에서는 샘플 데이터(미국 항공사 데이터)를 S3에 적재하고, 이를 로드하여 데이터를 분석한다. 2. Redshift 구성 및 연결 Redshift 클러스터를 구성한다. 클러스터 식별자와 노드 유형, 노드 수를 입력한다. 데이터베이스를 구성한다. 데이터베이스 이름, 마스터 계정 이름 및 비밀번호를 입력한다. 구성할 VPC 및 보안그룹을 지정하고, 클러스터를 생성한다. 클러스터의 속성을 확인하고, 생성을 기다린다...
2020.04.09 -
AWS Lambda 기반의 공공데이터 호출 및 변환
1. 설명 공공데이터포털(https://www.data.go.kr/)에서 API를 이용해 날씨 데이터를 호출하고자 한다. 해당 사이트에서 발급받은 인증키를 넣어 브라우저로 호출하면 다음과 같은 json 형식의 결과가 나온다. 본문에서는 Lambda 함수를 이용하여 위와 같이 호출한 json 형식의 데이터를 csv 형식으로 변환하고, 이를 S3에 업로드하고자 한다. 2. 구현 Lambda Layers를 통하여 여러 함수가 공유하는 코드 또는 라이브러리 데이터를 관리할 수 있다. 본문에서는 라이브러리를 Layer에 등록하여 사용하였지만, 한정된 Layer 용량으로 필요한 라이브러리를 모두 등록할 수 없었다. Layer에 등록하지 못한 라이브러리는 따로 zip로 형태로 Lambda_function.py와 함께..
2020.04.09