얼마 전에 Amazon EventBridge Scheduler가 한국 리전에 출시되었습니다. Amazon EventBridge Scheduler는 Amazon EventBridge 규칙과 기능이 거의 흡사합니다. Amazon EventBridge 규칙은 이벤트 기반 애플리케이션을 구성할 수 있게끔 해주며 Lambda, SNS, SQS와 통합하여 애플리케이션을 보다 확장성 있게 설계할 수 있습니다. 만약 매일 오후 1시에 외부 API를 호출하여 조회한 데이터를 DB에 저장하는 기능을 개발해야 한다고 가정하면 다음처럼 구성할 수 있습니다. 1. Amazon EventBridge 규칙에 매일 오후1시에 이벤트가 트리거 되게끔 설정합니다. 2. 트리거 대상을 Lambda 함수로 설정해둡니다. 3. 매일 오후 1..
AWS SES를 이용하여 사용자에게 이메일을 발송할 때 발신자 정보는 기본적으로 발신자 이메일로 설정됩니다. 그런데 발신자 정보를 발신자 이메일이 아닌 다른 값으로 세팅해줘야 하는 상황이 있을 수 있는데요. 그 방법에 대해 예제코드로 알아보도록 하겠습니다. 예제코드 HTML 삽입 미리보기할 수 없는 소스 AWS SES SDK를 이용하여 사용자에게 이메일을 발송하는 예제코드입니다. HTML 삽입 미리보기할 수 없는 소스 이메일을 발송하는 예제 테스트 코드입니다. 이제 테스트 코드를 실행하여 이메일을 발송해보겠습니다. 정상적으로 발송되었지만 보낸 사람은 발신자 이메일 주소로 표기되었습니다. 이제 이 부분을 변경해보도록 하겠습니다. 발신자 정보 변경 (영문) HTML 삽입 미리보기할 수 없는 소스 발신자 정보..
안녕하세요. 오랜만에 글을 작성하게 되었습니다. 방송통신대와 직장 때문에 여유가 없어서 글을 못올리고 있었는데 이번 주 일요일이 드디어 방송통신대 종강입니다. 다음 주부터는 시간적인 여유가 많이 생겨서 예전처럼 활발하게 활동할 수 있을 것 같습니다. 자격증 및 뱃지 제가 얼마전에 AWS Solutions Architect - Associate (SAA-C03) 자격증을 취득하였습니다. 위 사진은 자격증을 취득하게 되면 받을 수 있는 AWS SAA 뱃지입니다. 자격증을 취득하게된 이유 (1) 2023년 2월에 방송통신대를 졸업하며 학사학위를 취득합니다. 졸업요건은 130학점과 졸업논문을 작성해야 하는데 졸업논문 대신 자격증으로 대체할 수 있습니다. (2) 회사에서 Java, Spring Framework ..
현 회사에 JAVA 백엔드 개발자로 입사한 지 8개월차로 접어들었습니다. 입사 초반에는 백엔드 개발업무를 주로 하다가Amazon Web Service (AWS)도 다뤄볼 수 있는 기회를 얻게 되었습니다. 기존에는 제 개인계정으로 EC2, RDS, S3 등 간단하게 프리티어로 이용해본게 전부인데 실무에서 잘 할 수 있을지 걱정이 많았지만 일단 해보기로 했습니다. AWS 계정을 받고 처음 딱 접속을 해보니 저희 회사는 AWS의 많은 서비스를 이용하고 있었고 그 중에는 실질적으로 쓰이지 않고 리소스만 점유하고 있는 자원들도 굉장히 많았고 24시간 풀로 가동되지 않아도 될 서비스들도 24시간 풀로 서비스 되고있는 자원도 많았습니다. 그걸보고 느낀점은 사용하지 않는 자원, 또는 효율적이지 못한 자원을 제거하면서 ..
AWS의 스토리지 서비스인 S3와 관계형 데이터베이스 서비스인 Aurora MySQL를 연동하여 S3 버킷에 있는 CSV 파일로 Aurora MySQL에 대량 insert 하는 방법과 Aurora MySQL에 저장된 데이터를 S3 버킷에 CSV 파일로 추출 하는 방법에 대해 알아보자. 순서대로 진행하면 문제없이 진행할 수 있다. 환경 Amazon RDS Aurora MySQL (Private - us-east-2) Amazon EC2 (Private - us-east-2) Amazon S3 (Private - us-east-2) IAM Role 생성 Aurora MySQL에서 S3에 파일을 읽어드리고 쓰기위해 AmazonS3FullAccess 정책을 가진 Role을 생성해준다. 그리고 위사진의 ARN값을..
MFA는 Multi Factor Authentication의 약자로 우리말로 해석하면 다중 인증 이라고 부른다. MFA는 사용자 인증 프로세스에 보호 계층을 추가하는 방법으로써 계정에 액세스 할 때 지문이나 전화로 한번 더 인증절차를 거치게 된다. MFA를 적용하지 않게되면 사용자의 계정정보가 유출되었을 때 언제든지 해킹당할 우려가 있다. Amazon에서는 AWS를 사용하고 있는 기업들에 대해 자주하는 10가지 실수를 발표한 적이 있는데 그 중 하나로 MFA를 설정하지 않은 문제를 얘기할 정도로 MFA 설정을 필수로 권장하고 있다. MFA 적용하기 AWS Console에 들어가서 IAM 메뉴로 들어간다. 그리고 좌측에 있는 사용자 메뉴를 클릭하여 MFA를 적용할 사용자를 클릭한다. 그리고 보안 자격 증명..
현재 회사에서는 스테이지용 EC2 인스턴스 8개, RDS 인스턴스 1개 총 9개가 있습니다. 인스턴스들이 24시간 가동되어 비용이 적지 않게 나오고 있는데 어떻게 하면 비용을 줄일 수 있을까 고민을 했습니다. 그래서 개발자들이 업무하는 시간대에만 가동하고 퇴근 후에는 중지해놓으면 비용을 절감할 수 있다고 생각했습니다. 하지만 매번 수동으로 하게되면 리소스가 상당히 소모될 수 있습니다. AWS에서는 AWS Instance-Scheduler 라는 솔루션을 제안하는데 이 솔루션을 활용하면 EC2, RDS를 원하는 시간대에 시작 및 중지를 할 수 있게끔 해줍니다. 위 공식 문서에서는 Amazon CloudWatch, AWS CloudFormation, AWS DynomoDB, AWS Lambda 4개의 서비스를..
최근에 회사에서 AWS CloudWatch Log를 이용하여 애플리케이션에서 발생되는 로그를 볼 수 있게끔 구성하였다. 이번에는 애플리케이션이 처리하는 요청/응답에 대한 데이터를 수집하고 또 수집되는 과정에서 오류가 발생 시 원인을 쉽고 간편하게 파악할 수 있는 AWS X-RAY에 대해 알아보도록 하자. 그리고 CloudWatch에서는 CloudWatch ServiceLens라는 걸 제공해주는데 CloudWatch ServiceLens는 지표, 로그, 경보, 기타 리소스 상태정보를 한 곳에서 관리할 수 있으며 AWS X-RAY와 통합하여 애플리케이션에 대한 전체적인 서비스맵을 제공하여 한눈에 볼 수 있도록 기능을 제공한다. AWS X-RAY를 JAVA 웹 애플리케이션에 적용하기 위해서는 X-RAY SDK..
AWS EC2 인스턴스의 상태가 실행되거나 혹은 서버가 다운되었을 경우 이메일로 알람을 받아보는 기능을 구현하고자 한다. 공식문서를 보면 내용자체가 이해하기 어렵고 옛날자료들이 있다보니 정상적으로 돌아가지 않는부분도 있다. 그래서 이번에 삽질했던 내용으로 정리하고자 한다. 순서대로 정리하니 잘만 따라오면 문제없이 구현할 수 있다. ㅎㅎ AWS EC2 인스턴스 생성 EC2 인스턴스 생성하는 방법은 여기를 보면 상세히 적어두었다. 여기에서 보안그룹 설정 및 키페어로 접근하는 과정도 나오는데 이번에는 그부분은 생략하고 단순히 생성만 해두자. AWS SNS 주제 및 구독 생성 AWS Management Console에 들어가서 SNS이라고 검색후 접속하면 다음과 같은 화면이 나온다. '주제 생성' 버튼을 클릭하..
이번에는 AWS RDS 인스턴스를 생성해보자. RDS에 대해 잘 모른다면 아래링크를 참조하자. https://aws.amazon.com/ko/rds/ AWS 콘솔접속 AWS에 로그인하여 콘솔화면 검색창에 RDS를 검색해서 들어간다. AWS RDS 인스턴스 생성 데이터베이스 생성버튼을 눌러준다. 손쉬운 생성을 선택하게되면 DB엔진만 선택 후 RDS 인스턴스를 생성할 수 있으며 추가설정은 인스턴스 생성이후에 가능하다. 이 글에서는 설정들에 대한 정보를 알아보기 위해 표준생성을 선택한다. 연습용이기 때문에 프리티어를 선택한다. DB 인스턴스 식별자는 AWS 계정이 소유하는 모든 DB 인스턴스에 대한 고유이름을 작성한다. 마스터 사용자 이름과 암호는 DB 인스턴스생성 후 접속하기위한 마스터 접속정보를 적는다. ..
이번에는 AWS EC2 인스턴스를 생성해보자. EC2에 대해 잘 모른다면 아래링크를 참조하자. https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html AWS 콘솔접속 AWS에 로그인하여 콘솔화면 검색창에 EC2를 검색해서 들어간다. AWS 인스턴스 생성 인스턴스 시작버튼을 눌러준다. Amazon Linux 2 AMI를 선택하자. 위화면에서는 건드릴 부분은 없으므로 하단에 '검토 및 시작' 버튼을 선택하자 여기서 봐야될 부분은 '보안그룹' 인데 인바운드 포트 규칙을 설정할 수 있다. '보안 그룹 편집' 버튼을 누르고 들어가면 위사진처럼 나오는데 인바운드 포트 규칙을 작성할 수 있다. 설정하면 위 사진처럼 인바운드 포트 규칙이 추가된 ..
IAM 이란 Identity and Access Management (IAM) 의 약자이며 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스이며 IAM을 사용하여 리소스를 사용하도록 인증 및 권한부여가 된 대상(사용자)을 제어하는걸 의미한다. IAM 사용자를 생성하는 방식은 크게 두가지가 있는데 액세스 키 방식과 암호 방식 두가지가 있다. 액세스 키 방식은 AWS CLI나 SDK로 AWS 외부에서 AWS의 리소스들을 접근할 수 있도록 해주는 것이고 암호 방식은 AWS Management Console에 직접 로그인을 할 수 있도록 해주는 것이다. 이번글에서는 액세스 키 방식으로 IAM 사용자를 생성하는 방식과 AWS S3에 접근할 수 있게끔 Role을 부여하는 방법에 대해 알아보고자 한다..
이번장에는 S3 버킷을 생성하고 버킷내부에 객체를 생성해보자. AWS 콘솔접속 AWS에 로그인하여 콘솔화면 검색창에 S3를 검색해서 들어간다. AWS 버킷 생성하기 화면우측에 있는 버킷 만들기 버튼을 누르자 버킷이름을 입력하고 AWS 리전은 아시아 태평양 (서울)로 지정하자. 버킷이름에 대한 규칙은 여기에서 확인해보도록하자 일단 모든 사용자한테 액세스를 허용하기위해 모든퍼블릭 액세스 차단 체크박스를 해제하고 아래에있는 체크박스에 체크를 해두고 버킷만들기 버튼을 눌러 버킷을 생성하자 버킷내부에 있는 객체들의 버전을 관리하는건데 똑같은 객체가 생성될 경우 버전관리를 할지 말지 결정하는 것이다. 비활성화하면 기존객체를 덮어씌게되고 활성화하면 덮어씌워지지않고 동일한 객체가 여러개 생성이 되며 각 객체를 식별할 ..
Simple Storage Service는 AWS에서 제공하는 서비스중의 하나로 줄여서 S3라고도 부릅니다. S3는 인터넷 스토리지 서비스이며 웹상에서 원하는 데이터를 저장하고 액세스 할 수 있도록 제공합니다. S3는 주로 애플리케이션에서 이미지, 파일 등 정적 리소스들을 저장하고 조회하는데 쓰입니다. S3를 이용하는데에 있어 장점과 네가지 개념을 간단하게 소개합니다. 장점 데이터의 내구성이 뛰어나다. 필요할 때 데이터를 사용할 수 있으며 장애, 오류 등으로 데이터를 보호할 수 있다. 성능이 우수하며 쓰기 및 읽기작업에 용이하다. 퍼블릭 액세스 차단기능을 지원하여 무단 액세스를 방지할 수 있다. 애플리케이션 영역에서 특정 권한을 가진 사용자만이 데이터를 저장 및 액세스 할 수 있다. Buckets 버킷은..