[쿠버네티스 1/25] AWS - EC2 & S3

신현식·2023년 1월 25일
0

구름_AWS

목록 보기
1/3
post-thumbnail

클라우드

시스템기반으로 어플리케이션을 사용자가 24시간 언제든 이용할 수 있는 환경을 제공하는 기술요소이다.
클라우드 컴퓨팅이란 인터넷이라는 통신 서비스를 활용하여 개인용 컴퓨터가 아닌 원격 컴퓨터의 자원을 활용하는 기술로 언제 어디서나 사용한 만큼의 비용을 지불하면 사용할 수 있다.

기업의 인프라 구성방식

  • 온프레미스(On-Premise)
    물리적으로 구축되어있는 환경, 즉 자체적인 데이터 센터 또는 서버실을 구축하고 운영

  • 퍼블릭 클라우드
    인터넷을 통해 불특정 다수에게 클라우드 서비스를 제공, 초기 투자가 필요하지 않음

  • 프라이빗 클라우드
    특정 대상을 지정하여 서비스를 제공하는 클라우드 서비스로 주로 단일 기업 또는 계열사 등 일부 기업을 대상으로 서비스를 제공하기 위해 구축

클라우드 서비스 유형

  • Iaas(Infrastructure as a Service)
    물리적 서버(CPU, OS, 메모리), 네트워크, 스토리지를 가상화하여 다수의 고객을 대상으로 유연하게 제공하는 인프라 서비스이다. 필요로 하는 자원의 규모 및 신뢰도 등에 의하여 비용이 결정된다.

  • PaaS(Platform as a Service)
    Web 기반의 서비스 또는 애플리케이션 등의 개발 및 실행을 위한 표준 플랫폼 환경을 서비스 형태로 제공하는 서비스이다.

  • SaaS(Software as a Service)
    구글의 Gmail이나 MS 오피스 등과 같이 응용 프로그램을 인터넷 및 웹 브라우저를 통해 제공하는 서비스이다.

AWS 주요 서비스

AWS 컴퓨팅 서비스

  • Amazon EC2(Elastic Computer Cloud)
    다양한 형태의 타입과 서비스에 따라 적합한 사양을 선택할 수 있으며, 사용량만큼 비용을 지불하는 컴퓨팅 서비스

  • Amazon Auto Scaling
    서버의 특정 조건에 따라 서버를 추가/삭제할 수 있게 해주는 서비스이다.

    Scale up/down -> 서버의 대한 스펙을 올리는것(CPU 교체 등)
    Scale out/in -> 같은 성능요소의 수량을 증가 시키는 것

  • Amazon Lightsail
    간단한 가상화 프라이빗 서버(VPS)가 필요한 개발자에게 웹 사이트와 웹 애플리케이션을 배포하고 관리하는 기능 등을 저렴하게 제공

  • Amazon WorkSpaces
    데스크톱 가상화 서비스로 사내 PC를 가상화로 구성하여 문서 및 데이터를 개인 PC가 아닌 서버에서 보관관리 할수 있도록 해주는 서비스

네트워킹 서비스

  • Amazon Route 53
    가용성과 확장성이 우수한 클라우드 기반의 DNS 웹 서비스로 사용자의 요청을 AWS에서 실행되는 다양한 인프라에 효과적으로 연결할 수 있다.

  • Amazon VPC(virtual private cloud)
    가상 사설 네트워크 인프라를 클라우드 내에 생성/구성하고 네트워크를 이용한 접근제어, DHCP 및 VPN 연결, 인터넷 게이트워이 등의 서비스 제공과 타 VPC와 다른 리전 간 VPC Peering 구성을 통해 보안성 및 안정성이 높은 네트워킹 서비스를 제공한다.

  • Amazon Direct Connect
    기존 온프레미스의 인프라와 AWS를 연결하는 전용선을 구성하여 낮은 지연시간으로 데이터 및 정보를 공유할 수 있게 하는 서비스 제공

  • Amazon ELB(Elastic Load Balancer)
    기존에 사용하던 서비스 중 L4 로드 밸런서라고 생각하면 된다. 웹 서버 및 각종 서버에 사용량과 접속자가 많은 경우 트래픽에 대한 부하 분산을 통해 네트워크 트래픽을 인스턴스로 전달한다.

스토리지 서비스

  • Amazon S3(simple storage services)
    여러가지 용도로 사용할 수 있는 범용적인 스토리지 서비스로 데이터 보관 이외에도 정적 웹 사이트 호스팅 및 다양한 형태의 서비스로 활용가능한 만능 스토리지 서비스이다.

  • Amazon Glacier
    사용빈도가 높지 않은 데이터를 저렴한 비용으로 장기보관할 수 있게 해주는 서비스로 무제한으로 데이터를 보관할 수 있는 장점이 있다.

  • Amazon Storage Gateway
    온프레미스에 있는 데이터를 클라우드로 저장 보관하기 위한 연결 서비스를 제공한다.

  • Amazon Snowball
    대량의 데이터를 AWS로 이전할 때 네트워크로 전송하지 않고 스토리지에 저장하여 물리적으로 전달하고 이를 업로드해주는 서비스이다.

데이터 베이스 서비스

  • Amazon RDS(Relational database service)
    관계형 데이터베이스 서비스인 MSSQL, oracle MYSQL, Maria DB 등 RDBMS 서비스를 사용자가 직접 관리하지 않고 amazon에서 제공하는 서비스를 이용하여 데이터베이스를 이요할 수 있도록 해준다

  • Amazon DynamoDB
    NoSQL용 서비스로 대량의 데이터를 손쉽게 저장할 수 있고 이렇게 저장된 데이터를 추가 분석 서비스와 연계 활용할 수 있도록 확장할 수 있는 서비스이다.

  • Amazon ElastiCache
    in-memory 기반의 cache 서비스로 빠른 속도를 필요로 하는 서비스와 연계하여 높은 응답속도와 신뢰성을 필요로 하는 서비스에 적합한 서비스이다.

Amazon EC2

서버

특화된 어떤 임무를 수행하기 위해 설계된 컴퓨터이다. 일반 컴퓨터도 서버가 될 수 있지만 보통 고성능/고용량/고가용성인 높은 사양의 하드워어를 요구한다. 알반적인 서버는 서버용 OS(unix, linux, window server)를 설치한다.

보안 및 방화벽

보안
안전한 상태를 지키는 것으로 각종 위험으로부터 정보 및 데이터를 안전한 상태로 유지하는 것을 의미한다.

💡 AWS 내 다양한 보안관련 서비스

  • AWS IAM: Identity & Access Management 사용자 및 키 관리
  • AWS GuardDuty: 관리형 위험탐지 서비스
  • AWS Shield: DDos 보호
  • AWS WAF: Web Application Firewall 악성 웹 트래픽 필터링

방화벽(firewall)
인터넷과 같이 외부 네트워크에 연결되어 있는 내부 네트워크의 중요한 정보 자산에 대해 외부로부터 불법적인 침입을 보호하기 위한 시스템이다. 기본적인 침입 차단 및 침투 지연 효과가 있다. AWS에서는 Security Group를 통해 방화벽 서비시를 제공한다.

내부 -> 외부 : 아웃바운드
외부 -> 내부 : 인바운드

클라우드 용어

리전
AWS가 전 세계에서 데이터 센터를 클러스터링하는 물리적 위치를 리전이라 한다. 논리적 데이터 센터의 각 그룹을 가용 영역이라고 한다.
각 AWS 리전은 지리적 영역 내에서 격리되고 물리적으로 분리된 최소 3개의 AZ로 구성된다.

가용영역(Availability Zone)
AZ(가용 영역)는 AWS 리전의 중복 전력, 네트워킹 및 연결이 제공되는 하나 이상의 개별 데이터 센터를 의미한다. AZ를 사용하면 단일 데이터 센터를 사용하는 것보다 더 높은 가용성, 내결함성 및 확장성을 갖춘 프로덕션 애플리케이션과 데이터베이스를 운영할 수 있다. 현재 우리나라의 서울 리전은 4개의 가용영억으로 구성되어 있다.

엣지 로케이션(Edge Location)
CDN(Content Delivery Network)를 위한 캐시서버들의 모음을 의미한다. AWS CloudFront를 위하여 사용된다.

Amazon EC2

아마존 웹 서비스 상에서 안정적이며 크기를 조정 가능한 컴퓨팅 파워를 제공하는 웹서비스를 말한다. 이러한 가상화 서버를 인스턴스라고 부르며, 필요에 따라 한개의 인스턴스에서 수천개의 인스턴스로 손쉽게 컴퓨팅 파워를 확장할 수 있다.

Amazon EBS(Elastic Block Storage)
EC2에 연결되는 block level의 스토리지 서비스이다. 서버에 장착하는 서버용 하드디스크라고 생각하면 된다. EC2 인스턴스와 독립적으로도 사용 가능하며 다른 EC2 인스턴스에 교체가능하고 데이터는 영구적으로 저장되며 원하는 가용영역에 생성가능하다.

아마존 보안그룹

보안 그룹은 인바운드, 아웃바운드의 네트워크 트래픽을 제어하는 가상의 방화벽 역할을 수행한다.

AWS EC2 실습

AWS 홈페이지에서 로그인을 한 이후 EC2 서비스를 검색하여 들어간다. 리전은 서울로 바꾸고 인스턴스를 누른다.

📌 윈도우 서버 인스턴스 생성 및 원격 접속

RDP(포트 3389) -> GUI 환경에 접속하도록 해줌

인스턴스 생성 -> OS 이미지 windows 선택 -> key pair(login) 생성 후 저장 -> 네트워크 설정에 있는 편집 -> 보안그룹 이름 및 설명 작성, 인바운드 규칙유형을 rdp로 설정 -> 인스턴스 시작 -> 연결로 들어가서 EDP 클라이언트 클릭 -> 원격 데스크톱 파일 다운로드 실행 및 암호 가져오기를 통해 pem를 가져와 암호를 해독, 다운받았던 것을 실행한 이후 암호를 입력하면 윈도우 EC2에 접속이 가능하다.

💡 파일 다운 없이 EC2 접속

원격 데스크탑 연결 -> 옵션표시 -> 사용자 이름: Administrator-> 도메인 입력 -> 암호입력하면 똑같이 EC2 서버에 들어가진다.

📌 리눅스 서버 인스턴스 생성 및 원격 접속

SSH -> CLI 환경에 접속하도록 해줌(putty 툴 이용 / powershell 이용)

인스턴스 생성 -> OS 이미지 아마존 리눅스 선택 -> key pair(login) 생성 후 저장 -> 네트워크 설정에 있는 편집 -> 보안그룹 이름 및 설명 작성, 인바운드 ssh 및 http 추가, 여기서 진행하지 않는다면 나중에 따로 보안에 가서 추가해도 된다.

💡 인바운드 규칙을 추가할때 소스부분을 anywhere로 바꿔준다. (0.0.0.0)

putty로 EC2 접속

1. 푸티 애플리케이션 다운로드 및 설치
푸티 다운로드
putty.exe / puttygen.exe 다운로드

2. ppk 키 생성하기
puttygen -> Conversions -> pem 키 등록 -> Save private key클릭 -> .ppk파일로 생성

3. putty에서 등록
putty -> SSH->Auth -> Private key file for authentication에 만들었던 ppk파일 등록 -> Session의 Host Name부분에 만들었던 인스턴스의 퍼블릭 IP 등록

4. 보안 인바운드 수정
인스턴스 보안-> 보안그룹 -> 인바운드 규칙(외부에서 내부로 오는 것)에 ssh 추가(소스: anywhere로 바꿔준다. 0.0.0.0 )

5. 인스턴스 접속
putty를 실행 -> accept -> login as에는 ec2-user라 입력해주면 된다. sudo su 명령으로 ec2-user에서 root로 변경이 가능하다.
yum install -y htppd
systemctl start http
systemctl enable httpd --now
까지 진행한 이후 호스트 pc에서 퍼블릭 IP를 입력하면 웹 페이지에 접속이 가능하다.

윈도우 터미널로 EC2 접속

윈도우 터미널 -> ssh ec2-user@3.35.220.107 -i .\Downloads\linux1_key.pem(ssh 사용자 이름@퍼블릭 IP -i pem키가 있는 경로) -> yes를 하면 EC2에 접속할 수 있다. 인스턴스를 중지했다가 재시작하면 퍼블릭 IP가 바뀌기 때문에 다시 시작했을 때 퍼블릭 IP를 확인해야 한다.

스토리지

데이터를 저장하는 저장소의 역할을 수행하는 요소이다.

데이터 백업

데이터가 손상되거나 우실되는 것을 대비하여 데이터를 복사하고 다른 곳에 저장하는 것을 의미한다. Amazon web service는 EBS snapshot 및 AMI 백업 등의 기능을 활용하여 데이터 백업 서비스를 제공한다.

S3와 Glacier

Amazon S3(simple storage services)
무한대로 저장 가능하고, 사용한 만큼만 지불하는 인터넷 기반 스토리지 서비스이다. '버킷' 이라는 리전내에서 유일한 영역을 생성하고 데이터를 키-값 형식의 객체로 저장한다.
저장 기능을 활용하여 간단한 정적 웹 서비스를 구현 가능하다. S3 서비스는 스토리지 기술을 근간으로 하며, 파일 단위의 접근만 지원하기 때문에 EBS 서비스를 대체할 수 없다.

Amazin Glacier
데이터 아카이빙 및 장기 백업을 위한 안전/안정/저렴한 스토리지 서비스이다. S3와 같은 내구성 및 가용성을 제공한다.

AMI(Amazon Machine Image) & Amazon Market Place

Amazon S3 구축

S3로 들어가면 리전이 글로벌이 된다.

1. 버킷 만들기
아마존 S3 검색 -> 버킷만들기 클릭버킷이름을 설정하고 AWS 리전을 서울로 바꾼다. 그후 객체 소유권 파트에서 ACL 활성화를 해준다. 모든 퍼블릭 액세스 차단을 해제하고 밑에 체크박스를 선택한 후 버킷만들기를 하면 된다.

2. 폴더 만들기
만들어진 S3 버킷에 들어가 폴더만들기를 선택한다. 그 후 test1 폴더를 만들어 주면 된다.
S3의 경로: s3://hy-test-bk1/test1/

3. 파일 생성
window C드라이브에 backup폴더를 생성한 이후 아무 파일이나 추가해본다.

4. 업로드
퍼블릭 설정을 해주지 않으면 파일을 볼때 에러가 난다. 따라서 폴더 자체에 퍼블릭 설정을 해주면 기존에 있던 파일들은 모두 파일을 열수 있지만 새로 추가되는 것들에 대해서는 퍼블릭 설정을 해줘야 url로 파일을 열 수 있다.

외부 사용자에게 접근권한 부여하기

그룹에게 권한을 주고 사용자가 그룹에 들어오면 접근 가능하게 해준다

1. 그룹생성
사용자 그룹으로 가서 그룹 생성 -> 그룹명을 설정(s3_admin)하고 AmazonS3FullAccess 체크한 이후 그룹생성을 진행

2. 사용자 추가
사용자로 가서 사용자 추가 진행
사용자명을 설정한 후(s3_admin_user1) 다음 -> 그룹에 사용자 추가에서 만들었던 그룹을 선택한 이후 다음 -> 사용자 생성 클릭

3. 액세스 키 생성
생성된 사용자 클릭 -> 보안 자격 증명 부분에서 액세스 키 만들기 클릭 -> Command Line Interface(CLI) 체크, 맨 밑 생성 계속 체크한 후 다음 -> 액세스키 생성한 이후 .csv 파일을 다운로드받으면 된다.

4. AWS CLI 설치 및 접속
AWS CLI v2 설치
설치 완료를 했다면 powershell에 aws configure를 입력한 후 위에서 생성했던 .csv 파일에서 ID와 PW를 입력한다. 리전도 s3에 적혀있는 장소로 적어준다.aws s3 ls를 하면 아까 만들었던 hy-test-bk1이 있는것을 확인할 수 있다.

5. 백업 폴더와 버킷 동기화

##(aws s3 sync c:로컬 폴더 경로  s3: s3경로)
aws s3 sync c:/backup/ s3://hy-test-bk1/ 

로컬에서 새로운 파일을 만들고 나서 재동기화를 진행하면 새로 생긴 것들만 업로드 된다.

💡 주기적으로 동기화 되도록 설정

backup 폴더에서 backload.bat 파일 생성-> 파일 내용으로 aws s3 sync c:/backup/ s3://hy-test-bk1/ 추가한 후 저장

제어판/모든 제어판 항목/관리 도구 -> 작업 스케줄러-> 동작 -> 작업만들기 -> 이름: data-backup, 가장 높은 수준의 권한을 실행 체크 -> 트리거에서 새로만들기, 매일 아침 6시 설정 -> 동작에서 새로 만들기, 이전에 만들어 두었던 .bat파일 가져오기 -> 확인을 만들어주면 주기적으로 동기화 되도록 설정이 완려된 것이다.

profile
전공 소개

0개의 댓글