profile image

L o a d i n g . . .

728x90

새로운 사이드 프로젝트를 시작할 때마다 AWS의 환경을 구축하는 작업은 저에게 있어 매우 귀찮은 일 중 하나였습니다. AWS는 cloudformation를 통해 infrastructutre as a code 기능을 제공하는데, 이 기능을 활용해 제 번거로움을 덜 수 있었습니다. cloudformation는 AWS에 구축하고자 하는 환경을 코드로 정의할 수 있도록 합니다. 따라서 동일한 환경을 재구축하는 게 매우 쉽고 인프라를 구축하는 데 있어 실수할 여지를 감소시킬 수 있습니다. 이번 포스팅을 통해 사이드 프로젝트를 위한 미니멀한 AWS 환경을 cloudformation를 통해 구축해 보겠습니다. 포스팅과 관련된 코드는 아래 github에서 확인할 수 있습니다. 

 

GitHub - seonwoo960000/AWS-cloudformation-scripts: AWS cloud formation script.

AWS cloud formation script. . Contribute to seonwoo960000/AWS-cloudformation-scripts development by creating an account on GitHub.

github.com

구축할 AWS 인프라

CloudFormation 사용법 

CloudFormation > Stacks > Create stack > Create stack 

Cloudformation의 create stack 페이지를 통해 인프라 환경을 구축할 수 있습니다. 그다음으로는 페이지의 "Create template in Designer"을 클릭합니다. 

Create stack 화면

버튼을 클릭하면 구축하고자 하는 AWS 인프라 환경을 시각적으로 확인할 수 있는 페이지에 도달합니다. 페이지 왼쪽 하단의 Template 버튼을 클릭하면 json 또는 yaml을 사용해서 인프라를 코드로 정의할 수 있습니다. 

Template 버튼 위치

여기에 github의 aws-cloudformation.yaml의 내용을 복사 붙여 넣기 하면 아래와 같이 인프라가 시각적으로 표시됩니다.

시각화된 UI

여기서 해당. yaml파일에 정의된 인프라의 유효성을 체크하고 그다음 단계인 실제 인프라 구축 단계로 넘어가 보겠습니다. 아래 화면에서 유효성 검사 버튼을 클릭 후 파일 업로드 버튼을 누르면 다음 단계로 이동할 수 있습니다. 

CloudFormation > Stacks > Create stack > Specify stack details 

Specify stack details 화면

위 화면은. yaml 파일에서 Parameters 아래 정의된 변수들을 설정하는 화면입니다. Parameter을 활용하면 동일한. yaml 파일을 통해 구축하고자 하는 환경에 맞게 다양한 커스터마이징이 가능합니다. 이후 단계인 "Configure stack options", "Review xxx"은 Next를 클릭하여 넘어갑니다. 

CloudFormation > Stacks > "stack-name" 

Stack이 생성되는 화면을 실시간으로 확인할 수 있는 페이지입니다. Refresh 버튼을 눌러 진행상황을 시각적으로 확인이 가능합니다. 

 

마무리 

AWS cloudformation을 통해 구축한 환경을 정리해 보면 아래와 같습니다. 

  • VPC에 2개의 public subnet, 2개의 private subnet. Public subnet은 internet gateway와 연결 
  • Load balancer, EC2는 public subnet에 위치 
  • EC2는 ssh를 통해 접속 허용 
  • Database는 private subnet에 위치. EC2에서 database에 접속할 수 있도록 security group 설정 

 

 

728x90
복사했습니다!