라벨이 [AWS]인 게시물 표시

[AWS] Elastic Beanstalk 데이터베이스 연동 for Node js

이미지
안녕하세요. 남산돈가스 입니다.

지난 번에 이어서 Elastic Beanstalk에 대한 포스팅을 조금 더 이어가보려고 합니다.

저번 포스팅에서는 eb cli를 이용하여 로컬 작업환경에서 유연하게 eb를 컨트롤하는 법을 알아 보았습니다.

이번 포스팅에서는 Elastic Beanstalk 환경에서 데이터베이스(RDS)를 생성하고, 직접 연동하는 법을 소개 해드리려고 합니다.


연동 예제는 Node js기반으로 설명하고, Node js 에서의 DB 접속은 sequelize 라는 npm 모듈을 이용하여 설명드리겠습니다.

먼저, 지난 포스팅에서 이용했던 eb create 라는 명령어를 이용해 새로운 환경을 만들겠습니다.


eb create 명령어를 이용하여 "eb-express-staging"이라는 환경을 새로 생성하였습니다.
콘솔로 이동해보니, 환경이 정상적으로 생성 된 것을 아래와 같이 확인하실 수 있습니다.
새로 생성한 환경을 선택하고 왼쪽 탭에 구성으로 가보면, "eb-express-staging" 환경의 구성정보를 확인하실 수 있습니다. 
그 중에서 하단에 데이터베이스 항목을 보시면 설정 없이 비어있는 것을 확인하실 수 있습니다. 데이터베이스를 생성하고 연동하기 위하여 데이터베이스 영역 밑 '수정'을 클릭합니다.


데이터베이스 수정페이지에선, 현재 생성되거나, 설정되어있는 DB가 없는 경우 새로 생성할 수 있습니다. DB 엔진, 버전, 인스턴스 종류, 용량, username, password 등 기본적인 정보를 입력한 뒤 적용을 선택합니다.
적용을 누르고, 대략 10~15분이 지나면 새로운 DB가 생성 된 것을 확인하실 수 있습니다.

 이렇게 생성 된 DB는 실제 RDS 콘솔에서도 확인하실 수 있습니다. Elastic Beanstalk 콘솔에서 기본적으로 생성한 정보들 이외에도 상세 설정 정보들은 RDS 콘솔에서 변경이 가능합니다.

이제 실제 EB 환경에서 설치 된 DB 접속을 해보겠습니다.
예제로 생성한 eb…

[AWS] Elastic Beanstalk eb cli 활용하기

이미지
안녕하세요. 남산돈가스입니다.

얼마 전, Elastic Beanstalk로 손쉽게 서버를 구성해보면서, eb cli를 조금 더 유연하게 활용해볼까 라는 생각에 금주 포스팅은, eb cli 활용법에 대한 글을 작성해보려고 합니다.

선행으로 eb cli가 설치되어있다고 가정하고 포스팅을 진행하려고 하니, 아직 eb cli 설치를 하지 못하신 분은 AWS Elastic Beanstalk 명령줄 인터페이스(EB CLI) 설정하기 를 참고하시면 될 것같습니다.

eb cli 설치가 되었다면, 터미널에서 eb -h 라는 명령어를 입력해봅니다.

commands: abort Cancels an environment update or deployment. appversion Listing and managing application versions clone Clones an environment. codesource Configures the code source for the EB CLI to use by default. config Modify an environment's configuration. Use subcommands to manage saved configurations. console Opens the environment in the AWS Elastic Beanstalk Management Console. create Creates a new environment. deploy Deploys your source code to the environment. events Gets recent events. health Shows detailed environment health. init Initializes your directory with the EB CLI. Creates the applicati…

[AWS] SES 샌드박스 환경 벗어나기

이미지
지난 포스팅에서 SES 를 활용한 이메일 발송 테스트를 진행해 보았습니다.


지난 포스팅 보러가기(AWS SES 를 활용한 메일발송)


하지만 별도의 요청이 없는 경우 샌드박스 환경으로 구성됩니다.

확인된 이메일 주소로만 메일 발송이 가능한 문제가 발생하여

테스트 용도 이외에는 활용이 불가능 합니다.

실제 서비스에 적용하기 위해서는 샌드박스 환경에서 제외되도록 AWS 에 요청을 진행해야 합니다.




1. AWS 콘솔에 로그인 합니다.




2. Support Certer – Create  Case – SES Sending Limit Increase 항목으로 이동합니다.
https://console.aws.amazon.com/support/v1?region=us-east-1#/case/create?issueType=service-limit-increase&limitType=service-code-ses








3. 상세 내용을 입력 합니다.

- Region : AWS SES 서비스가 설정된 리전을 선택 합니다.

- Limit : Desired Daily Sending Quota (필요한 일일 발신 할당량) 을 선택합니다.

- New limit value : 원하는 신규 발신 한도를 입력합니다.

- Mail Type : 사용하고자 하는 이메일 발신 유형을 선택합니다.

- Website URL : 서비스 중인 웹사이트 URL 을 선택합니다. (지원센터에서 서비스 파악용도로 사용됨으로 알맞게 입력하시면 됩니다)

- My email sending complies with the AWS Service Terms and AUP (발신 이메일이 AWS 서비스 약관 및 AUP를 준수함) : Yes 선택

- I only send to recipients who have specifically requested my mail (내 메일을 요청한 수신인에게만 보내기) : Yes 선택

- I have a process to handle bounces and complaints (반송…

[AWS] CodeStar를 이용하여 손쉽게 프로젝트 구성하기

이미지
안녕하세요. 남산돈가스입니다.

새로운 프로젝트를 구성하기 위해선, 서버 그리고 이 프로젝트를 어떤 언어 및 프레임워크를 사용할 건 지 고려해야합니다.

일단 서버를 손 쉽게 생성할 수 있는 AWS에서 생각해보자면, 직접 EC2 인스턴스를 생성해서 서버를 구성하는 방법이 있을 것이고, 또 Lambda-API Gateway를 이용하여 서버리스 환경을 구성할 수도 있습니다. 그리고 Beanstalk를 이용하여 자동 배포를 하는 방법도 있습니다.

다음으로 언어를 살펴보면, nodejs, java, python, spring, php 등 다양한 언어와 프레임워크들이 존재합니다. ec2의 경우 직접 서버에 접속하여 해당 런타임들을 구성해줘야하는 번거로움도 생길 수 있습니다.

추가적으로, 프로젝트를 진행하며 형상관리 및 빌드, 배포까지 고려한다면 귀찮은 것들이 한 두가지가 아닙니다.

AWS에서 이런 번거로움들을 하나의 서비스로 해결해주고 있습니다.

바로 CodeStar라는 서비스입니다. 프로젝트를 생성하면, 서버, 언어 , 형상관리, 배포, 빌드까지 여러 서비스들을 한 곳에 묶어 관리해주고 있습니다.

오늘은 이 CodeStar라는 서비스를 이용해 클릭 몇 번으로 프로젝트를 생성해서 서버를 실행까지 해보려고합니다.


먼저 CodeStar의 콘솔화면으로 이동합니다. 새 프로젝트 생성버튼을 클릭합니다.


가장 먼저 보이는 것이 프로젝트 템플릿 선택화면입니다.
처음에 이 화면을 보고 정말 놀라웠던 점이 정말 다양한 언어를 제공하고, 그에 따른 템플릿도 목적에 맞게 제공하고있었기에, 사용자는 입맛에 맞는 템플릿을 선택하면 기본 셋팅이 완료 된 프로젝트를 바로 접할 수 있다는 것이었습니다.
이번 포스팅에선 간단하게 nodejs의 express 프로젝트를 Beanstalk를 이용하여 관리형 어플리케이션에 올리는 템플릿을 선택했습니다.

다음 화면에서, 프로젝트의 이름을 입력한 뒤, 형상관리에 대한 툴을 AWS에서 제공하는 AWS CodeCommit과 Github를 제공하고 있었는데 Git…

[AWS] SES 를 활용한 이메일 발송 테스트

이미지
지난 포스팅에서는 AWS Workmail 설정을 통한 이메일 사용 방법에 대해 알아보았습니다.

이번에는 API 를 통한 메일 발송 자동화 처리를 위한 SES (Simple Email Service) 에 대해 알아 보겠습니다.

AWS 콘솔에서 SES 메뉴로 이동합니다.
Work 메일과 마찬가지로 서울 리전은 지원하지 않습니다.



“Email Address” TAB 으로 이동하여 메일 발송에 사용할 이메일 주소를 설정합니다.




아마존에서 메일 인증을 위한 메일을 발송 하며
확인 전 까지는 인증대기 상태 입니다.





등록한 메일 계정을 확인해 보면 아래와 같이 메일이 수령된 것을 확인할 수 있습니다




링크를 클릭하면  인증이 완료 됩니다.





콘솔 창 에서 인증 완료 상태를 확인 할 수 있습니다.




이제 해당 메일 계정을 통해 메일 발송이 가능합니다.

계정 선택 후 “Send a Test Email” 을 선택 합니다.
받을 메일 주소 , 제목, 내용을 입력하고 “Send Test Email” 버튼을 선택 합니다.




메일이 발송 되지 않고 에러가 발생 합니다.
처음 SES 서비스를 사용하면 샌드박스 환경에서 실행이 되므로 받는사람 메일 계정도 인증이 되어야만 메일 발송이 가능합니다.




받는사람 메일도 추가로 인증을 진행 합니다.




이제 다시 메일을 발송해 보겠습니다.
받은 편지함에 메일이 정상적으로 수신 되었습니다.
도메인에 amazonses.com  이 표시 됩니다.





메일 발송이 완료 되면
“Sending Statistics” 메뉴에서 발송 통계 정보 확인이 가능 합니다.
1개 메일이 정상 발송 되었습니다.




다음 포스팅에서는  받는사람 메일 인증을 받지않고 메일을 발송 하기 위해
샌드박스 환경을 벗어나는 방법에 대해 확인해 보도록 하겠습니다.

[AWS] AWS Workmail 계정 사용법

이미지
AWS 상에서 관리되고 있는 도메인이 있다면 손쉽게 이메일 서비스 그룹을 생성하여 메일 계정을 사용할 수 있습니다.




1. 콘솔화면에서 Workmail 서비스를 선택 합니다.

아직 서울 리전은 서비스가 지원되지 않습니다.





2. 원하는 리전을 선택 후 Add organization 을 선택합니다.




3. Quick setup 을 선택하여 간단하게 조직 구성을 진행 합니다.






4.  Organization name 을 입력하고 “Create” 를 선택합니다.
Web Application URL 을 Workmal 서비스 접속을 위한 도메인 입니다.
도메인 이름을 메모해 놓도록 합니다.






5. 도메인 설정을 진행 합니다.
“Add domain” 버튼을 선택하고  Default 도메인 이외에 추가로 사용할 도메인 주소를 추가 합니다.


도메인이 추가되면
메일 서비스 사용을 위해서 DNS 서버에 아래와 같이 TXT, MX, CNAME 레코드를 추가합니다.
레코드 추가가 정상적으로 완료되면 해당 도메인을 사용하는 메일계정 새성이 가능합니다.





6. 메일 계정을 생성 합니다.

Administrator 계정은 시스템에 예약되어 있습니다.


“Create User” 버튼을 통해  메일 계정을 신규로 생성 합니다.
User Name 과 Displayname 은 필수 항목 입니다.
항목 입력 후 “Next Step” 을 선택합니다.



입력한 User Name  값이 자동으로 Email address 로 입력 됩니다.
메일에 사용한 도메인 주소를 선택한 후 패스워드를 설정하면 메일 계정 생성이 완료 됩니다.





7. 웹 메일 에 접속해서 계정으로 로그인 합니다.

4번 항목에서 메모해둔 Web Application URL 에 접속해 봅니다.




계정 생성이 정상적으로 마무리 되면  아래와 같이 메일 서비스 화면이 표출됩니다.


Workmail 설정이 완료 되었습니다.
다음 포스팅에서는 WorkMail 계정을 이용한 SES 서비스 연동 방법에 대해 살펴 보도록 하겠습니다.