AWS 계정 생성하기 (root, IAM)

GUNHEE LEE·2023년 11월 27일
0

AWS

목록 보기
1/1
post-thumbnail
post-custom-banner

[참고자료]

(배포) Django + React + Gunicorn + Nginx + EC2 배포하기
AWS EC2 인스턴스 생성
[AWS] 📚 아마존 가입 절차 / 보안 설정 (MFA & IAM) 정리
[AWS] Identity Center를 활용한 관리자 IAM 사용자 생성 (관리자 IAM 사용자를 사용하는 이유)

[+공부 필요]
AWS 간단히 이해하기 - S3와 EC2
인프라 기술, 기계학 개념 이해하기


배포) Django + React 배포하기

캡스톤 디자인의 Django로 백엔드를, React로 프론트를 구성하여 웹을 만든 후, 배포를 진행한다.

1. 리액트 앱 빌드 -> Django에 넣기

리액트 프로젝트 npm run build 로 빌드 폴더를 생성한다.
그 후 장고 프로젝트 디렉토리 안에 client 폴더를 만들어 build 폴더 안에 있는 파일들을 모두 넣어준다.

2. build로 만들어진 index.html 파일을 들어가면 파일 경로를 지정해놓은 부분이 있을텐데 모두 앞에 .을 붙여주도록 한다. 이걸 안하면 파일 경로를 참조하지 못한다.

ex) /static/... -> ./static/...

3. template, static 경로 설정, debug = False

setting.py 에 들어가 template, static 경로를 설정해준다.

// template 경로 설정
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['client'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
static 경로 설정
STATIC_URL = '/static/'
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
ROOT_DIR = os.path.dirname(BASE_DIR)

STATICFILES_DIRS = [
        # 실제 static 파일은 모두 client 측에서 소유
        os.path.join(ROOT_DIR, 'client/static')
    ]

4. AWS EC2 인스턴스 생성

AWS EC2는 아마존 웹 서비스에서 제공하는 서비스로 크기 조정이 가능한 컴퓨팅 파워를 제공하는 웹 서비스이며, 몇 가지 주요 특징은 다음과 같다.

  • 원하는 만큼의 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 가능
  • 클라우드 컴퓨팅 : 사용한 만큼만 돈을 지불한다.

클라우드 컴퓨팅이란?

데이터 저장과 컴퓨팅 파워를 개인의 컴퓨터에 의존하는 대신, 원격 서버와 데이터 센터의 자원을 사용하여 데이터를 처리하고 저장하는 방식을 말한다.
사용자가 필요에 따라 자원을 증가시키거나 감소시킬 수 있어 변동하는 작업에 유연한 대처가 가능하다.
또한 사용하는 만큼 비용을 지불하기 때문에 기업이나 개인이 비싼 하드웨어를 구매하고 유지할 필요가 없다.
인터넷이 연결 가능한 곳이라면 어디에서든 연결할 수 있다는 장점이 있고, 서비스 제공업체에서 서버를 유지 관리하므로, 소프트웨어와 보안 업데이트가 자동으로 이루어진다.

  • AMI, EBS, EIP의 특징이 있다. (생략)

AWS - Amazon Web Services

  • "Amazon Web Services(AWS)는 전 세계적으로 분포한 데이터 센터에서 200개가 넘는 완벽한 기능의 서비스를 제공하는, 세계적으로 가장 포괄적이며, 널리 채택되고 있는 클라우드입니다."
  • AWS란 아마존에서 제공하는 클라우드 서비스이다.
  • 아마존의 모든 서비스는 API 중심으로 설계되어 있어 모든 기능이 API로 제어가 가능하다.
  • AWS는 10년 연속 매직 쿼드런트 클라우드 인프라 및 서비스 부문의 리더로 선정되었고, 전세계적으로 가장 큰 오픈소스 생태계를 가지고 있어 많은 오픈소스 프로젝트를 참고하거나 사용할 수 있다는 장점이 있다.
  • 다양한 기능, 비용 절감, 빠른 일 처리, 보안까지 확실한 장점을 가진다.

API - Application Programming Interface

  • 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능ㅇ르 제어할 수 있게 만든 인터페이스이다.

AWS EC2 - Amazon Web Services Elastic Compute Cloud

  • AWS 에서 제공하는 서비스 중 하나로, 사용자가 자신의 컴퓨터 앱을 실행할 가상 컴퓨터를 대여할 수 있도록 해준다. 쉽게 말해 "아마존에서 클라우스를 통해 빌려주는 가상 컴퓨터 서비스"이다.

EC2 인스턴스 생성하기

EC2 서비스에서 생성한 가상 서버를 인스턴스라고 한다.


AWS 회원가입

루트 사용자

  • 개인 서버 오픈 -> AWS 회원가입이나 로그인 수행
  • 루트 사용자 계정은 모든 권한을 갖는 SSO(Single Sign In) ID로 시작하게 된다. 이 말은 우리가 AWS의 모든 자원과 리소스를 이용할 수 있다는 이야기가 되며, 그 말은 모든 자원을 구매할 수 있다는 소리이다.
  • 만약 악의적인 사용자의 공격으로 루트 사용자 계정이 탈취된다면, 악의적인 공격자는 돈을 벌기 위해 AWS의 아주 비싼 컴퓨터를 구매해서 엄청난 비트코인 채굴기를 설치해 채굴을 돌릴 것이다. 그럼 우리의 계정이 곧 비트코인 채굴용 컴퓨팅 서비스 용도로 사용되고, 천문학적인 금액의 피해가 발생할 수 있다. AWS는 공식적으로 루트 사용자 계정을 사용하지 않는 것을 추천한다.

IAM 사용자

AWS IAM - Amazon Web Service Identity and Access Management

  • AWS 리소스에 대한 엑세스를 안전하게 제어할 수 있는 웹 서비스이다.
  • IAM을 사용하면 각각의 행동에 따른 사용자들을 나눠 하나의 인스턴스를 이용할 수 있게 된다.

AWS 계정의 공유 엑세스

  • IAM 증명서를 사용하면, 루트 계정을 몰라도 서로 공유하는 인스턴스에 접근할 수 있다.

  • 다음과 같이 접근 권한을 다르게 나누어 줄 수도 있다.

Root 계정 보안 강화하기

처음 aws 계정을 생성하면 루트 계정으로 생성된다. 루트 계정은 모든 서비스와 빌링 관련 업무가 가능한 계정이기 때문에 가장 중요하게 관리해야 한다.
내 aws 계정이 비트코인 채굴 계정이 되어 3억원을 태우는 경험은 하고 싶지 않다.

보안 챌린지 설정


내 계정 - 보안 챌린지 질문
흔한 2단계 보안설정과 같다.

MFA 설정하기

Multi-Factor Authentication, 초단위 또는 분단위로 바뀌는 숫자

  1. 검색창에 "IAM" 검색하기
  2. "MFA 추가" 버튼 클릭
  3. MFA 디바이스 선택 -> 모바일, 컴퓨터 선택
  4. 구글 OTP 설치 -> QR 코드 띄워서 인식
  5. 이제 로그인할 때 기본 ID, PW 와 OTP를 통해 로그인한다.

IAM 서브계정 사용자 추가하기

  1. 루트계정 - 사용자 클릭
  2. 사용자 - 사용자 추가 클릭
  3. 그외 나머지 방법은 해당 링크 참고
    https://growth-coder.tistory.com/115

계정생성 끝. 추가 연동은 다음 글에 작성.

profile
새싹 개발자
post-custom-banner

0개의 댓글