CloudWatch 에이전트를 손쉽게 설치하는 방법

AWS에서 EC2에 CloudWatch 에이전트를 설치하는 두 가지 방법에 대해서 알아보고 자동 설치를 위한 방법과 이점을 공유하고자 합니다. 기존 OpsNow의 한 서비스에서 진행하던 수동 설치 방법이 어떻게 대체될 수 있는지를 보시면서 도움되기를 바랍니다. 수동 설치 먼저, 사전에 준비한 CloudWatch 에이전트의 설정에 대한 config.json 파일을 EC2로 옮기고, 링크에서 해당하는 OS에 따른 에이전트 설치 파일을 다운로드 합니다. 다운로드한…

Continue reading CloudWatch 에이전트를 손쉽게 설치하는 방법

Maven 또는 Gradle 프로젝트를 도커 이미지로 빌드하기

많은 고객들이 기존 온프레미스 환경에서 클라우드로 이전하였음에도 서비스 형태나 어플리케이션 배포는 기존 레거시 형태를 사용하는 경우가 많습니다. EC2를 직접 생성하고 그 안에 SSH로 접속해서 어플리케이션을 배포하는 방법은 EC2를 온디맨드로 사용할 수 있다는 것 외에는 크게 달라진 것이 없습니다. 기존 어플리케이션을 도커로 만들게 된다면, 도커 기반의 다양한 기능과 서비스를 이용하여 좀 더 배포에 용이한 CI/CD 구조를…

Continue reading Maven 또는 Gradle 프로젝트를 도커 이미지로 빌드하기

신규 발표된 EBS gp3로의 전환

2020년 AWS re:Invent에서 발표된 새로운 소식들 중에 하나가 바로 EBS (Elastic Block Store)의 신규 볼륨 타입인 gp3 (General Purpose SSD v3)에 대한 발표 입니다. 그리고 이 소식을 접하자마자 OpsNow에서는 기존 EBS를 gp2에서 gp3로 전환하기 위한 여정을 시작했습니다. 이는 gp3가 가격과 성능 모든 면에서 유리하기 때문이기도 하고, 용량과 IOPS, 처리량 (Throughput)을 분리하여 조절할 수 있기 때문입니다.…

Continue reading 신규 발표된 EBS gp3로의 전환

AWS에서 프라이빗 도메인 사용하기

AWS에서는 어떤 웹 서비스를 구현할 때 3 계층 구조 (3 Tier Architecture) 를 따르도록 권장하고 있습니다. 기본적으로 사용자에게 노출되는 웹 서버, API, 그리고 데이터베이스 순서대로 계층을 구분하고, 각 계층은 인접한 계층으로만 엑세스가 가능하도록 제한함으로써 보안을 강화하는 구조입니다. 서비스의 규모가 점차 커지게 되면 여러 계정 혹은 VPC를 이용하여 각 서비스의 모듈을 별도로 개발하고 이런 모듈들을 모아서…

Continue reading AWS에서 프라이빗 도메인 사용하기

암호화된 EBS 스냅샷을 다른 계정에 공유하기

AWS에서 Best Practice로 강조하는 Encryption at Rest를 지키기 위해서는 EBS (Elastic Block Store) 볼륨을 기본적으로 암호화하는 것이 좋습니다. 암호화 키는 KMS (Key Management Service)에서 제공되는 고객 관리형 키와 AWS 관리형 키, 두 가지가 있습니다. 이처럼 EBS 볼륨을 암호화하는 것은 보안을 향상시키는 좋은 방법이지만 EBS의 스냅샷을 공유하기 위해서는 추가적인 과정을 요구하게 됩니다. 이번 글에서는 이러한 EBS…

Continue reading 암호화된 EBS 스냅샷을 다른 계정에 공유하기

AWS 관리형 인스턴스를 사용해야만 하는 이유

AWS 관리형 인스턴스 (Managed Instance)는 문자 그대로 AWS를 통해서 관리하는 인스턴스를 의미합니다. 본래 EC2는 AWS에서 인프라만 제공하고 그 외의 모든 관리와 책임은 고객이 가져가는 IaaS에 속합니다. 그런데, AWS Systems Manager 라는 서비스를 이용하게 되면, EC2에 대한 일부 권한을 AWS에 위임하여 조금 더 편리하게 EC2를 관리할 수 있습니다. 관리형 인스턴스 목록에 EC2가 포함되면 크게 3가지 작업을…

Continue reading AWS 관리형 인스턴스를 사용해야만 하는 이유

다른 AWS Reseller를 이용하면서 OpsNow를 이용하는 방법!

몇 달 전에, 다른 AWS Reseller를 이용하는 고객사에서 OpsNow 사용 문의가 왔습니다. 기존 Reseller를 유지하면서 OpsNow를 사용할 때, 약간의 어려움이 있습니다. 아시는 바와 같이 OpsNow를 사용하려면, Cloud Service Provider에서 제공하는 사용 비용과 사용 자원 정보를 수집해야 합니다. 자원 정보는 IAM 정보만으로 수집이 가능한데, 비용 정보는 대부분의 경우 Reseller가 보유한 지급인 계정 (Payer Account)에 고객사의 계정이…

Continue reading 다른 AWS Reseller를 이용하면서 OpsNow를 이용하는 방법!

AWS 빌링 데이터의 타입 이해하기

AWS에서는 여러 계정을 사용하면서 발생한 비용을 하나의 계정에서 통합 결제할 수 있는 기능을 제공하고 있습니다. 이 때, 통합 결제를 이용하여 비용을 지불하는 계정이 바로 지급인 계정 (Payer Account) 입니다. 지금은 AWS Organization이 도입되면서 마스터 계정 (Master Account) 또는 관리 계정 (Management Account) 이라고 부르기도 합니다. 이처럼 지급인 계정을 이용하게 되면 연결된 계정 (Linked Account) 들에서…

Continue reading AWS 빌링 데이터의 타입 이해하기

코드에서 암호를 안전하게 사용할 방법을 찾아서…

개발을 하다가 보면 필연적으로 마주치는 문제가 있습니다. 바로 데이터베이스의 암호와 같은 민감한 데이터를 어떻게 저장할 것인가 하는 문제입니다. 코드에 하드코딩을 할 수는 없고, 다른 곳에 암호화를 해서 저장을 해도 결국 복호화를 할 또 다른 암호는 또 다른 어딘가에 있어야 하고… 그렇다고 이 과정을 무한히 반복할 수도 없겠지요. 옛날이나 지금도 가장 널리 사용되는, 안전하지 않은 방법은…

Continue reading 코드에서 암호를 안전하게 사용할 방법을 찾아서…

AWS Athena의 권한 관리와 클라이언트 접속

AWS에서는 특이하게도 매일 수집되는 빌링 데이터가 과거 데이터의 정합성을 보장하지 않습니다. 그래서 항상 한 달치 빌링 데이터 전체를 제공합니다. 매일 수집되는 데이터가 다르다는 가정 하에, OpsNow에서도 데이터를 누적하여 업데이트 하는 것이 아니라, 매번 수집된 데이터를 별도로 저장하고 있습니다. 수집된 OpsNow의 빌링 데이터는 EMR을 이용한 스파크 클러스터를 거쳐서 S3에 저장됩니다. 단순히 저장만 해놓게 되면 데이터를 분석/이용하기가…

Continue reading AWS Athena의 권한 관리와 클라이언트 접속