나의 성장기 보안/코딩$

AWS Cloud Practitioner Essentials M1

AWS Cloud Practitioner Essentials
@2021-02-22 15:31:35

AWS 클라우드 소개

 

  • 개요에 대한 소개

- AWS 클라우드를 소개하고 다양한 AWS 서비스와 상호 작용하는 방법을 설명

* 과정 완료시 AWS 클라우드 및 기본적 글로벌 인프라를 정의할 수 있다.


AWS 클라우드 소개

  • 클라우드 컴퓨팅의 정의

클라우드 컴퓨팅의 개념은 IT리소스를 온디맨드로 제공하는 서비스를 의미한다.

클라우드 컴퓨팅 이전에는 최대 피크 용량을 추정하여 데이터 센터를 구축해야 했다. 설계가 실제 최대 피크 용량을 충족하지 못한다면 고객이 불편을 겪을 것이다. 반면 과도한 설계로 최대 평균 용량을 초과한다면 실제로 필요하지 않는 리소스에 비용을 지불하게 된다.

클라우드 컴퓨팅에서는 자체 데이터 센터를 설계하고 구축하는 대신 인터넷을 통해 데이터 센터 및 해당 리소스에 액세스한다. 따라서 최악의 시나리오를 대비하여 설계할 필요 없이 실제 필요에 따라 리소스를 확장 또는 축소할 수 있다.

AWS에서는 몇 초면 서버, 데이터베이스, 스토리지 및 상위 수준 애플리케이션 구성요소에 액세스할 수 있다. 이러한 구성 요소를 일시적이고 폐기 가능한 리소스로 취급할 수 있으므로 유한한 고정 IT 인프라의 경직성과 제약에서 벗어날 수 있다.

AWS 클라우드의 강력한 기능을 활용함으로써 변화 관리, 테스트, 안정성 및 용량 계획에 대한 접근 방식은 민첩성효율성이 향상된다.

AWS 클라우드를 사용하여 위험을 줄이고, 요구 사항을 충족하도록 컴퓨팅을 자동으로 확장하고, 자연 재해 발생 시에도 안정적인 적용 범위를 보장하고, 데이터를 보호할 수 있다.

 

AWS 클라우드가 이 모든 것을 달성하는 데 어떤 기여를 하는지 위험 축소부터 간략하게 살펴보자.

 


클라우드 컴퓨팅은 민첩성과 신속한 변화 적응을 통해 위험을 축소하는 데 기여한다.

이러한 민첩성은 변경 비용을 줄여 준다. 그렇다면 대규모 IT 투자가 충분한 이익을 내지 못하는 위험을 어떠한 방법으로 줄일 수 있을까?

투자가 진행되는 동안 결과를 강조하고, 이러한 결과를 확인하지 못하는 경우 최대한 빠르게 변경한다.

보안 위험은 어떻게 줄일 수 있을까?

자주 테스트하고 신속하게 패치를 적용하며 빠른 속도로 사고에 대응해야 한다.

이는 새로운 보안 모델의 상당 부분을 차지한다.

위험 관리에 대한 이러한 모든 접근 방식은 클라우드를 통해 활성화된다.

클라우드 컴퓨팅을 통해 기업은 변화하는 시장 상황에 빠르고 탄력적으로 대응할 수 있다.

이를 통해 확장성, 민첩성 및 혁신이 촉진된다.

또한 빌딩 블록처럼 빠르게 조립할 수 있도록 사전 개발된 서비스를 사용해 소프트웨어 전송을 자동화하고 보안 및 규정 준수 보호책을 생성할 수 있다.


확장성에 대해서 이야기해보자.

AWS의 주요 이점 중 하나는 고객이 원하는 속도로 서비스를 사용할 수 있다는 것이다. 클라우드 컴퓨팅에서 확장성이라는 용어는 필요에 따라 리소스 크기를 조정할 수 있는 기능을 의미한다.

ex) 꽃 가게를 예시로 들어보자. 매년 2월에는 더 많은 직원을 고용하고 더 많은 배달 차량을 임대해야 발렌타인 데이에 대비할 수 있다. 이것이 확장이다. 그런 다음 이 날이 지나면 정상 수준으로 다시 축소해야 한다. 이것은 클라우드에서도 동일한 방식으로 작동한다.

AWS를 사용함으로써 고객은 서비스 소비를 늘리고, 줄이고, 조정하여 계절적 요구 사항을 충족하거나, 새로운 서비스나 제품을 출시하거나 단순히 새로운 전략적 방향을 수용할 수 있다. AWS 클라우드는 높은 가용성과 신뢰성을 제공하도록 설계된 확장 가능한 컴퓨팅 플랫폼을 제공하며, 이를 통해 고객이 다양한 애플리케이션을 실행할 수 있는 수단을 제공한다.


기업이 클라우드로 이동하는 주된 이유 중 하나는 민첩성 향상이다.

민첩성에 영향을 미치는 세 가지 주요 요소는 속도 향상, 용이한 실험, 혁신 문화 형성 세 가지이다.

이러한 요인을 통해 조직이 더 민첩해질 수 있는 방법을 자세히 살펴보자.

고객이 있는 위치에 데이터 센터를 배치하는 것은 특히 고객이 전 세계에 있다면 비용이 많이 드는 일이다. 그러나 AWS를 사용하면 엄청난 투자없이 도움을 받을 수 있다.

AWS 시설은 전 세계에 분포되어 있기 때문에 문자 그대로 곧바로 전 세계에 도달할 수 있다. 클라우드 컴퓨팅에서는 새로운 리소스를 클릭하기만 하면 되므로 개발자가 몇 분 안에 해당 리소스를 사용할 수 있다. 클라우드 컴퓨팅에서는 새로운 리소스에 쉽게 액세스할 수 있으므로 민첩성과 혁신성을 높일 수 있고 시간을 단축하여 인프라에 집중할 수 있다.

ex) AWS에서는 몇 분이면 서버를 시작할 수 있으며 서버가 필요하지 않거나 다른 용도로 전환될 때 간단하게 서버를 종료할 수 있다. 가상 리소스 및 자동화된 리소스를 통해 여러 유형의 인스턴스, 스토리지 또는 구성을 사용하여 신속하게 비교 테스트를 수행할 수 있다.

ex) AWS CloudFormation을 사용하여 향상된 운영 제어 수준에서 개발, 테스트 및 생산 목적을 위한 일관적인 템플릿 기반 환경에 액세스할 수 있다.

 

클라우드 컴퓨팅을 사용하면 저렴한 비용과 낮은 위험으로 빠르게 실험할 수 있다. 이를 통해 더 많은 실험을 할 수 있으며 더 자주 혁신과 새로운 구성을 발견할 수 있다.


민첩성처럼 탄력성 역시 클라우드 컴퓨팅의 강력한 기능이라고 할 수 있다.

탄력성은 컴퓨팅 리소스 규모를 쉽게 확장하거나 축소할 수 있는 기능을 의미한다.

AWS 클라우드는 탄력적이므로 신속하게 새 애플리케이션을 배포하고, 워크로드 증가에 따라 확장하고, 더 이상 필요하지 않은 리소스는 즉시 종료할 수 있다.

따라서 필요한 가상 서버 수가 1개이든 수천 개든, 컴퓨팅 리소스가 몇 시간 필요하든 온종일 필요하든 상관없이 AWS는 고객의 필요를 충족하기 위한 탄력적인 클라우드 인프라를 제공한다.

 

AWS 도구인 Auto Scaling 및 Elastic Load Balancing을 사용하여 애플리케이션의 규모를 수요에 맞춰 자동으로 확장하거나 축소할 수 있다.

 

 Amazon의 거대한 인프라의 힘을 빌어, 필요할 때면 언제든 컴퓨팅 및 스토리지 리소스에 액세스할 수 있다. AWS를 사용하면 전 세계 여러 리전에 시스템을 쉽게 배포하는 한편, 최소 비용으로 고객에게 더 짧은 지연 시간과 더 나은 사용 경험을 제공한다.

 

조정 효율성 덕분에 고객은 여러 번의 조달 주기와 값비싼 평가 절차 없이도 혁신적인 서비스와 최첨단 기술을 사용할 수 있다.

AWS는 사실상 모든 워크로드를 지원하는 포괄적인 기능을 제공해준다. 이러한 수준의 혁신을 통해 고객은 최신 기술에 계속 액세스할 수 있다.


안정성시스템이 인프라 또는 서비스 장애를 복구하는 능력이다.

클라우드 컴퓨팅에서는 안정성이란 컴퓨팅 리소스를 확보하여 수요를 충족하고 중단을 완화하는 능력을 의미한다.

안전성을 확보하려면 아키텍처 및 시스템 수요의 변화를 처리할 수 있는 잘 계획된 기반을 갖추고 있어야 하며 장애를 감지하고 자동으로 수정해야 한다.

AWS를 사용하여 조직은 더 큰 유연성과 용량을 달성할 수 있으며 이를 바탕으로 하드웨어 수요 예측의 불확실성을 줄일 수 있다.

또한 AWS의 조정 기능은 고객에게 온프레미스 솔루션이 제공하기 어려운 용량과 안정성을 제공한다.

안정성은 AWS 클라우드의 핵심 구성 요소이다. 이것이 바로 Amazon의 데이터 센터가 전 세계 AWS 리전에서 호스팅되는 이유이다.

각 리전은 가용 영역이라는 격리된 위치가 여러 개 있는 개별 지리 영역이다. 가용 영역은 하나 이상의 개별 데이터 센터로 구성되며, 각 데이터 센터는 분리된 시설에 구축되고 중복 전력, 네트워킹 및 연결이 제공된다.

따라서 AWS 클라우드를 사용할 때 여러 위치에 인스턴스 및 데이터와 같은 리소스를 배치할 수 있다. 이는 안정성을 보장하는 뛰어난 방법이다.

단일 위치에서 모든 인스턴스를 호스팅하다 장애가 발생할 경우 아무 리소스도 사용할 수 없기 때문이다. 가용 영역을 사용하면 단일 데이터 센터를 사용하는 것보다 더 높은 가용성, 내결함성 및 확장성을 갖춘 프로덕션 애플리케이션과 데이터베이스를 운영할 수 있다.

가용 영역의 구조는 의도적이며 내결함성과 직접 관련이 있다.

내결함성시스템의 일부 구성 요소가 작동하지 않더라도 해당 시스템이 계속 작동할 수 있는 기능으로 정의한다.

이를 애플리케이션 구성 요소의 내장된 중복성이라고 생각해보자. 고가용성은 시스템이 항상 작동하고 액세스 가능하며 사람의 개입 없이 중단 시간을 가능한 한 최소화하는 것이다.


고객의 데이터 보안을 살펴보자

이는 Amazon의 최우선 과제이다. AWS 고객은 데이터를 저장하는 리전, 암호화 처리 방법 및 암호화 키 보유자를 포함하여 데이터에 대한 완벽한 제어 및 소유권을 보유하므로 지역 규정 준수 및 데이터 거주 요건을 손쉽게 충족할 수 있다. 클라우드 컴퓨팅 이전에는 인프라 보안 감사가 시간이 많이 걸리는 수동 프로세스 였다. 너무 어려운 작업이라 간헐적으로 수행이 되었다. 이제 AWS 클라우드에서 IT리소스를 지속적으로 모니터링 할 수 있는 기능을 제공하므로 변경 사항을 즉시 파악하고 필요한 경우 대응할 수 있다.

또한 AWS는 시설, 네트워크, 소프트웨어, 비즈니스 프로세스에 걸쳐 업계 최고의 기능을 제공하여 엄격한 보안 요구 사항을 충족한다.

이제 AWS의 보안 기능이 세계 최고 수준인 이유를 살펴보자.

안정성이 뛰어난 AWS 데이터 센터는 최첨단의 전자 감시 및 멀티 팩터 액세스 제어 시스템을 사용한다. AWS 데이터 센터에는 24시간 연중 무휴 숙련된 직원이 상주하고 있으며 액세스가 엄격히 규제된다.

AWS 환경 시스템은 운영 중단을 최소화하도록 설계되었다.

또한 여러 지리적 리전 및 가용 영역을 사용하면 자연 재해나 시스템 장애 등 대부분 장애에서도 시스템을 유지할 수 있다.

AWS 자산은 프로그래밍 가능한 리소스이므로, 보안 정책이 처음부터 인프라에 구축될 수 있다.


AWS는 컴퓨팅, 스토리지, 데이터베이스, 분석, 네트워킹, 모바일 개발자 도구, 관리 도구, IoT(사물 인터넷), 보안 및 엔터프라이즈 애플리케이션을 비롯하여 광범위한 글로벌 클라우드 기반 제품을 제공하고 있다.

이러한 서비스를 사용하면 조직이 더 빠르게 움직이고, IT 비용을 낮추며, 성장할 수 있다.

바로 이러한 이유로 AWS는 웹 및 모바일 애플리케이션, 게임 개발, 데이터 처리 및 웨어하우징, 스토리지, 아카이브 등 다양한 워크로드를 지원하면서 대기업과 주요 스타트업의 신뢰를 얻고 있다.


AWS 인터페이스 소개

- AWS 관리 인터페이스

AWS 리소스에 액세스하고 사용하기 위한 편리한 옵션에 대해 설명

 

AWS 사용자는 세 가지의 고유한 방식, 즉 AWS Management Console, AWS CLI(AWS 명령줄 인터페이스),  AWS 소프트웨어 개발 키트(SDK)를 사용하여 리소스를 생성하고 관리할 수 있다.

 

이 세가지 옵션은 모두 AWS의 기반 역할을 하는 공통 인터페이스 또는 API를 기반으로 한다.


AWS Management Console은 AWS 기능에 액세스할 수 있는 그래픽 인터페이스를 제공한다.

  • 다양한 AWS 서비스 및 기능을 열고 사용할 수 있다.
  • IOS와 Android에서도 사용할 수 있는 앱도 있어 편리한 시간에 기존 리소스 및 경보를 확인하고 운영 작업을 수행할 수 있다.

AWS CLI를 사용하면 명령줄에서 AWS 서비스를 제어할 수 있다.

  • 프로그래밍 언어에 구애받지 않고 AWS 리소스 배포를 자동화하고 반복할 수 있다.

AWS에서는 다양한 인기 프로그래밍 언어를 사용하여 AWS에 액세스할 수 있는 SDK도 제공한다.

  • 기존 애플리케이션에서 AWS를 사용할 수 있으며, 코드만 사용하여 복잡한 시스템을 배포하고 모니터링할 수 있는 애플리케이션을 만들 수 있다.

AWS CLI 및 SDK는 AWS 기능을 사용자 지정하고, 비즈니스에 맞는 고유한 도구를 만들 수 있는 유연성을 제공한다.

위의 세 가지 모드를 모두 교대로 사용할 수 있다. 이러한 모드는 베타적이지 않다.

ex) SDK 호출을 사용하여 Amazon EC2 인스턴스를 생성한 다음, 이를 확인하고, AWS CLI를 사용하여 나중에 콘솔에서 클릭 몇 번으로 종료할 수 있다.


AWS Management Console

AWS Managenment Console

  • 콘솔은 월별 지출 모니터링, 보안 자격 증명 관리, 새로운 사용자 설정 등의 작업을 비롯하여 AWS 계정의 모든 측면에 대한 클라우드 관리를 지원한다.
  • 서비스를 찾아 열 수 있는 여러 가지 방법을 제공한다.
  • 콘솔 홈페이지에서 필요한 항목을 검색하거나, 최근에 방문한 서비스를 선택하거나, 모든 서비스 섹션을 확장하여 AWS의 모든 서비스를 검색할 수 있다.
  • 서비스 옵션은 항상 상단의 탐색 모음에 표시되므로 언제든지 필요한 항목을 검색할 수 있다.
  • 서비스를 그룹별로 나열하거나 알파벳 순으로 정렬도 할 수 있다.
  • 가장 자주 방문하는 서비스에 대한 바로 가기를 만들어 콘솔에서 사용자 경험을 개인화할 수 있다.
  • 핀 아이콘을 사용하면 서비스 링크를 도구 모음에 바로 끌어서 놓을 수 있다.
  • 리소스 그룹을 사용하여 콘솔 사용을 간소화할 수 있다.
  • 자주 사용하는 각 애플리케이션, 서비스, 관련 리소스 모음에 대한 리소스 그룹을 생성할 수 있다. 그런 다음 AWS 메뉴를 사용하여 저장된 각 리소스 그룹으로 빠르게 이동할 수 있다.
  • 리소스 그룹은 자격 증명별로 고유하다. 따라서 계정의 각 사용자는 자신이 자주 액세스하는 리소스 및 일반적인 작업에 대해 고유한 리소스 그룹을 생성할 수 있다.
  • 이러한 리소스 그룹 정의를 URL을 사용하여 동일한 계정의 다른 사용자와 공유할 수 있다.
  • 태그 편집기를 사용하면 태그를 지원하는 리소스 유형의 태그를 쉽게 관리할 수 있다. 이러한 태그 키와 값을 한 번에 여러 리소스에 적용할 수 있다.
  • 태그 편집기는 글로벌 태그 검색과 대량 편집을 지원한다. 따라서 특정 태그가 있는 모든 리소스를 찾거나, 몇 번의 클릭만으로 여러 리소스에 걸쳐 태그를 변경할 수 있다.
  • 콘솔에서 유용한 리소스에 액세스하여 AWS 서비스 및 기능에 대해 알아보고 솔루션을 구축하기 시작할 수 있다.
  • 솔루션 구축 섹션에는 원하는 솔루션에 필요한 리소스를 생성하는 데 도움이 되는 자동화된 마법사와 작업 흐름이 있다.
  • 구축 방법 알아보기 섹션에는 솔루션 유형 및 사용 사례별로 구성된 학습 리소스가 포함되어 있다.
    리소스에는 자습서, 동영상, 자습형 실습, 프로젝트 가이드 및 과정 설명서가 포함될 수 있다.
  • 원격 디바이스를 사용하여 원격으로 콘솔에 액세스하려면 Amazon App Store, Google Play 또는 iTunes에서 모바일 앱을 다운로드하기만 하면 된다.
  • 다른 인터페이스를 사용하여 변경한 항목이 콘솔에 업데이트되고 표시되는데 시간이 걸릴 수도 있다.
    ex) CLI를 사용하여 기능을 변경한 경우 콘솔을 처음 시작할 때 콘솔에서 해당 기능을 읽을 수 없을 수도 있다.

AWS CLI

AWS CLI

  • 많은 구성 작업을 수행하지 않고도 AWS 서비스와 상호 작용할 수 있도록 지원하는 오픈 소스 도구이다.
  • Windows, Linux, macOS 또는 Unix용 명령을 실행하는 것을 비롯하여 명령줄에서 AWS의 모든 기능을 사용할 수 있다.
  • 이 과정의 뒷부분에서 이를 수행하는 방법에 대해 자세히 알아볼 수 있다.

 

AWS SDK

AWS SDK

  • AWS에 구축된 애플리케이션이 인프라를 코드로 관리할 수 있다.
  • 코드형 인프라라는 개념은 강력하고 파괴적이며 클라우드를 기존 IT 환경과 차별화하는 개념이다.
  • 이러한 언어별 SDK에는 함수를 직접 작성하는 어려움이 없이 다양한 AWS 클라우드 서비스의 연결성 및 기능을 코드에 쉽게 통합할 수 있는 API가 포함되어 있다. 

AWS는 시작 안내서, 개발자 안내서, API 레퍼런스뿐만 아니라 커뮤니티 포험 및 블로그를 비롯하여 이러한 SDK에 대한 광범위한 리소스를 제공한다.