본문 바로가기
728x90

AWS15

[NoSQL] Docker로 EC2에 MongoDB 설치해서 NoSQL booster for mongodb에 연결하기 이번 포스트에는 AWS EC2 ubuntu 20.04 lts에 Docker를 설치하고, mongodb를 설치 및 연결해보겠습니다. NoSQL Booster for MongoDB가 없으신 분은 아래 링크를 통해 다운로드 받아주세요. https://nosqlbooster.com/downloads NoSQLBooster - The Smartest GUI Tool and IDE for MongoDB nosqlbooster.com 1. EC2 생성 EC2 에서 20.04 LTS ubuntu 생성해줍니다. 공식 홈페이지를 찾아보면 MongoDB docker로 띄우기위해 최소로 필요한 서버의 크기는 2vCore 와 4GB mem정도로 나옵니다. 2. Docker 설치 // apt 인덱스 업데이트 $ sudo apt-.. 2024. 2. 25.
[회고] 2023년을 마무리하며 회고 엄청 오랜만에 글을 포스팅하는 느낌인데.. 거의 1달만인 것 같습니다. 최근까지도 회사에서 하는 프로젝트며, 대학원 준비 같은 업무들로 바쁜 시간을 보내느라 글 포스팅하는 것이 후순위가 되어버렸습니다. 이번에도 회고록이기 때문에, 생각나는대로 한 해를 정리하면서 생각한 것들에 대해서 포스팅하겠습니다. 1. 생각나는 것들 1) 경조사 이번년도는 유독 경조사가 많았던 한 해였던 것 같습니다. 올해로 3년차, 이제 내년에 4년차가 되는데 이 시기쯤 되니 친구들 무리에서도 처음 결혼하는 친구가 나오고, 여기저기서 소식들이 많이 들려왔던 것 같습니다. 2024년도 예정된 결혼소식들이 많이 들려옵니다. 제 주변에 행복한 일들이 더 많이 생겼으면 좋겠습니다. 그러면서 생각되는게 역시 건강을 최우선 목표로 두어야 행복.. 2023. 12. 29.
[Python] AWS SES + MIME을 이용한 메일 기능 구현 소 AWS SES(Simple Email Service)란? Outbound만 가능한 AWS의 이메일 전송서비스이다. SES를 사용하는 목적은 회원들에게 프로모션 전송, 회원가입 시 이메일 확인 인증, 비밀번호 전송 등을 수행하기 위해서이며, 프리티어 기준 매일 2,000통을 보낼 수 있다. 이처럼 SES는 대량의 이메일을 발송하기에 적절한 서비스이며 발송한 이메일의 수와 데이터 전송에 대해 요금이 부과되기 때문에 저렴한 비용으로 이용이 가능 SMTP를 사용 SMTP(Simple Mail Transfer Protocol)란? 메일 전송 프로그램이 서버로 메일을 보낼 때 사용하는 프로토콜 오직 텍스트만 전송이 가능하다. 스트림 방식을 이용하여 전송한다. 한 개의 메시지를 해당 서버의 여러 수신자에게 보낼 수 .. 2023. 11. 25.
[Python] Boto3 + Airflow로 특정 기간 지난 S3 데이터 삭제하기 업무를 하면서 개인정보 데이터에 대해서 6개월이 지나면 자동으로 파기가 되는 로직을 구현해야되는 일이 있었습니다. 따라서 하루단위 배치로 6개월이 지났는지 검사하고, 지났으면 데이터를 삭제하는 로직을 구현한 것에 대해 정리해보겠습니다. 요구사항, 상세정보 및 코드 사용 라이브러리 : boto3 배치 스케줄링 주기: 매일 00:05 요구사항: 6개월이 지난 개인정보 포함된 데이터는 파기가 되어야 함 해결 방법: s3 uri경로가 s3:bucket/~~/history 혹은 latest로 되어 있고 이후에 stnd_ymd=yyyy-mm-dd 파티션으로 구별 됨 → stnd_ymd 기준 6개월이 지나면 매일매일 검사하여 삭제하는 로직 구현 코드 from airflow import DAG import boto3 .. 2023. 11. 20.
[Spark] EMR Serverless + Airflow로 spark job 제출해보기 (EmrServerlessStartJobOperator, boto3 + PythonOperator) 이번 포스트는 EMR Serverless로 전환하면서 생긴 꿀팁들과 Airflow로 EMR Serverless에 Spark job을 제출하는 것을 포스팅하려고 합니다. 이번 포스트의 목차 EMR Serverless란? EMR Serverless로 전환 이유 EMR Serverless로 전환 대상 EMR Serverless 생성 방법 EMR에 Airflow로 Spark job 제출하는 방법(EmrServerlessStartJobOperator) EMR에 Airflow로 Spark job 제출하는 방법(boto3 + PythonOperator) 전환 시 얻은 효과(성능, 비용) EMR Serverless란? EMR(Elastic Map Reduce) 서비스를 인프라 관리할 필요 없이 Serverless로서 .. 2023. 8. 27.
[AWS] Boto3 사용하기 1. S3 다루기 1. 사전 준비 Client low-level 인터페이스 service description에 의해 만들어짐 botocore 수준의 client를 공개(botocore는 AWS CLI와 boto3의 기초가 되는 라이브러리) AWS API와 1:1 매핑됨 메소드가 스네이크 케이스로 정의되어 있음 Resource high-level, 객체지향적 인터페이스 resource description에 의해 만들어짐 식별자(identifier)와 속성(attribute)을 사용 자원에 대한 조작 위주 2. 버킷 생성 import logging import boto3 from botocore.exceptions import ClientError class AWSBoto3(): def __init__(self): sel.. 2023. 4. 12.
[AWS] VPC 정리 1. AWS VPC 개념 및 용어 정리 이번 포스트에는 VPC와 관련된 용어, 개념을 정리하고 2편에서는 관련된 용어와 사용 예시에 대해 정리하겠습니다. 3편에서는 직접 VPC를 만들고 확인해보는 실습을 해보겠습니다. VPC 2편 link ↓ https://spidyweb.tistory.com/442 함께 보면 좋을 public, private subnet 나누기 페이지는 아래의 링크를 참조해주세요. 2022.11.01 - [Network & Server] - [Network] Bastion Server(Host)란? 아키텍처 및 특징,실습하기 (feat. VPC) [Network] Bastion Server(Host)란? 아키텍처 및 특징,실습하기 (feat. VPC) 1. Bastion Server(Host)란? Bastion(수호자, 보.. 2023. 2. 8.
[AWS] Landing Zone과 AWS Control Tower 정리 1. Landing Zone 1) 개념 랜딩존의 개념적인 의미는 모래 밭이 아닌 탄탄하고 안전한 착륙 지점 클라우드 사용 환경 또는 학장 가능하고 유연한 아키텍처 설계를 위한 시작점 multi account 환경과 보안적으로 안전하게 설계된 클라우드 아키텍처 컨셉 또는 패턴 → 자동화,표준화된 계정 생성 2) 필요한 이유 서비스 계정, 공통계정, 관리계정, 네트워크 계정 등의 분할이 필요 IT 운영환경에 의해 다중 계정이 필요 → 개발, 프로덕션 분리해야 함 비용 감사 / 통제 서비스 네트워크 보안 공통적으로 사용하는 기능은 표준화와 자동화에 따른 공통 기능 재사용이 필요 2. AWS Control Tower 1) 개념 AWS 랜딩존 솔루션을 사용하기 쉽도록 서비스화한 상품, 랜딩 영역의 설정을 자동화 .. 2023. 1. 31.
[AWS] IAM vs Lakeformation 권한 관리 차이 정리 1. 프로젝트를 하면서 생긴 이슈 + 해결 IAM user에 아래와 같이 athena 및 glue 권한을 다 받았는데 database 및 table list 조회 불가 1) 기존에 받은 IAM 권한 [권한 및 정책] lakeformation:GetDataAccess lakeformation:GetMetadataAccess athena:* "glue:CreateDatabase", "glue:UpdateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTable", "glue:GetTables", "gl.. 2023. 1. 31.
728x90