소개
- 그동안 배운 것들을 기반으로 클라우드 아키텍쳐를 구축해보았다. 물론 온전히 하나하나 내 머리속에서 가져온 것이 아닌, 여러 자료 및 영상들을 참고하였음을 알린다. 요즘 클라우드 보안 관련해서 멘토링 수업을 듣고 있다.
- 이번 주차가 3주차인데, 이번주차는 IAM, S3, EC2를 기반으로 아키텍쳐를 구현해보는 것이다. 물론 난 이것만을 활용하지 않고, CloudFront나 AWSRoute53 등도 따로 추가해보았다.
- 참고로 이 글의 카테고리는 단순 정보 전달이 아닌, 온전히 내 경험 및 생각을 남기기위한 글이다. 맞고 틀리고를 떠나 나 자신의 오류를 찾아가는 카테고리이다.
- 나아가, AWS 클라우드 아케텍쳐 1.1 버전이라고 한 이유는 나의 첫 아키텍쳐라는 의미의 1과 그것의 초안 버전인 0.1 을 조합하여 1.1 이라고 설정하였다.
아래는 듣고 있는 멘토링 관련 카페이다.
https://cafe.naver.com/itscholar
정보보안전문가 취업카페 스칼라 : 네이버 카페
비전공자 전문IT교육, 정보보안전문가, 보안을 아는 개발자, AI 양성교육, IT기술리더, 창업가 양성
cafe.naver.com
IAM, S3, EC2 등을 이용한 클라우드 아키텍쳐
개요
- S3를 내용물을 조회하는 Node.js 어플리케이션 EC2 웹서버를 https://httpstest.sjmweb12.com/ 이라는 URL을 통해 사용자가 접속할 수 있도록 구성한 아케텍쳐이다.
- 아래는 참고한 아키텍쳐 사례들이다.
An AWS Cloud architecture for web hosting - Web Application Hosting in the AWS Cloud
Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.
docs.aws.amazon.com
https://blog.claydesk.com/how-to-use-aws-route-53/
How To Use AWS Route 53
How To Use AWS Route 53. Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service.
blog.claydesk.com
https://aws.amazon.com/ko/blogs/compute/re-platform-java-web-applications-on-aws/
How to re-platform and modernize Java web applications on AWS | Amazon Web Services
This post is written by: Bill Chan, Enterprise Solutions Architect According to a report from Grand View Research, “the global application server market size was valued at USD 15.84 billion in 2020 and is expected to expand at a compound annual growth ra
aws.amazon.com
나아가 아키텍쳐 구현시 참고했던 영상들이다.
https://www.youtube.com/watch?v=WS2n8mkrFaY&t=249s
https://www.youtube.com/watch?v=vOI_oAP_j04&t=597s
솔직히 말하면, 위 두 개의 영상이 제일 도움이 되었던 것은 사실이다. 나아가 이론만 듣고, 대충 무슨 기능인지만 아는 상태에서 이렇게 영상으로 실습해보고, 이 둘을 조합하여 나만의 아키텍쳐를 구현해본 것이 응용력을 키우는데 있어 매우 좋은 경험이었다.
위 파일은 해당 아키텍쳐 관련 drawio 파일이다.
각 구성 요소 설명
- 사용자가 웹서버를 https://httpstest.sjmweb12.com/ 이라는 도메인을 통해 접속할 수 있도록 제일 먼저 ec2 웹서버 IP 에 대한 도메인(b.sjmweb12.com)을 AWS Route53에 등록한다. 이때 해당 도메인은 CloudFront에 대한 원본 도메인(b.sjmweb12.com)이다.
- 이 원본 도메인을 CloudFront에서 가리키도록 설정해주며, CloudFront로 사용자가 접속시 https로 통신할 수 있도록 AWS ACM에서 해당 도메인에 대해 인증서를 생성해주도록한다.
- https://httpstest.sjmweb12.com/ 로 접속할 수 있도록 CloudFront의 대체 도메인 네임을 httpstest.sjmweb12.com로 설정하고, Route53에서 sjmweb12 호스트 영역에서 CloudFront의 원본 도메인 네임을 별칭으로 설정하는 레코드 네임, 즉 httpstest.sjmweb12.com 을 설정해주도록 하였다.
- CloudFront는 웹 정적컨텐츠를 엣지로케이션에 캐싱하여 서버에 부담을 줄이고 응답 속도를 향사시키기위해 사용하였습니다. 추후 AWS WAF와도 연동시키기 위함도 있다.
- 오른쪽 사진은 실제 https://httpstest.sjmweb12.com/에 접속을 시도한 사진이다.
- node.js 어플리케이션이 S3 버킷의 내용물을 확인할 수 있도록 IAM 역할(S3FullAccess) 권한을 생성하여 EC2 서버에 연동시켰다.
- aws s3 ls –region us-east-1: us-east-1 리전 s3 버킷의 내용물을 나열하라는 명령어를 통해 ec2 서버가 IAM 역할(S3FullAccess)에 연동된 것을 확인할 수 있었고,
- node test.js: 그로 인해 ec2 서버안에서 실행되는 node.js 어플리케이션도 s3 접근하여 내용물을 나열할 수 있는 것도 확인해볼 수 있다.
이 내용을 단순 2page로 요약한 보고서는 다음과 같다.
그러나
이 아키텍쳐 및 보고서에는 내가 간과한 것들이 매우 많았다.
- 첫번째, 단순히 구현에만 집중하다보니 클라우드 보안을 배워놓곤 IAM 최소 권한 원칙, S3 VPC 엔드포인트를 이용한 내부 통신 등을 고려하지도 써먹지도 않았다.
- 두번째, 각 아키텍쳐의 구성요소에 대한 설명이 필요한데, 나는 단순히 내가 이렇게 구현을 해봤고, 하는 방법만을 나열하였다. 글 제목과 내용이 전혀 맞지 않았다.
- 세번째, 사진의 배치가 맞지 않아 글자들이 그림 옆으로 넘어온다는 경우도 있다고 지적받았다.
- 네번째, 사진에 대한 설명이 없는 것 또한 지적받았다.
다음 포스팅은 이를 수용한 버젼을 바탕으로 쓰도록 하겠다. 아래 파일은 나름 보안을 고려하여 설계한 아키텍쳐이다. 다음 포스팅은 이 수정본을 기반으로 작성하도록 하겠다.
'AWS 아키텍쳐 구현 경험' 카테고리의 다른 글
AWS 클라우드 아키텍쳐 1.2 버전 구현 (1) | 2024.10.27 |
---|