Ansible for AWS – 간편한 클라우드 관리



이 Ansible for AWS 블로그는 Ansibe를 AWS와 함께 사용하여 EC2 인스턴스 생성 및 프로비저닝 자동화를 시연하는 방법에 대해 설명합니다.

기업은 운영을 개선하기 위해 소프트웨어를 개발하고 설치하는 데 많은 시간과 비용을 투자했습니다. 클라우드 컴퓨팅의 도입은 더 효율적이고 안전한 것으로 입증 된 서비스로서 인터넷에서 소프트웨어에 액세스 할 수있는 비즈니스를 제공했습니다. AWS와 같은 클라우드 인프라를 쉽게 프로비저닝하고 관리 할 수있는 Ansible과 같은 IT 자동화 도구를 통합하는 것은 대박을 터뜨리는 것과 같습니다. 이것이 바로이 Ansible for AWS 블로그에서 이야기 할 내용입니다.

일기:





DevOps를 마스터하려면 ' 코스는 당신의 선택이 될 것입니다.

기업이 클라우드로 마이그레이션하는 이유

앞서 언급했듯이, 회사는 인터넷을 통해 소프트웨어와 같은 서버에 액세스 할 수 있습니다. 명확하게 말하면 클라우드 컴퓨팅은 자체 전력을 생성하는 대신 중앙 전력망에 연결하는 것과 같습니다. 클라우드는 새로운 표준이되었으며 결국 많은 시간과 비용을 절약 할 수 있습니다. 기업이 클라우드로 마이그레이션하는 이유에 대한 몇 가지 이점을 살펴 보겠습니다.



1. 유연성 :

비즈니스 성장은 결코 정적 인 것이 아닙니다. 클라우드 기반 서비스는 증가하고 변화하는 비즈니스 요구에 적합합니다. 요구 사항에 따라 배포를 확장 및 축소하는 기능은 매우 유연합니다.

2. 재해 복구 :

모든 기업은 재해 복구에 투자해야합니다. 모든 행운의 회사는 결국 재해 복구에 많은 투자를합니다. 신생 기업과 저예산 기업은이를위한 자금과 필요한 기술이 부족하며 적절한 기능적 재해 복구 특성을 갖지 못합니다. 클라우드는 고객이 강력하고 비용 효율적인 계획을 개발할 수 있도록 재해 복구 솔루션을 제공합니다.

3. 자동 소프트웨어 업데이트 :

이미 알고 있듯이 클라우드는 인터넷에서 제공하는 서비스이므로 모든 서버가 손이 닿지 않거나 두통이 아닙니다. 공급 업체는 필요할 때 업데이트하고 정기적 인 보안 점검을 실행하는 등이를 처리합니다. 이것은 결국 많은 시간과 돈을 절약하게됩니다.



4. 비용 절감 :

데이터 센터를 처음부터 구축하는 것은 비용이 많이들 수 있습니다. 운영 및 유지 관리는 비용을 증가시킵니다. 적절한 기술, 적절한 하드웨어, 적절한 지식과 경험을 갖춘 적절한 직원이 필요합니다. 또한 그다지 유망하지는 않지만 이것이 잘못 될 수있는 방법은 백만 가지가 있습니다. 클라우드로 마이그레이션하면 이점이 있습니다.

5. 확장 성 :

예상치 못한 성장을 계획하는 전통적인 방법은 추가 서버, 스토리지 및 라이센스를 구입하고 유지하는 것입니다. 실제로 사용하려면 몇 년이 걸릴 수 있습니다. 클라우드 플랫폼을 사용하면 필요할 때 이러한 리소스를 확장 할 수 있습니다. 이 동적 확장은 예측할 수없는 성장에 완벽하게 적용됩니다.

6. 데이터 보안 :

대부분의 경우 데이터를 노트북이나 하드 디스크와 같은 물리적 기기에 저장하는 것보다 클라우드에 보관하는 것이 좋습니다. 이러한 물리적 장치가 도난 당하거나 부서 질 가능성이 높습니다. 클라우드를 사용하면 데이터를 원격으로 제거하거나 다른 서버로 전송하여 데이터가 손상되지 않고 안전하게 유지되도록 할 수 있습니다.

7. 협업 증대 :

클라우드 플랫폼을 사용하면 팀이 언제 어디서나 문서에 액세스, 편집 및 공유 할 수 있습니다. 그들은 함께 일할 수 있으므로 효율성이 증가합니다. 또한 실시간 투명 업데이트를 제공합니다.

Ansible 기능

Ansible에는 몇 가지 고유 한 기능이 있으며 이러한 기능이 Amazon Web Services와 협력 할 때 표시를 남깁니다. 다음과 같은 놀라운 기능을 살펴 보겠습니다.

  1. Ansible은 Chef 및 Puppet과 달리 에이전트없는 아키텍처를 기반으로합니다.
  2. Ansible은 SSH를 통해 호스트에 액세스하므로 서버와 호스트 간의 통신이 스냅처럼 느껴집니다.
  3. 맞춤형 보안 인프라가 필요하지 않습니다.
  4. 플레이 북 및 모듈 구성은 YAML 형식을 따르기 때문에 매우 쉽습니다.
  5. 고객을위한 다양한 모듈 보유
  6. 완벽한 구성 관리, 오케스트레이션 및 배포 기능을 허용합니다.
  7. Ansible Vault는 비밀을 안전하게 유지합니다

Ansible을 AWS에 사용하는 이유는 무엇입니까?

이제 AWS와 같은 Cloud Platform과 Ansible의 고유 한 기능을 사용할 때의 이점을 살펴 보았으므로이 두 가지 전설을 통합하여 만든 마법을 살펴 보겠습니다.

1. 서비스 그룹으로서의 클라우드

클라우드는 다른 사람의 데이터 센터에있는 서버 그룹이 아니라 그 이상입니다. 서비스를 배포하면 알게 될 것입니다. 애플리케이션을 빠르게 배포하고 확장 할 수있는 많은 서비스가 있습니다. Ansible 자동화는 AWS 환경을 서버 그룹으로 사용하는 대신 서비스 그룹처럼 관리하는 데 도움이됩니다.

2. AWS를 지원하는 Ansible 모듈

Ansible은 다양한 서비스를 정의, 배포 및 관리하는 데 사용됩니다. 가장 복잡한 AWS 환경은 플레이 북을 사용하여 매우 쉽게 프로비저닝 할 수 있습니다. 가장 좋은 기능은 서버-호스트 연결을 만든 다음 하나의 시스템에서만 플레이 북을 실행하고 요구 사항에 따라 확장 및 축소 옵션을 사용하여 여러 다른 시스템을 프로비저닝한다는 것입니다.

자바 for 루프 프로그램 예제

Ansible에는 AWS를 지원하는 수백 개의 모듈이 있으며 그중 일부는 다음과 같습니다.

  • 자동 확장 그룹
  • CloudFormation
  • CloudTrail
  • CloudWatch
  • DynamoDB
  • ElastiCache
  • Elastic Cloud Compute (EC2)
  • Identity Access Manager (IAM)
  • 람다
  • 관계형 데이터베이스 서비스 (RDS)
  • Route53
  • 보안 그룹
  • 단순 스토리지 서비스 (S3)
  • 가상 사설 클라우드 (VPC)
  • 그리고 더 많은

3. 동적 인벤토리

개발 환경에서 호스트는 다양한 비즈니스 요구 사항에 따라 계속 가동 및 종료됩니다. 이러한 경우 정적 인벤토리를 사용하는 것만으로는 충분하지 않을 수 있습니다. 이러한 상황에서는 동적 인벤토리를 사용해야합니다. 이렇게하면 매우 지루한 수동으로 호스트를 매핑해야하는 일반 인벤토리와 달리 인벤토리 스크립트에서 제공하는 그룹을 기반으로 호스트를 매핑 할 수 있습니다.

4. 안전한 자동화

5 명으로 구성된 팀이 있고 각 팀에 완전히 숙련되지 않은 두 명의 부하 직원이 있다고 가정합니다. 전체 배포 프로세스에 대한 완전한 액세스 권한을 부여하고 싶지는 않을 것입니다. 이때 승인 제한의 필요성을 깨닫게됩니다.

Ansible Tower는이 기능을 제공하여 권한 부여를 제한합니다. 따라서 기본적으로 누가 무엇을 할 수 있는지 선택하여 조정하기가 더 쉽습니다.또한 Ansible Tower는 자격 증명 및 기타 민감한 데이터를 암호화하고 부하 직원에게 관련 리소스에 대한 액세스 권한 만 부여하고 관련없는 리소스에 대한 액세스를 제한합니다.

데모 : Ansible을 사용하여 EC2 인스턴스 프로비저닝 자동화

이 데모 섹션에서는 EC2 인스턴스의 시작 및 프로비저닝을 자동화하는 방법을 보여줌으로써 Ansible이 AWS를 지원하는 방법을 보여줄 것입니다. 시작하자.

1 단계 :

서버 노드에 Ansible을 설치하고 AWS의 서버와 클라이언트 노드간에 SSH 연결을 설정합니다. 이 경우 두 개의 EC2 인스턴스를 생성했습니다. 하나는 Ansible이 설치된 서버이고 다른 하나는 클라이언트입니다.

2 단계:

이제 모든 요구 사항이 설치되었는지 확인하십시오. 문서에 따르면 다음과 같은 요구 사항이 있습니다.

  • Python> = 2.6
  • 투표

다음 명령을 사용하여 Python을 설치합니다.

$ sudo apt install python

다음 명령을 사용하여 boto를 설치합니다.

$ sudo apt install python-pip
$ pip 설치 boto

자바 예제에서 메소드 오버로딩 및 오버라이드

Boto는 Amazon Web Services를 사용하기위한 Python 인터페이스입니다. 다음 명령을 사용하여 가져와야합니다.

$ 파이썬
$ 가져 오기 버튼
$ exit ()

투표-Ansible For AWS-Edureka

3 단계 :

AWS를 구성해야합니다. 동일하게 다음 명령을 사용하십시오.

$ aws 구성

그리고 AWS 액세스 키 ID, 비밀 키 및 기본 리전 (선택 사항)을 추가합니다.

4 단계 :

플레이 북을 작성하여 EC2 인스턴스를 시작하고 프로비저닝하십시오.

$ sudo vi /etc/ansible/launch.yml

Java에서 hashmap과 hashtable의 차이점
----이름 : ec2 인스턴스 생성 호스트 : web gather_facts : false vars : region : us-east-1 instance_type : t2.micro ami : ami-05ea7729e394412c8 keypair : priyajdm 작업 :-name : ec2 인스턴스 생성 ec2 : aws_access_key : '********************'aws_secret_key : '************************ **************** 'key_name :'{{keypair}} '그룹 : launch-wizard-26 instance_type :'{{instance_type}} '이미지 :'{{ami}} 'wait : true region :'{{region}} '개수 : 1 vpc_subnet_id : subnet-02f498e16fd56c277 assign_public_ip : yes register : ec2

실제로 실행하기 전에 코드가 무엇을하는지 아는 것이 좋습니다. 더 나은 이해를 위해이 플레이 북을 설명하겠습니다.

이름: 말 그대로 무엇이든 될 수 있습니다. 수행하는 작업에 대한 기본 설명을 제공하는 이름을 유지하는 것이 좋습니다.

주최자: 플레이 북을 실행해야하는 호스트 목록의 이름을 언급합니다. 제 경우에는 편물 .

gather_facts : 이 매개 변수는 Ansible에 향후 참조를 위해 모든 관련 사실, 변수 및 기타 데이터를 수집하도록 지시합니다. 여기서는 사실 (IP 주소, 호스트 이름 등) 수집을 사용하지 않기 때문에 false로 설정했습니다.

누구 : 이 섹션에서는이 플레이 북에서 사용할 모든 변수를 정의하고 초기화합니다. 여기에 4 개의 변수가 있습니다.

  • 부위 EC2 인스턴스가 시작되어야하는 지역을 정의합니다.
  • instance_type 우리가 가져 오려는 인스턴스의 유형을 정의합니다. 우리의 경우 t2.micro를 사용하고 있습니다.
  • 어느 가져 오려는 인스턴스의 AMI를 정의합니다.

  • 키쌍 인스턴스를 가져 오는 데 사용할 키 쌍을 정의합니다.

ec2 : 이것은 EC2 인스턴스를 시작하거나 종료하는 데 사용되는 Ansible에서 제공하는 모듈입니다.

이 모듈에는 시작하려는 EC2 인스턴스의 다른 기능을 지정하는 데 사용할 특정 파라미터가 있습니다.

  • 매개 변수를 사용하여 AWS 액세스 키 ID와 비밀 키를 언급하는 것으로 시작합니다. aws_access_keyaws-secret_key .
  • key_name : 여기에서 사용되는 키 쌍을 정의하는 변수를 전달하십시오.
  • 그룹: 보안 그룹의 이름을 언급합니다. 이것은 우리가 가져 오려는 EC2 인스턴스의 보안 규칙을 정의합니다.
  • instance_type : 여기서 사용하는 인스턴스 유형을 정의하는 변수를 전달합니다.
  • 영상: 시작하려는 이미지의 AMI를 정의하는 변수를 전달합니다.
  • 기다림: 부울 값은 true 또는 false입니다. true 인 경우 반환하기 전에 인스턴스가 원하는 상태에 도달 할 때까지 기다립니다.
  • 부위: EC2 인스턴스를 생성해야하는 지역을 정의하는 변수를 전달합니다.
  • 카운트: 이 매개 변수는 생성해야하는 인스턴스 수를 지정합니다. 이 경우에는 하나만 언급했지만 이는 요구 사항에 따라 다릅니다.
  • vpc_subnet_id : 인스턴스를 만들려는 서브넷 ID를 전달합니다.
  • assign_public_ip : 이 매개 변수에는 부울 값이 있습니다. 우리의 경우와 마찬가지로 사실이면 VPC 내에서 프로비저닝 될 때 퍼블릭 IP가 인스턴스에 할당됩니다.

5 단계 :

이제 플레이 북의 모든 줄을 이해 했으니 실행 해 보겠습니다. 다음 명령을 사용하십시오.

$ ansible-playbook /etc/ansible/launch.yml


플레이 북을 실행하면 인스턴스가 생성되는 것을 볼 수 있습니다.


그리고 TADA! EC2 인스턴스의 프로비저닝을 성공적으로 자동화했습니다. 같은 방법으로 플레이 북을 작성하여 EC2 인스턴스를 중지 할 수도 있습니다.

이제 Ansible For AWS 블로그가 끝났습니다. 이 기사가 유용하다고 생각되면 ' Edureka 제공. IT 산업을 효율적으로 만드는 모든 도구를 다룹니다.