aws 23

인스타그램 크롤러 개발(1)

이전 글 https://jjongsk.tistory.com/entry/Instagram-Crawler-Deployment-Using-AWS-Design Instagram Crawler Deployment Using AWS: DesignOverviewI was given the job of deploying an Instagram crawler using the GPT API to ensure stable operation for a side project currently in progress. The crawler itself has been fully developed by the PM I'm collaborating with, andjjongsk.tistory.com  개발 요구사항볼드 처리된 요구..

aws 2024.09.22

[AWS]기타 서비스

배포 도구AWS AmplifyAmplify는 개발자가 좀 더 간단하게 코드를 배포할 수 있는 방법을 제공한다. 풀 스택 개발 팀원 모두가 Amplify CLI 또는 브라우저 기반 Studio 등의 도구로 협업할 수 있다.Amplify를 통해 데이터 베이스, 스토리지, 권한 인증 등 완벽한 리소스를 구현하고 UI 디자인도 가능하다.CloudFormation 등의 서비스와 통합해 상용화 준비단계 및 상용화 단계에 맞는 배포 환경을 제공한다. Amplify 프로젝트 환경은 템플릿으로 export 한뒤 DevOps 도구에 재배포 할 수 있다.AWS Serverless Application RepositoryAWS Serverless Application Repository는 관련 리소스를 재구성해 새로운 요구사..

aws 2024.08.25

[AWS]비용 최적화 아키텍쳐

개요클라우드 기반의 개플리케이션 구현에 앞서 비용 관련한 철저한 분석이 필요하다. 또한 적절한 비용으로 리소스를 실행할 수 있게 준비했다 하더라도 낭비되는 리소스가 발생할 수 있고, 해커에 의해 예기치 못한 비용이 지출될 수 있다.비용 계획, 추적, 제어AWS 관리 콘솔 상단 결제 대시보드에서 대금, 비용 관리 대시보드를 확인할 수 있다.AWS Budgets비용 대시보드 좌측, 기본 설정에서 비용 청구에 대한 설정 페이지를 확인할 수 있다. 이를 통해 Amazon CloudWatch Alarms을 통한 경고 메시지, AWS Budgets를 통한 비용 추적을 사용할 수 있다.budgets는 실행 중인 리소스 관련 비용을 추적하며, 기준선을 벗어나면 경고 메시지를 전송한다. 리소스에 비용 할당 태그를 부착해..

aws 2024.08.22

[AWS]보안성 아키텍처

개요정보 보안의 기본 목표는 데이터의 보호, 특히 해당 데이터를 저장한 리소스 보호, 접근 보안이다. 데이터를 보호하기 위해 다음 세 가지 오류를 준수해야한다.기밀성특정 데이터에 대한 접근 권한이 있는 사람, 시스템만이 해당 데이터에 접근할 수 있어야 한다. 데이터 암호화와 ACL은 기밀성을 강화하는 주요 매커니즘이다.무결성데이터는 악의적으로 또는 우연히 변조돼서는 안 된다. 암호화를 위한 해싱, 로그 관리는 무결성을 검증하는 주요 도구다.가용성데이터를 필요로 하는 사람은 해당 데이터에 접속할 수 있어야 한다. 데이터가 무결성을 유지하고 있더라도 해커 등의 Dos 공격으로 해당 데이터에 접속할 수 없다면 가용성이 부족한 것이다.신분 및 접근 권한 관리AWS에서의 보안은 IAM에서 제공하는 신분을 기준으로..

aws 2024.08.20

AWS Certified Solutions Architect - Associate 취득 후기

개요주기적으로 함께 사이드 프로젝트를 하는 PM 친구가 최근 AI를 포함한 개발 공부를 시작하더니 갑자기 AWS 자격증 시험을 같이 보자고 권유했고 AWS의 기능을 쭉 제대로 공부해보자는 마음에 흔쾌이 수락하여 시험을 준비하게 되었다.준비 과정시험 준비는 회사를 다니며 약 3주 정도는 AWS 관련 공부, 책 읽기, 노션에 정리하는 방식으로 이론 공부를 했고 1주 정도 문제를 쭉 한 번 본 뒤에 시험을 봤다. 출,퇴근 각각 약 30분 정도 지하철에서 문서를 읽고 회사 퇴근 뒤 야근 유무에 상관없이 항상 2시간씩 공부를 하고 퇴근하는 식으로 준비했다. 주말이라고 딱히 더 공부를 하지는 않았고 주말에도 2시간 정도 공부를 진행했던 것 같다. 작년 8~9월쯤에 앞으로의 미래를 위해 회사를 퇴근한 뒤에도 반드시 ..

aws 2024.08.13

[AWS] 고성능 아키텍처

핵심 AWS 서비스의 성능 최적화컴퓨트컴퓨트 서비스의 목적은 워크로드 수요에 맞춰 신속하고 효율적으로 컴퓨트 리소스를 제공하는 것이다.EC2 인스턴스 타입ec2 인스턴스 파라미터 명세표ECUs: EC2 컴퓨트 유닛, 인스턴스 타입 간 컴퓨트 성능 비교에 유용vCPUs: 인스턴스에 할당된 가상 CPUs 수Physical Processor: 호스트 서버가 사용하는 프로세서 패밀리(예: Intel Xeon E52676v3)Clock Speed: 호스트 서버가 사용하는 클럭 스피드Memory: 인스턴스에 할당된 메모리 양Instance Storage: 로컬 인스턴스 스토어 볼륨의 크기EBS-Optimized Avaliable: 전용 I/O 처리용량에 최적화된 EBS 사용 여부Network Performance:..

aws 2024.08.10

[AWS]복원성 아키텍쳐

가용성 계산하기가용성이란 애플리케이션이 기대한 성능을 발휘하는 시간의 비율이다. 연간 가용성 비율 비가용 시간99%3일, 15시간, 30분99.9%8시간, 45분99.95%4시간, 22분99.99%52분99.999%5분가용성은 9의 개수로 표현하기도 한다. 예를들어 두 개의 9는 99%를 의미한다.전통적인 애플리케이션과 클라우드 네이티브 애플리케이션의 가용성 차이전통적인 애플리케이션의 가용성이는 기존의 Linux, Windows에서 실행되는 애플리케이션을 의미하며, 이를 AWS에 배포하려면 하나 이상의 EC2 인스턴스를 실행해야한다.예를들어 멀티 AZ 기반 RDS 배포 환경에서 EC2 인스턴스 하나에 의존해서 실행 중인 전통적인 애플리케이션의 경우를 생각해보자 이 애플리케이션의 가용성은 EC2 인스턴스 ..

aws 2024.08.06

Jenkins 빌드 최적화를 위한 멀티프로세스 개선

현재 사용하고 있는 빌더에서 번들링 작업 시 멀티프로세스를 사용하고 있지만, Jenkins 빌드 머신의 24개 코어를 충분히 활용하지 못해 빌드 시간이 오래 걸리는 문제가 발생하고 있다는 사실을 찾아냈다. 기존 빌더에서는 워커 개수를 4개로 하드코딩하여 사용하고 있었기 때문에 발생한 문제이며 이를 개선하기 위해 다음과 같은 작업을 진행했다.CPU 코어 수에 맞춘 워커 개수 증가 먼저 os.cpus().length;를 사용하여 CPU 코어 개수를 얻고, 해당 개수만큼 worker-pool의 개수를 증가시켜 효율을 높였다.const numWorkers = os.cpus().length; 청크 분배 방식 개선 위의 CPU 코어에 맞게 워커 개수를 늘리는 작업 자체는 쉬운 작업이지만 이 때 문제가 발생한 부분이..

aws 2024.08.05

[AWS]데이터 유입, 변환, 분석

AWS Lake Formation조직이 커지면 데이터가 파편화되어 저장되기때문에 분석 업무가 어려워진다 이를 해결하는 방법이 바로 데이터 레이크이다.데이터 레이크는 다양한 구조의 데이터를 수집 및 저장하는 중앙화 데이터베이스이다. 데이터 레이크에 데이터 저장 시 데이터 구조화, 정렬, 복제 등의 작업을 할 필요가 없으며, 데이터 레이크에 있는 그대로 검색, 분석, 시각화, 상관 관계 분석 작업 수행이 가능하다.AWS Lake Formation은 AWS 또는 온프레미스 어디에 있는 데이터여도 수집, 분석할 수 있는 데이터 레이크 서비스이며 또 다른 서비스인 AWS Glue를 이용해 Extract, Transform, Load 작업 즉 데이터 추출, 변환, 로딩 작업을 수행한다. AWS Glue는 Apach..

aws 2024.08.04