[aws] 아키텍처 기본설계방법 및 리소스 네이밍 규칙

2023. 12. 26. 15:10cloud/aws

aws 아키텍처 설계

 

aws로 처음사용하여 구축하게 되면 어떤 서비스를 사용하는지 네이밍은 주로 어떻게 사용하는지 고민이 될것이다.

기본적으로 EC2 / RDS 를 사용하여 기본구조를 익히고 하나씩 기능과 리소스 등을 추가해 나가면서 학습하면 쉽게 접근할수 있다.

여러가지 아키텍처방법론이 존재하지만 본인이 개발하고 있는 시스템에 최적화된 스펙을 여러가지 방법으로 테스트 해보고 경험해봄으로써 본인만의 아키텍처를 인프라구성을 가질수 있도록 해본다.

본글은 정답은 아니지만 개인적으로 사용하는 방법과 보편적인 내용으로 포스팅 해보도록 한다.

 

1. 아키텍처 예시

  • 주로 가비아/후이즈 사이트에서 도메인을 구매하고 AWS ACM + Route53 + 로드밸런서 기능을 이용하여 SSL을 구축한다.
  • 그리고 EC2 우분투를 사용하여 백엔드 프론트 각각 별도로 분리한다. 
  • 여기서 프론트의경우 정적 파일은 AWS S3기능을 추가적으로 사용한다면 성능측면에서 이롭다.
  • 비용의 부담이 없다면 NGINX의 경우 별도의 EC2 서버를 생성하여 구축하는것도 성능적으로 장점이다.
  • RDS의 경우 이중화 구성을 통하여 안정성을 확보하는것을 권장한다.

 

AWS 아키텍처 예시
AWS 아키텍처 예시

 

 

2. 리전정보를 분리하여 AWS서버 인프라 확장

  • 시스템 규모가 커진다면 리전정보를 ap-northeast-01 (도쿄) / ap-northeast-01 (서울) 로 분리하여 AWS구축
  • 가장 가까운 위치의 리전을 사용하여 빠른 속도로 서비스 이용한다.
  • 다른리전도 사용가능하나 리전별로 지원되는 기능이 다를수 있음을 유의한다.
  • 강력한 내결함설 및 안정성을 위하여  각 AWS EC2 리전은 다른 EC2 리전에서 격리되도록 설계해야 한다.
  • 아래 이미지를 참고한다.

 

AWS서버 인프라 확장
리전을 분리하여 인프라확장

 

3.  AWS 리소스 네이밍규칙

  • 카멜케이스 / 스네이크케이스 / 케밥케이스 / 파스칼케이스 등이있다.
  • 정해진것은 없으나 보편적인 방법으로 본인은 네이밍 표현기법으로 케밥케이스를 사용한다.

 

카멜케이스 : 중간 글자들은 대문자로 시작하지만 첫 글자가 소문자인 경우에는 낙타와 모양이 비슷하다 하여 카멜 케이스

라고한다.

예시 : helloWorld

 

스네이크케이스 :  언더바(_) 가 들어 있는 표현 방식을 뱀처럼 생겼다고 하여 스네이크 케이스라고 한다.  

예시 : hello_world 

 

케밥케이스 : 케밥 케이스는 케밥이 꼬챙이에 꽂힌 모습에서 생긴 방법이다. 모든 단어가 소문자로 되어 있고, 단어와 단어 사이는 바(-)로 연결된다.

예시 : hello-world

 

파스칼케이스 : 첫 글자와 중간 글자들이 대문자인 경우 파스칼 언어의 표기법과 유사하다고 하여 파스칼 케이스라고 한다.

예시 : HelloWorld

 

 

4.  AWS 리소스 네이밍예시

  • 대분류 > 중분류 > 소분류 또는 대분류 > 중분류 > 소분류1 > 소분류2 로 구성한다.
  • 아래 이미지와 케밥케이스 네이밍 규칙을 활용하여 PROD-IOT-API로 리소스 네이밍을 생성한다.
  • 소분류하위 내용이 더있을경우 PROD-IOT-API-01 / PROD-IOT-API-02 등 숫자나 기호를 활용한다.
  • ec2, subnet, vpc 등의 리소스 태그의 이름의 경우 상시변경가능하다.
  • 리소스 자체의 이름인 RDS, CloudWatch, ELB 등의 경우 변경이 불가하다.

AWS 리소스 네이밍
AWS 리소스 네이밍