본문 바로가기

AWS 공부23

AWS SQS(Simple Quere Service) SQS (Simple Queue Service) SQS(Simple Queue Service)는 애플리케이션을 구성하는 다양한 각각의 컴포넌트가 메시지를 주고받을 수 있게 해주는 관리형 메시지 서비스이다. SQS는 높은 가용성과 탄력성을 제공하여 수십만 건의 메시지를 수 초 만에 처리할 수 있다. 특히 이런 SQS를 좀 더 확장하여 요즘 기술 추세를 보면 애플리케이션 확장성과 신뢰성을 높이기 위해 또 불필요한 요소를 최소화해 하나의 서버에서 실행되는 단일 애플리케이션을 구현하되 각각의 마이크로서비스로 세분화한다. 여기서 마이크로서비스는 서로 다른 서버에서 실행되지만 서로에게 메시지를 전송하며 긴밀하게 통신하고 하나의 마이스크로서비스에 이상이 생기더라도 각각의 서버에서 실행되기 때문에 다른 컴포넌트에는 영.. 2022. 6. 20.
AWS Systems Manager AWS Systems Manager는 AWS 리소스 및 온프레미스 서버에 대한 각종 액션을 자동화, 수동화를 할 수 있게 제공한다. AWS Systems Manager는 앞서 말한 것처럼 수동화, 자동화를 모두 가능하게 하는 데 자동화 측 관점에서 보면 개발자에 의한 수작업이나 스크립트 작성 등이 필요한 다수의 유지보수 임무를 자동화하여 수작업의 수고를 줄여줄 수 있다. 온프레미스와 EC2 인스턴스의 경우는 System Manager를 통해 설치된 패키지 업그레이드, 소프트웨어의 인벤토리 생성, 새로운 애플리케이션 설치 등 다양한 임무를 도와줄 수 있다. AWS Systems Managers의 리소스 관리 측면에서 바라보면 EBS 스냅숏에서 AMI 대표 이미지를 생성할 수 있고 또 IAM 인스턴스 프로필.. 2022. 6. 20.
배포 자동화 - CodePipeline CodePipeline Codeipeline은 배포 자동화를 지원한다. 소프트웨어 배포는 여러 단계로 절차가 있는데 지속적 배포(Continuous Integration)와 지속적 통합(Continuous Delivery) 워크플로우와 파이프라인 기법을 통해 배포 자동화를 구현한다. 지속적 통합의 첫 번째 단계로 source stage에서 개발자가 버전 제어 시스템을 통해 repository에 정기적으로 애플리케이션을 업데이트하고 관리하는 방식을 의미한다. 두 번째 단계로 build stage에서는 빌드 시스템이 코드를 컴파일하고 AMI 같은 바이너리 파일 속에 빌드하는 방식을 사용한다. 지속적 통합의 목적은 애플리케이션의 요구 사항에 적합한 코드를 Repository에 제공하도록 하는 것이다. 그렇기 .. 2022. 6. 17.
AWS 배포 환경설정 배포 환경설정(DeployMent Configulation) 배포 환경설정(Deployment Configulation)은 CodeDeploy가 배포할 인스턴스 수, 전반적인 배포 작업 및 배포 성공 판정에 대해서 관여하는데 배포 그룹 생성 시 배포 환경설정도 같이 설정을 해줘야 한다. 배포 타입인 OneAtATime, HalfAtATime, AllAtOnce에 따라 배포 환경설정이 제공된다. 배포 그룹이 하나 이상의 인스턴스인 경우 CodeDeply는 한 번에 하나씩 애플리케이션 배포가 성공한 후에 다음 배포로 넘어가는데 OneAtATime은 마지막 인스턴스를 제외한 나머지 모든 인스턴스의 배포가 성공했을 때 배포 성공으로 판정한다. 예를 들어 인스턴스가 5개일 경우 마지막 인스턴스를 제외한 4개의 인.. 2022. 6. 16.
AWS 배포 - CodeCommit, CodeDeploy AWS CodeCommit AWS CodeCommit은 코드, 스크립트, 바이너리 파일 등 버전 제어 파일을 위한 프라이빗한 Git repository 서비스이다. Git은 Linux Torvalds가 만든 무료 오픈소스 버전 제어 시스템으로 보통 소프트웨어 개발 프로젝트에서 사용한다. Git을 이용하여 개발자들은 소스 코드, 스크립트, 바이너리 파일 등 파일의 저장 및 히스토리 추적에 사용한다. AWS CodeCommit은 Git과 비교하여 몇 가지 장점이 있다. AWS CodeCommit은 개별 파일당 2GB의 용량까지 가능하고 repository에 대한 용량 제한이 없다. 또 AWS KMS를 이용하여 저장 중 데이터를 암호화하고 HTTPS 및 SSH를 이용하여 이동 중에도 데이터를 암호화할 수 있다.. 2022. 6. 15.
AWS 운영 효율화 AWS 운영 효율화 클라우드 서비스에서 애플리케이션을 원활하고 안정적으로 운영하기 위해서 워크로드, 비즈니스 목표, 조직 규정, 요구사항 수행과 관련된 업무 등을 자동화하는 것이 좋다. 이러한 업무들을 자동화하기 위해서 사용자는 인프라 리소스와 운영 업무를 코드화해야 한다. 코드화된 자동화 업무는 자동으로 인한 작업 소비 시간을 줄여주고 인간의 수기로 인한 작업 오류를 방지하여 신속하고 정확하게 업무를 처리할 수 있다. 그리고 자동화 업무에 대해 로그를 남겨 작업 후 수행된 작업 내용을 확인할 수 있고 시간이 지남에 따라 코드 변경 이력도 쉽게 확인할 수 있다. 또 사용자가 AWS 운영에 조금만 익숙해진다면 처리해야 할 상황이 변해도 간단한 코드 변경과 테스트로 자동화 작업을 좀 더 효율적으로 만들 수 .. 2022. 6. 14.
비용 효율화 - E2C 예약 인스턴스, EC2 스팟 인스턴스 E2C 예약 인스턴스 사용자는 E2C 예약 인스턴스를 구매하면 1년 내내 컴퓨팅 작업을 수행할 수 있다. 예약 인스턴스를 구매하여 장기간 동안 저비용으로 컴퓨트 리소스를 사용하는 것은 당연한 말이지만 비용적인 면에서 효율적이다. Amazon EC2 Reserved Instance Marketplace에서 예약 인스턴스를 구매하고 예약 인스턴스의 사용 권한을 부여받은 후 다른 보통의 EC2 인스턴스처럼 환경설정을 세팅해주면 된다. 이때 사용자가 선택한 인스턴스에 따라 비용의 절감 정도를 정할 수 있고 유연성을 확보할 수 있다. Convertible Reserved Instance를 구매하면 비용은 조금 더 비싸지만 성능이 월등한 온디맨드 인스턴스로 교체할 수 있는 옵션을 제공한다. Convertible R.. 2022. 6. 13.
AWS 비용 관리 2 AWS 비용 관리 2 다수의 리소스 사용에 대해 비용 모델을 구현하는 방법은 각종 서비스 비용을 모아서 스택 구성 요소별로 가격표 태그를 붙이는 것이다. 그러나 여러 리소스와 서비스 요소가 결합한 클라우드 스택의 적정 가격을 일일이 확인하는 것은 쉽지 않은 일이고 옵션 설정과 시간이 지남에 따라 가격이 변동하여 사실상 정확한 비용 모델을 구현하는 건 불가능하다고 느낄 수도 있다. 그래서 AWS는 리소스 스택에 대하여 모든 가격과 공식을 반영한 비용 모델과 비용 계산기를 제공한다. 사용자 입장에서는 AWS가 제공하는 Simple Monthly Calculator와 AWS TCO(Total Cost of Ownership) Calculator를 선택하거나 둘을 결합하여 비용을 산출할 수 있다. Simple .. 2022. 6. 12.
AWS 비용 관리 AWS 비용 관리 AWS 관리 콘솔 상단의 대시보드 링크를 선택하면 대금 및 비용 관리 대시보드(Biling and Cost Management Dashboard)로 연결된다. 해당 메뉴에서 세무 등록 정보, 과거에 발행된 청구서, 크레딧 관리, 계정 레벨의 각종 비용 정보를 확인할 수 있다. 그리고 단순 문자형 자료로만 제공하는 것이 아니라 사용자가 편리하게 볼 수 있게 시각화된 자료로 이번 달 비용 관련 작업 내용도 확인할 수 있다. AWS 비용 모니터링 및 제어 도구는 꾸준히 지속적으로 개선되어 왔는데 이들 도구의 기본 목적은 현재 사용자 비용의 발생 원인이 되는 자원이 무엇인지 이들 자원 비용을 어떤 방식으로 추적할 수 있는지 알려준다. 비용 대시보드 좌측에 있는 기본 설정 메뉴를 선택하면 비용 .. 2022. 6. 11.
AWS 보안 3 AWS 보안 3 Amazon GuardDuty는 VPC flow logs, Route 53 DNS query logs, CloudTrail management event logs 등 로그를 분석하여 악성 IP 주소, 도메인 네임과 이와 관련된 악의적인 행동을 탐색한다. CloudWatch의 로그 데이터는 GuardDuty에 따로 전송할 필요는 없다. GuardDuty가 잠재적인 보안 위협을 탐지하면 위협 탐지나 Finding 노티피케이션을 생성하여 관련 요소의 세부 사항을 전달한다. 위협 탐지 내용은 GuardDuty콘솔에 표시되고 CloudWatch Events에도 전송된다. 위협 탐지는 위협의 종류에 따라 여러 타입으로 분류되는 Backdoor, Behavior, Cryptocurrency, Pent.. 2022. 6. 10.
AWS 보안 2 AWS 보안 2 신분 기반 정책( Identity-Based Policies) 외에도 IAM과 같이 자원에 대한 접근 제어를 위해 일부 AWS 서비스에서는 자원 기반 정책(Resource-Based Policies)을 정의할 수 있다. 예시로 S3의 경우 자원 기반 정책의 일종인 버킷 정책을 통해 객체와 전체 버킷을 제어할 수 있도록 한다. KMS (Key Management Service)의 경우는 사용자에게 Key 관리자와 사용자를 지정하기 위한 Key 정책을 자체적으로 정의하도록 한다. SNS(Social Network Service)의 경우 메시지의 배포와 메시지 구독을 제어하고 전송 프로토콜을 정의하기 위한 자원 정책을 제공한다. SQS(Simple Queue Service) 큐도 마찬가지로 자.. 2022. 6. 9.
AWS 보안 AWS 보안 AWS는 부여한 신분을 통해 사용자는 AWS 관리 콘솔이나 AWS CLI로 AWS 접속한다. 사용자는 AWS 활용을 통해 AWS 자원과 서비스를 사용하고 관리한다. 이때 기능적으로 AWS를 사용하는 것은 무엇보다 중요하지만 그만큼 보안은 중요하다. AWS 서비스를 통해 사용자가 원하는 것을 수행하고 관리하는 것을 악의적인 해커나 다른 사람에게 노출된다면 서비스 자체를 안 하는 것이 나을 것이다. AWS에서의 보안은 기본적으로 IAM(Identity andAccess Management)을 통해 관리된다. IAM에서 제공하는 신분을 통해 기준이 생긴다. 그리고 AWS의 자격인증은 AWS의 각종 자원과 서비스에 접근할 수 있는 핵심 정보이다. 이러한 신분과 접근권한을 관리하면서 주요 정보를 노출.. 2022. 6. 8.
AWS 성능 효율화 AWS 성능 효율화 AWS 클라우드 서비스는 물리적인 인프라 작업 없이 높은 효율을 제공하는 서비스이다. 단순히 AWS 클라우드 자원이 문제없이 실행되는 것만으로는 부족하다. AWS 클라우드 자원을 최대한 활용하기 위해 AWS 클라우드 특유의 각종 기능을 최대한 활용할 필요가 있다. AW는 컴퓨팅, 스토리지, 데이터베이스, 네트워크 서비스의 다양한 장점과 유연성을 제공하는데 애플리케이션의 성능 최적화를 위해 이들 도구를 미세하게 조절하고 세심하게 관리하고 플랫폼에 내장 다양한 환경설정 옵션도 사용할 수 있어야 한다. 우선 컴퓨팅 서비스의 가장 근본적인 목적은 워크로드 수요에 맞춰 신속하고 효율적으로 컴퓨팅 자원을 제공하는 것이다. 하지만 세상의 모든 문제를 동일한 컴퓨팅 자원만으로 해결한다는 것은 불가능.. 2022. 6. 6.
Amazon CloudFront Amazon CloudFront CloudFront는 Amazon의 글로벌 CDN(Content Delivery Network) 서비스로 전 세계의 고객들에게 콘텐츠를 제공한다. 이는 Route 53은 제공하지 못하는 기능이다. CloudFront는 콘텐츠를 요청한 엔드 유저와 지리적으로 가까운 edge 로케이션을 기반으로 제공되는 네트워크 서비스로서 사용자가 콘텐츠 배포 방식을 설정하면 글로벌 네트워크를 통해 전 세계 고객에게 콘텐츠를 제공할 수 있다. Route 53 환경설정으로 DNS 요청을 CloudFront 배포에 전달하면 엔드 유저가 자동으로 자신과 가까운 엔드포인트로 연결된다. 이 Route 53의 DNS 요청 때문에 유저는 자신과 가장 가까운 CloudFront 엔드포인트로 요청을 보내는 .. 2022. 6. 5.
AWS DNS Route53 AWS DNS Route53 사용자가 클라우드 자원에 좀 더 쉽게 접속할 수 있게 하는 것은 자원을 생성하는 일만큼이나 중요하다. 네트워크를 통해 웹 사이트 접속하려면 가용성, 정확성, 속도 등의 요소가 고려돼야 한다. AWS는 DNS와 네트워크 라우팅을 위한 도메인 네임 시스템, 네임 서버, 네임 스페이스가 서비스가 존재한다. DNS(Domain Name System)는 IP를 사람이 독해할 수 있는 주소 방식으로 접근할 수 있도록 변경해주는데 네이버, 다음, 구글 등 인터넷의 실제 IP 주소는 ‘192.168.123.456’ 같은 포맷으로 정의되어 있지만 이 DNS 시스템을 통해 ‘https://www.naver.com’, ‘https://www.google.co.kr’ 등 사람이 읽기 쉬운 형태로 .. 2022. 6. 3.
AWS IAM AWS IAM (Identity and Access Management) AWS 자원은 안전하게 보호해야 하기 때문에 적절한 접근제어가 필요하다. 접근제어가 너무 엄격할 경우 Admin이나 고객이 접근해야 하는 자원에 접근하지 못하는 문제가 발생할 수 있다. 안전성과 접근성의 균형을 맞추는 일은 생각보다 어려운 일이고 접근제어를 위해 사용자를 등록하거나 접근 권한을 허용 또는 불허하는 시스템을 갖추기 위해서는 많은 노력이 필요하다. 이러한 어려운 부분을 해결하기 위해 AWS는 IAM(Identity and Access Management)을 제공한다. AWS 사용자는 IAM을 통해 자원 관리에 필요한 신분확인 및 권한 부여 업무를 처리할 수 있다. AWS에서 자원에 접근하기 위한 신분은 User 또는 R.. 2022. 6. 2.
AWS 데이터베이스_3 Amazon Redshift Amazon Redshift는 관리형 데이터 웨어하우스 서비스로 PostgreSQL 기반이다. Redshift는 칼럼 단위로 데이터를 저장하는 칼럼형 스토리지로서 저장 속도가 빠르고 효율적이며, 개별 칼럼에서 신속하게 질의 작업을 수행한다. Redshift는 스토리지에서 소요되는 칼럼의 수를 줄이기 위해 압축 인코딩 기법을 사용하고 사용자가 수동으로 칼럼 단위로 압축할 수도 있다. 파일에서 COPY 명령을 이용해 Redshift 데이터베이스에 데이터를 Import 하는 경우 Redshift는 어떤 칼럼을 압축할지 결정한다. Redshift는 ODBCOpen Database Connectivity, JDBCJava Database Connectivity 데이터베이스 커넥터를 지.. 2022. 6. 1.
AWS 데이터베이스_2 AWS 데이터베이스_2 각각의 데이터베이스 엔진은 데이터베이스 관리 및 보안을 위해 다양한 기능과 옵션을 제공하며, 사용자는 옵션 그룹을 이용해 하나 이상의 인스턴스에 이들 기능과 옵션을 쉽게 적용할 수 있다. 단, 옵션 적용을 위해서는 상당한 양의 메모리가 필요하므로 여러분의 인스턴스가 옵션 실행에 필요한 충분한 메모리가 있는지 확인한다. 데이터베이스 옵션 그룹에서 사용할 수 있는 옵션은 엔진에 따라 다르며, Oracle은 Amazon S3 통합 기능을 제공하고, Microsoft SQL Server와 Oracle은 스토리지 저장 전 데이터를 암호화하는 TEDTDE(Transparent Data Encryption) 암호화 옵션을 제공하며, MySQL과 MARIADB는 사용자가 데이터베이스 질의 작업을.. 2022. 5. 31.