클라우드 운영_1

DeadWhale·2022년 10월 23일
0

클라우드

목록 보기
1/2
post-thumbnail

예전 본 어느 면접에서 MSA와 AWS에 대해 대화해본 적이있었는데.
제대로 답변하지 못했던 기억이 난다.

단순히 클라우드 서버를 운영한다 정도만 알고 있었는데.
직접 구현해보면서 알고 싶어서

5주 동안 실제 현업에서 요구사항을 요청하는 미션식 클래스가 있어 신청해보게 되었다.

AWS와 쿠버네티스를 이용해 5주 환경을 구축하는 미션이다.

주차 단위로 기록하며 정리하는 글을 작성해봐야겟다.



1주차 미션.

서비스팀에서 어느 시스템의 ARB 요청으로 인해 검토 후

  • 이중화로 구성
  • EKS으로 구축 ( Elastic Kubernetes Service )
  • Kubernetes 환경.
    으로 구축하여 도입하게 된 상황.

ARB : Architecture Review Board

IT인프라 와 애플리케이션을 위한 효율적으로 효과적으로 계획 , 구현
(회사에서 프로젝트를 투자하기 전. 해당 프로젝트가 적절한 아키텍처로 설계 및 비용 산정 되었는지 검토하는 것.)

해야하는 것.

  1. AWS IAM 생성가 MFA 설정
    1. IAM 계정 생성
    2. MFA 설정
  2. VPC 구축과 NAT 인스턴스 생성
    1. VPC
    2. Subnet
    3. Internet Gateway
    4. RouteTable
  3. Bastion Host ( = NAT 인스턴스 )
    1. 인스턴스 생성
    2. 보안그룹 설정
    3. Putty 접속
    4. OS 계정 생성과 sudo 권한 부여
    5. 비밀번호 로그인과 허용

제출해야 하는 것.

  1. 산출물이 정리된 엑셀
  2. 계정 정보가 관리되는 정보 (PPT)
  3. 주간 업무보고서 ( 이메일 형식 )

AWS

계정을 생성 후 보안상 생성된 루트 계정을 사용하지 않는것이 권고된다.
각 사용자마다 필요에 맞는 권한만 가진 IMA 계정을 생성해주는 것이 필요.

예를 들어 서버쪽이면 서버쪽만 조회. 네트워크면 네트워크쪽만 확인할 수 있도록 권한 설정 필요

이렇게 생성 된 계정은 MFA 으로 인증을 필수로 설정 해주어야 한다.
MFA == OTP

IAM => User => 보안자격 증명 => MFA디바이스 관리.


VPC ( Virtual Private Cloud )

  • VPN ( Virtual Private Network ) 가상 네트워크 환경.

만약 위와 같이 구성된 네트워크가 있다면.
실제로 구성은 사무실 B와 사무실 A이지만
VPN은 각각의 사물실이 "논리적"으로 분리되어 있는것 처럼 구현 합니다.

이 VPN 걔념을 기반으로. VPC를 생각하게 된다면.

기존에는 이러한 형태로 있는 E2C 인스턴스로 구현되어있다.
구조의 복잡도가 매우 올라가고 인스턴스가 추가될 때 마다 계속해서 문제가 발생하게 된다.

VPC를 적용하면 그림처럼 각각의 VPC별로 구축할 수 있게 되고.
VPC에 따라 네트워크 설정을 따로 줄 수 있으면서 서로 완전히 독립된 네트워크처럼 작동하게 된다.

사설 아이피 범위

위 처럼 구축하기 위해서는 사설아이피범위로 구축해야한다.

어느 블로그에서 본 내용인대 잘 이해되서 여기에 적어본다.
만약 우리끼리 "안방에서 리모컨을 가져다줘" 하게 되면 나는 옆집의 안방이 아닌
우리 집의 안방으로 찾아가야 하는것 처럼.

우리집의 안방은 private 내부망인거고 ,
우리집의 주소(도로명)는 public인거다.


vpc에서 사용되는 사설 아이피 대역은 정해져있다

  • 10.0.0.0 ~ 10.255.255.255(10/8 prefix)
  • 172.16.0.0 ~ 172.31.255.255(182.16/12 prefix)
  • 192.168.0.0 ~ 192.168.255.255(192.168/16 prefix)


    내 과제에서는 10.0.0.0/16을 사용하게 된다.

subnet

vpc가 생성된 후 서브넷을 만들 수 있게 된다.
서브넷은 vpc를 작게 분할하는 과정이다.
이렇게 분할하면 더 많은 네트워크 망을 가지게 된다.
vpc안에서 vpc보다 작은 값이기 때문에 아이피범위가 더 작은 값을 갖게 된다.

이렇게 나눠진 각각의 서브넷 안에는 E2C 혹은 RDS 같은 리소스들을 위치 시킬 수 있다.


라우팅 테이블

요청이 들어오게 되면 1차적으로 라우터로 향하게 된다.

  • 라우터 :: 목적지
  • 라우팅테이블 :: 목적지들을 가르키는 이정표

네트워크 요청은 목적에 맞는 주소로 찾아가게 된다.
기본적으로 private으로 구축되어 있기 때문에 찾아가는 라우팅 테이블이 필요하다.


인터넷 게이트웨이

인터넷과 vpc을 연결해주는 관문이다.
서브넷의 라우팅 테이블이 0.0.0.0/0이면 모든 트래픽에 대해서
게이트웨이로 향하라는 뜻입니다.

  • 인터넷과 연결된 서브넷 : public subnet
  • 인터넷과 연결이 안된 서브넷 : priavet subnet

목적지의 주소가 일치하지 않는다면 IGA A로 전달한다.


네트워크 ACL / 보안그룹.

일종의 방화벽과 같은 역할을 한다. 들오고 나가는 트래픽에 보안정책을 설정할 수 있다.

보안그룹은 Stateful(상태저장)한 방식으로 모든 허용은 차단하는게 기본 설정이다.
필요한 설정들만 허용해줘야 한다.

ACL은 Stateless한 상태로 모든트래픽으로 기본설정 되있기 때문에.
불필요한 트래픽을 막도록 수정해야한다
서브넷 단위로 설정해야 하고 보안그룹과 충돌된 경우 보안그룹이 더 높은 우선순위를 가지게 된다.

  • Elastic IP 부여 필요.(외부에서 접속하기 위해)

NAT 게이트웨이

서브넷이 priavate일 경우 인터넷과 통신하기 위해 아웃바운드(안에서 바깥쪽으로 나가는 동작) 인스턴스
프라이빗 네트워크가 외부에서 들어오는 인바운드는 필요없어도 펌웨어나 주기적인 업데이트가 필요해
아웃바운드 트래픽만 허용되어야할 경우가 있다. 이 때 퍼블릭 서브넷에서 동작하는 nat게이트웨는 프라이빗 서브넷에서 외부로 요청하는 아웃바운드 트래픽을 받아 인터넷게이트웨이와 연결한다.


OS 계정

SSH 접속을 위해 OS계정을 생성

  • 보안상 이유로 인해 운영서버에서 ec2-user사용 금지
  • 1인 1계정 아이디로 인해 log관리가 쉽고 문제 추척이 가능

IP 주소

ssh -i/Users/deadwhale/workspace/AWS/xxxx.pemec2-user@43.200.53.193
ssh -i키암호.pemos아이디 @ ip4주소

계정 생성

  • ssh 서버 접속
  • sudo -i //루트 계정 접속
  • useradd 아이디명
  • passwd 비밀번호
    으로 계정 생성

sudo 권한 부여

  • sudo -i //루트 계정 접속
  • vi /etc/sudoers.d/cloud-init //e2c-user와 동일한 권한 부여
  • admin ALL=(ALL) NOPASSWD:ALL

로그인 방식 (키방식 로그인이 아니라 비밀번호로 로그인하도록)

  • vi /etc/ssh/sshd_config
  • PasswordAuthentication yes 주석 처리 후
  • PasswordAuthentication no 추가 후 저장

#이 주석을 의미
서비스 재시작 필요


참고 블로그
Published in 해리의 유목코딩

0개의 댓글