개발하는지호

[3주차] 전체적인 AWS 아키텍쳐를 파악하고 기능 및 보안 이해

by 개발하는지호

1. AWS EC2, IAM, S3 정의

  1. EC2 (Elastic Compute Cloud)
    • 설명 : EC2는 AWS에서 제공하는 가상 서버 서비스이다. 사용자는 EC2 인스턴스를 통해 가상 서버를 생성하고, 이를 통해 다양한 애플리케이션을 실행할 수 있다.
    • 주요기능
      • 가상 머신(서버)을 쉽게 시작하고 중지할 수 있다.
      • 다양한 운영 체제(Windows, Linux 등)와 사양(CPU, 메모리 등)을 선택 가능
      • 탄력적 확장 : 필요에 따라 서버를 자동으로 추가하거나 제거 가능
      • 비용 효율성 : 사용한 만큼만 비용을 지불하는 종량제 요금제 사용
  2. IAM (Identity and Access Management)
    • 설명 : IAM은 AWS 리소스에 대한 접근 관리를 제공하는 서비스이다. 사용자는 IAM을 통해 사용자, 그룹, 역할을 생성하고, 이들이 특정 AWS 리소스에 접근할 수 있도록 권한을 설정할 수 있다.
    • 주요기능
      • 사용자 생성 및 관리 : 각 사용자에게 AWS 서비스에 대한 접근 권한을 부여
      • 역할(Role) : 특정 서비스가 다른 서비스를 접근할 수 있도록 역할을 부여 
        • ex) EC2에서 S3에 접근 즉, 누가 권한을 수행할 것인지 초점
      • 정책(Policy) : 접근을 제어하는 규칙을 작성하여 리소스에 대한 권한을 설정 즉, 무엇을 할 수 있는지 초점
      • MFA(Multi-Factor Authentication) : 두 가지 인증 방법을 통해 보안 강화
  3. S3 (Simple Storage Service)
    • 설명 : S3는 AWS의 객체 저장 서비스로, 데이터를 파일 형식으로 저장하고, 언제든지 인터넷을 통해 접근할 수 있도록 제공한다. 대용량 데이터를 안정적으로 저장하고, 빠르게 접근할 수 있도록 설계되어 있다.
    • 주요 기능 
      • 무제한 저장 용량 : 데이터를 거의 무제한으로 저장 가능
      • 고가용성 및 내구성 : 데이터를 여러 지역에 복제하여 높은 내구성 제공
      • 버킷(Bucket) : 데이터를 저장하는 단위, 폴더처럼 사용할 수 있다.
      • 객체(Object): S3에 저장되는 데이터 파일, 이미지, 동영상, 로그 파일 등
      • 접근 제어 : 데이터에 대한 권한을 세밀하게 설정 가능 (버킷 정책, IAM 정책 등)

 

 

 

2. AWS의 EC2 -S3 통신 방식 아키텍쳐 구성 및 절차

 

목표 : AWS SDK인 EC2와 S3 버킷을 생성하여 통신하는 아키텍쳐를 구성하기

 

[구성도]

 절차 : 

 

  1. VPC(Virtual Private Cloud) 10.0.0.0/16으로 생성한다.
  2. 퍼블릭 서브넷 10.0.0.0/24 로 생성하여 EC2를 넣을 수 있는 가상의 공간을 확보한다.
  3. 인터넷 게이트웨이 생성해서 인터넷 통신이 가능하게 끔 한다.
  4. EC2를 생성한다.
  5. EC2가 정상적으로 접근이 되는지 확인한다.

  6. 위 사진으로 EC2가 정상적으로 접근이 가능한 것을 확인 했다.
  7. S3를 생성하고 버킷 정책을 설정한다.
  8. S3 버킷 정책


  9. S3에 테스트용 폴더와 파일을 업로드 한다. (최종적으로 EC2에서 요청을 했을 때 잘 불러  오는지 확인하기 위함)
  10. IAM 역할(Role)을 생성하고 정책(Policy)를 생성한다.
  11. IAM 역할 생성
  12. 위 IAM 역할(Role)을 EC2에 연결한다.
  13. 최초에는 인터넷 게이트웨이로 S3와 통신하는 구조였지만 인터넷을 경유하면 보안 취약성이 증가하므로 "VPC 엔드포인트" 로 통신하게끔 구축
  14. ping s3.ap-northeast-2.amazonaws.com 명령어를 활용하여 S3와 정상적으로 통신을 하고 있는지 확인한다.
  15. 통신이 되고 있음을 확인
  16. 최종적으로 EC2에서 내가 만든 jjihho-bucket이라는 이름의 s3에 접근해서 Image 폴더에 업로드 하는 파일이 정상적으로 출력이 되는지 확인한다.
  17. S3 에 접근하여 사전에 업로드 해놓은 스크린샷을 확인할 수 있다.

 

[피드백]

 

 1. pem 키를 ssm으로 변경해서 EC2로 접근하는 것이 좋다.

이유 : https://jiholine10.tistory.com/713

 

pem 키 대신 ssm(Session Manager)을 사용하는 이유

클라우드를 실습하는 과정에서 EC2에 접근하는 방식으로 pem 키를 활용했다. 하지만 pem 키로 접근하기 보다는 Session Manager (SSM)으로 접근하는 것이 좋다고 피드백을 받았다. 오늘은 그 이유에 대해

jiholine10.tistory.com

 

 

블로그의 정보

DevSecOps

개발하는지호

활동하기