アリババクラウド ：オープンソース開発者向けツールをサポートし、開発者のクラウドでの生産性向上を支援

**Alibaba Cloud**は、**Terraform**、Ansible、Packer、Vault、BOSHなどの主流のオープンソース管理ツールをサポートしており、開発者がクラウドでより生産性を高められるようにサポートします。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/alibaba-cloud-supports-mainstream-open-source-developer-tools-to-further-enhance-developers-experience_594355)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

執筆者OpenAPI & ToolsチームXiaozhu

クラウドコンピューティングとビッグデータの時代には、継続的なエンタープライズデータのクラウド化、ビジネス開発、技術アーキテクチャの進化により、リソース、アプリケーション、データを管理するためのO&Mがより複雑になり、コストが上昇しています。このような絶え間なく複雑なビジネスシナリオの変化は、次のような疑問を投げかけています。

1、ビジネスインフラが複雑化する中で、数クリックでアーキテクチャを構築することはまだ可能なのか？
2、カスタムクラウドイメージを利用して複数のインスタンスを作成することは可能なのか？
3、企業や個人のデータセキュリティへの関心が高まる中、AccessKeyや証明書などのセンシティブなデータを自動的に暗号化し、アクセスし、保存するにはどうすればいいのか？
4、マシンに手動でログオンすることなく、アプリケーション開発とO&Mを実施するにはどうすればよいのでしょうか？
5、複雑なアーキテクチャにある多数のマシンからのデータを素早くアリババクラウドに移行するには？
6、企業がデータをクラウドに移行したい場合、異なるベンダーのクラウドリソースを統一的に管理するには？


このような問題に対処するために１つ以上の自動化ツールが利用可能であれば、機械は複雑な作業を行うことができ、一方、ユーザは簡単な構成にのみ集中する必要があります。そのような自動化は、作業効率を大幅に向上させることができます。

では、どのようにすれば、ユーザーのためにすべての反復作業を機械にやらせることができるのでしょうか。そこで登場するのがIaC（Infrastructure as Code）です。IaCとは、アリババクラウドのリソース、クラウドイメージの構築プロセス、アプリケーションの展開プロセス、データ管理プロセスなどを、コードでテンプレートに定義したものです。これらのテンプレートを開発者ツールで管理することで、開発者はAlibaba Cloudのリソース、アプリケーション、データを効率的に管理することができます。

現在、アリババクラウドは、Terraform、Ansible、Packer、Vault、BOSHなどの主流のオープンソース管理ツールをサポートしています。これらのツールは、開発者が自動O&M、マルチクラウド管理、クラウド移行、データセキュリティの各領域でより生産的な力を解放し、統一された方法でクラウドインフラストラクチャを効率的に管理するのに役立ちます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/cf7a45bb-dc24-5574-b878-843863bc8c3b.png)


#Terraform、リソース管理の簡素化
Terraformはオープンソースのリソースオーケストレーションツールです。Terraformの構文を使用して、Terraformテンプレートのコードを通してリソースを定義することができます。その後、Alibaba Cloud Terraform Providerを使用して、[Elastic Compute Service](https://www.alibabacloud.com/product/ecs?spm=a2c65.11461447.0.0.fc351c04NboAQS)（ECS）インスタンス、[VPCs](https://www.alibabacloud.com/product/vpc?spm=a2c65.11461447.0.0.fc351c04NboAQS)、VSwitch、[Server Load Balancer](https://www.alibabacloud.com/product/server-load-balancer?spm=a2c65.11461447.0.0.fc351c04NboAQS)（SLB）インスタンスなどのAlibaba Cloudリソースを統一的に作成して管理することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/413813b8-3b7a-70b3-e32b-1191045ec9cf.png)

以下では、既存のテンプレートterraform-alicloud-classic-load-balanceを例に挙げています。VPC、VSwitch、ECSインスタンス、[RDSインスタンス用のApsaraDB](https://www.alibabacloud.com/product/apsaradb-for-rds?spm=a2c65.11461447.0.0.fc351c04NboAQS)、セキュリティグループ、SLBインスタンス、OSSバケットなど、クラシックSLBアーキテクチャに必要なすべてのリソースは、テンプレートファイルmain.tfに定義されています。システムアーキテクチャを素早く構築し、ワンクリックでリソースを解放するには、以下のコマンドを順番に実行します。

```
# Download the template and go to the template directory.
$ git clone https://github.com/terraform-alicloud-modules/terraform-alicloud-classic-load-balance.git && cd terraform-alicloud-classic-load-balance
# Initialize Terraform.
$ terraform init
# Preview the resources to be created.
$ terraform plan
# Create all resources.
$ terraform apply
# Release all resources with one click.
$ terraform destroy
```

現在、Alibaba Cloud Terraform Providerは、22のAlibaba Cloudサービスと100以上のリソースとデータソースをサポートし、様々な事例やモジュールを提供しています。開発者の経験と効率を継続的に向上させ、開発者がより生産的な力を解放できるようにします。

#Packer、イメージ作成からの解放
Packerは、クラウドイメージを自動作成するためのオープンソースツールです。Packerを使用することで、細かなクラウドイメージの作成プロセスに集中することから解放されます。コンソールやマシンにログオンして、手動でクラウドイメージを作成する必要はありません。代わりに、インストールするソフトウェア、カスタマイズするサービス、ダウンロードするアプリケーションを決定するだけでよいのです。その後、Alibaba Cloud Packer Builderを使用すると、ワンクリックで独自のクラウドイメージを作成できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/9dd45fb7-6436-aaa7-6e7e-db0b1535e203.png)

以下では、既存のJenkinsの例を使って、Alibaba Cloud Packer Builderを使ってワンクリックでJenkinsのイメージを作成する方法を説明します。

```
# Download the Jenkins example.
$ git clone https://github.com/alibaba/packer-provider.git
# Create a Jenkins image with one click.
$ packer build examples/alicloud/jenkins/alicloud.json
```

現在、Alibaba Cloud Packer Builderは、一般的に使用されているUbuntu、CentOS、Windowsを含む14のOSディストリビューションのイメージ作成をサポートしています。

#BOSH、プラットフォームアーキテクチャのデプロイと管理を簡素化
BOSHは、小規模または大規模なクラウドソフトウェアをリリースしてデプロイし、そのライフサイクルを通してソフトウェアを管理するために使用されるプロジェクトです。アリババクラウドは、BOSHにクラウドプロバイダーインターフェース（CPI）を提供することで、初のオープンソースPaaSプラットフォームであるCloud Foundryとの統合をサポートし、より多くの企業や開発者がアリババクラウドを利用できるようにしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/826f0836-191d-6e25-0711-bb76b53e47fe.png)

Alibaba CloudがどのようにCloud Foundryをサポートしているのか、詳細な技術的なソリューションをご紹介します。

#Ansible、Alibaba Cloudのリソースを自動管理
Ansibleは、マシンのログオン、アプリケーションパッケージのアップロードやダウンロード、アプリケーションの展開や管理などのプロセスを自動化する強力なエンジンです。アリババクラウドでは、Ansibleの強力な自動管理機能をベースに、ali_instance、ali_vpc、ali_slb_lbなどの複数のクラウドリソース管理モジュールを提供しています。これらのモジュールを使用することで、クラウドリソース管理プロセスをアプリケーションのデプロイ管理プロセスに組み込むことができるため、ワンクリックでリソースを作成し、アプリケーションをデプロイすることができます。これにより、自動化能力とO&M効率がさらに向上します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/0a8716e6-ad55-d67c-590f-7c9bc03ba58d.png)


以下では、既存のalicloud_ecs_vpcの例を使用して、ECSインスタンス、VPC、VSwitch、セキュリティグループ、ECSディスクなどのリソースを自動的に作成・削除する方法を説明します。

```
# Download the alicloud_ecs_vpc example and go to its directory.
$ git clone https://github.com/alibaba/ansible-provider.git && cd ansible-provider/examples/alicloud-ecs-vpc
# Create cloud resources with one click.
$ ansible-playbook alicloud.yml
# Delete cloud resources with one click.
$ ansible-playbook destroy.yml
```

#Vault、鍵管理を簡素化
Vaultは、鍵や機密データを管理するツールです。AccessTokens、AccessKeys、パスワード、セキュリティ証明書、鍵などの機密データを一元的に管理・保管します。Vaultにアクセスすると、アリババクラウドがシークレットエンジンと認証方法を提供してくれるので、複雑な環境変数や静的なキーファイルを設定したり、キーやAccessKeysを紛失する心配がありません。機密データをすべてVaultに保存し、Vaultのコマンドを実行することで、必要に応じてリアルタイムにデータを取得することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/47f1f40e-b080-d4df-83fc-9f2e5d735acd.png)


#アリババクラウドデベロッパーセンター
新しく開設された [Developer Center]() で、当社の開発者向けツールやリソースを探索することができます。当社の API や SDK を使用して初めてのアプリケーションを構築したり、技術ガイドやハウツーチュートリアルに飛び込んだり、Developer Center で世界中のコミュニティとプロジェクトやアイデアを共有したりすることができます。

1、Developer Center: [https://developer.alibabacloud.com](https://developer.alibabacloud.com/?spm=a2c65.11461447.0.0.fc351c04NboAQS)
2、APIとSDK: [https://developer.alibabacloud.com/resource](https://developer.alibabacloud.com/?spm=a2c65.11461447.0.0.fc351c04NboAQS)
3、オープンソースプロジェクト: [https://developer.alibabacloud.com/project](https://developer.alibabacloud.com/project?spm=a2c65.11461447.0.0.fc351c04NboAQS)
4、開発者向けサービス：[https://developer.alibabacloud.com/service](https://developer.alibabacloud.com/service?spm=a2c65.11461447.0.0.fc351c04NboAQS)
5、OpenAPI Explorer: [https://api.aliyun.com/new#/](https://api.aliyun.com/new?spm=a2c65.11461447.0.0.fc351c04NboAQS#/)
6、クラウドシェル： [https://www.alibabacloud.com/products/cloud-shell](https://www.alibabacloud.com/products/cloud-shell?spm=a2c65.11461447.0.0.fc351c04NboAQS)
7、APIエラーセンター：[https://error-center.alibabacloud.com](https://error-center.alibabacloud.com/?spm=a2c65.11461447.0.0.fc351c04NboAQS)

*アリババクラウドは日本に２つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
[アリババクラウドジャパン公式ページ](https://www.alibabacloud.com/ja)*