SlideShare a Scribd company logo
1 of 16
Download to read offline
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
【初心者向け】API を使ってクラウ
ドの管理を自動化しよう
富士通クラウドテクノロジーズ株式会社
竹内 豪
1
ニフクラ エンジニア ミートアップ 第 9 回 自動化事始め
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
自己紹介
◼ 名前: 竹内 豪
◼ GitHub: @tily (https://github.com/tily)
• ニフクラ関連プログラム
• Ruby ライブラリ
• 自作 Web サービス 等…
◼ 担当業務:
• Computing → iPaaS (Automation・RDB) →
IoT (Script・Timer) → Computing (イマココ)
• SDK・ドキュメント自動生成 (β)
• FJCT エンジニアタスクフォース副委員長
参考: https://bit.ly/2CZdgkh
2
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
API / SDK / CLI とは?
◼ API (Application Programming Interface)
• プログラムを書くためのインタフェース仕様
• ここでは “Web API” のことを指している
3
◼ SDK
(Software
Development Kit)
• API を利用するために
用意されたライブラリ
• API サーバーにリクエ
ストを送るクライアン
トの役割を果たすため、
「クライアント」と呼
ばれることも多い
◼ CLI
(Command Line Interface)
• API をコマンドラインから使
えるようにしたもの
• SDK よりも手軽に利用する
ことが可能
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
API のメリット (1)
◼ コンパネから 20 台サーバーを作成したい
4
01. イメージ選択 02. サーバータイプ選択
03. サーバー設定 04. 入力内容確認
×20回
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
API のメリット (2)
5
◼ API を使えば一発で実行可能
from nifcloud import session
client = session.get_session().create_client("computing")
for i in range(20):
instance_id = "server%02d" % (i + 1)
print(f"Creating {instance_id}")
client.run_instances(
InstanceId=instance_id,
ImageId="89",
KeyName="something",
)
waiter = client.get_waiter("instance_running")
waiter.wait(InstanceId=[instance_id])
print(f"Created {instance_id}")
※後述の nifcloud-sdk-python (開発者プレビュー版で記述)
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
API のメリット (3)
6
◼ 繰り返し行う操作を自動化
• → 工数削減
◼ 自動化によるオペミス削減
• → 品質向上
◼ 構成管理への応用
• → インフラをソースコードとして管理
(Infrastructure as a Code)
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
ニフクラ各サービス API のご紹介
◼ Computing
• サーバー
• ディスク
• SSH キー
• OS イメージ
• ロードバランサー
• マルチロードバランサー
• ファイアウォール
• SSL 証明書
• 利用状況
• アップロード
• 付替 IP アドレス
• 追加 NIC
オートスケール
• 基本監視
• プライベート LAN
• ルーター
• VPN ゲートウェイ
• サーバーセパレート
7
◼ NAS
• NAS サーバー
• NAS ファイアウォール
• モニタリング
◼ スクリプト
• スクリプト実行
◼ 専有エンドポイント
• 専有エンドポイント
• 専有エンドポイント FW グループ
• モニタリング
◼ RDB
• DB サーバー
• オプション
• DB スナップショット
• DB パラメーターグループ
• イベント
• イベント通知
• DB ログ
• モニタリング
• 証明書
◼ DNS
• ゾーン操作
• レコード操作
◼ ESS
• 送信元メアド管理
• 送信元ドメイン管理
• メール送信
• 利用状況確認
• DKIM 設定管理
• 配信ログ取得
◼ オブジェクトストレージ
• バケット操作
• オブジェクト操作
https://cloud.nifty.com/api/
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
ニフクラ公式 SDK・CLI
◼ SDK (https://cloud.nifty.com/api/sdk/)
• ニフクラ Computing SDK for Java
• ニフクラ RDB・DNS・ESS SDK for Java
• ニフクラ オブジェクトストレージ SDK for Java
• ニフクラ RDB・DNS SDK for PHP
◼ CLI (https://cloud.nifty.com/api/cli/)
• ニフクラ Computing CLI
8
→ 対応サービス拡充・対応言語拡充を検討中!
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
ニフクラ SDK for Python (開発者プレビュー版)
◼ 特長
• ニフクラの複数サービスに対応 (Computing / RDB /
NAS / Script)
• 付属のデバッグ CLI でコマンドラインから動作確認
が可能
• AWS SDK JSON 互換によるデータ駆動の仕組みを採
用
◼ 紹介ブログ記事
• https://blog.pfs.nifcloud.com/nifcloud_sdk_pytho
n
9
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
FJCT におけるニフクラ API 活用事例
◼ メイン機能利用
• オブジェクトストレージ操作
• メール送信 (HTTP 経由)
• スクリプト実行
10
◼ 構築自動化
• Computing サーバー作成
• RDB DB サーバー作成
• NAS NAS サーバー作成
◼ 運用自動化
• Computing SSL 証明書更新
• RDB FW グループ設定変更
◼ リソース監視
• Computing リソース監視
• RDB フェイルオーバー監視
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
API を利用した構築自動化 (ansible-role-nifcloud)
◼ ansible-role-nifcloud
• https://github.com/nifcloud/ansible-role-
nifcloud
• ansible から API を利用したニフクラリソースの管
理が可能
• 現在は Computing サーバー / FW グループ / ロー
ドバランサー / 増設ディスクに対応
◼ 利用イメージ
• (次スライド参照)
11
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
API を利用した構築自動化 (利用イメージ)
12
- name: Start server
local_action:
module: nifcloud
access_key: "YOUR ACCESS KEY"
secret_access_key: "YOUR SECRET ACCESS KEY"
endpoint: "jp-west-1.computing.api.nifcloud.com"
instance_id: "web001"
state: "running"
image_id: "26"
key_name: "dummykey"
security_group: "webfw"
instance_type: "mini"
availability_zone: "west-11"
accounting_type: "2"
ip_type: "static"
startup_script: "roles/infrastructure/template/startup_script"
startup_script_vars:
dummy_var: "DUMMY"
network_interface:
- network_id: net-COMMON_GLOBAL
ipAddress: "0.0.0.0"
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
API を利用した運用自動化
自分のチームでは細々とした運用の自動化は
nifcloud-sdk-python に同梱されている
nifcloud-debugcli で行っています。
13
## API キーとデフォルトリージョンの設定
$ export AWS_ACCESS_KEY_ID=<Your NIFCLOUD Access Key ID>
$ export AWS_SECRET_ACCESS_KEY=<Your NIFCLOUD Secret Access Key>
$ export AWS_DEFAULT_REGION=jp-east-1
## 利用可能なサービスの一覧を表示
$ nifcloud-debugcli help
## 指定されたサービスで利用可能な API の一覧を表示
$ nifcloud-debugcli computing help
## 指定されたアクションで利用可能なパラメーターの一覧を表示
$ nifcloud-debugcli computing create-key-pair help
## 実際にコマンドを実行 (下記は料金が発生しない SSH キー作成の API を実行しています)
$ nifcloud-debugcli computing create-key-pair --key-name foobar123 --password foobar123
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
API を利用した運用自動化
14
## lb001 に他部署から依頼のあった IP 許可 (5 つ) を投入
nifcloud-debugcli computing set-filter-for-load-balancer ¥
--load-balancer-name lb001 ¥
--load-balancer-port 443 ¥
--instance-port 8080 ¥
--ip-addresses '[
{"IPAddress": “XXX.YYY.ZZZ.1"},
{"IPAddress": “XXX.YYY.ZZZ.2"},
{"IPAddress": “XXX.YYY.ZZZ.3"},
{"IPAddress": “XXX.YYY.ZZZ.4"},
{"IPAddress": “XXX.YYY.ZZZ.5"},
{"IPAddress": “XXX.YYY.ZZZ.6"},
]'
◼ 作業手順書にも下記のように書くだけでよい
• → 工数削減・オペミス削減
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
まとめ
◼ ニフクラ各サービスでは API およびそれに
付随する SDK / CLI を提供しています
◼ API を有効活用することで構築・運用コスト
を大幅に削減することが可能
◼ ぜひニフクラの各種 API をご活用ください
15
Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED
16

More Related Content

What's hot

わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48Preferred Networks
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話Yuta Shimada
 
インフラCICDの勘所
インフラCICDの勘所インフラCICDの勘所
インフラCICDの勘所Toru Makabe
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
CyberAgentのPrivateCloudeを支えるStorage基盤
CyberAgentのPrivateCloudeを支えるStorage基盤CyberAgentのPrivateCloudeを支えるStorage基盤
CyberAgentのPrivateCloudeを支えるStorage基盤Hiroki Chinen
 
Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Takashi Kanai
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンKentaro Yoshida
 
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライドElasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド崇介 藤井
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
 
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService PrincipalToru Makabe
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...NTT DATA Technology & Innovation
 
Azure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep DiveAzure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep DiveYoshimasa Katakura
 
Kubernetesのワーカーノードを自動修復するために必要だったこと
Kubernetesのワーカーノードを自動修復するために必要だったことKubernetesのワーカーノードを自動修復するために必要だったこと
Kubernetesのワーカーノードを自動修復するために必要だったことh-otter
 
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方Toru Makabe
 

What's hot (20)

わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
 
インフラCICDの勘所
インフラCICDの勘所インフラCICDの勘所
インフラCICDの勘所
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
CyberAgentのPrivateCloudeを支えるStorage基盤
CyberAgentのPrivateCloudeを支えるStorage基盤CyberAgentのPrivateCloudeを支えるStorage基盤
CyberAgentのPrivateCloudeを支えるStorage基盤
 
Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!
 
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
 
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライドElasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
Azure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep DiveAzure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep Dive
 
Kubernetesのワーカーノードを自動修復するために必要だったこと
Kubernetesのワーカーノードを自動修復するために必要だったことKubernetesのワーカーノードを自動修復するために必要だったこと
Kubernetesのワーカーノードを自動修復するために必要だったこと
 
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
 

Similar to 【初心者向け】API を使ってクラウドの管理を自動化しよう

Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!史識 川原
 
Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18Masatomo Ito
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
2016 06-30-deep-learning-archi
2016 06-30-deep-learning-archi2016 06-30-deep-learning-archi
2016 06-30-deep-learning-archiDaisuke Nagao
 
HashiCorp Terraform Enterprise 紹介
HashiCorp Terraform Enterprise 紹介HashiCorp Terraform Enterprise 紹介
HashiCorp Terraform Enterprise 紹介hashicorpjp
 
マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方CData Software Japan
 
Deploy TypeScript with CodePipeline in Fargate
Deploy TypeScript with CodePipeline in FargateDeploy TypeScript with CodePipeline in Fargate
Deploy TypeScript with CodePipeline in Fargatebitbank, Inc. Tokyo, Japan
 
Introduction to NetOpsCoding
Introduction to NetOpsCodingIntroduction to NetOpsCoding
Introduction to NetOpsCodingTaiji Tsuchiya
 
20150704 MS Azure最新 - innovation egg 第4回
20150704 MS Azure最新 - innovation egg 第4回20150704 MS Azure最新 - innovation egg 第4回
20150704 MS Azure最新 - innovation egg 第4回Keiji Kamebuchi
 
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践 仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践 bitbank, Inc. Tokyo, Japan
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとはKoto Shigeru
 
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向NTT Software Innovation Center
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
 
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...オラクルエンジニア通信
 
ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1Satoshi Ueno
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用DeNA
 

Similar to 【初心者向け】API を使ってクラウドの管理を自動化しよう (20)

Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
 
Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18Microsoft open tech night 2020 feb18
Microsoft open tech night 2020 feb18
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
2016 06-30-deep-learning-archi
2016 06-30-deep-learning-archi2016 06-30-deep-learning-archi
2016 06-30-deep-learning-archi
 
2018 07-19dist
2018 07-19dist2018 07-19dist
2018 07-19dist
 
HashiCorp Terraform Enterprise 紹介
HashiCorp Terraform Enterprise 紹介HashiCorp Terraform Enterprise 紹介
HashiCorp Terraform Enterprise 紹介
 
ニフクラ mobile backend チームのCIツール活用事例紹介
ニフクラ mobile backend チームのCIツール活用事例紹介ニフクラ mobile backend チームのCIツール活用事例紹介
ニフクラ mobile backend チームのCIツール活用事例紹介
 
マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方
 
Deploy TypeScript with CodePipeline in Fargate
Deploy TypeScript with CodePipeline in FargateDeploy TypeScript with CodePipeline in Fargate
Deploy TypeScript with CodePipeline in Fargate
 
Introduction to NetOpsCoding
Introduction to NetOpsCodingIntroduction to NetOpsCoding
Introduction to NetOpsCoding
 
20150704 MS Azure最新 - innovation egg 第4回
20150704 MS Azure最新 - innovation egg 第4回20150704 MS Azure最新 - innovation egg 第4回
20150704 MS Azure最新 - innovation egg 第4回
 
仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践 仮想通貨取引所 bitbank の IaC の導入と実践
仮想通貨取引所 bitbank の IaC の導入と実践
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
 
OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向OpenStack Swiftとそのエコシステムの最新動向
OpenStack Swiftとそのエコシステムの最新動向
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
[Oracle Innovation Summit Tokyo 2018] Fn Project: Next Generation Serverless ...
 
ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1ニフティクラウドC4SA_ご紹介資料ver.1.1
ニフティクラウドC4SA_ご紹介資料ver.1.1
 
ニフクラのサービス基盤運用におけるCIの取り組み
ニフクラのサービス基盤運用におけるCIの取り組みニフクラのサービス基盤運用におけるCIの取り組み
ニフクラのサービス基盤運用におけるCIの取り組み
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
 

More from 富士通クラウドテクノロジーズ株式会社

More from 富士通クラウドテクノロジーズ株式会社 (20)

IPsec VPNとSSL-VPNの違い
IPsec VPNとSSL-VPNの違いIPsec VPNとSSL-VPNの違い
IPsec VPNとSSL-VPNの違い
 
弊社サービスを使って ノーコード開発してみた.pdf
弊社サービスを使って ノーコード開発してみた.pdf弊社サービスを使って ノーコード開発してみた.pdf
弊社サービスを使って ノーコード開発してみた.pdf
 
今から始めるUbuntu入門_202307.pdf
今から始めるUbuntu入門_202307.pdf今から始めるUbuntu入門_202307.pdf
今から始めるUbuntu入門_202307.pdf
 
非エンジニアがクラウド上にMinecraftサーバーを構築するまでの記録
非エンジニアがクラウド上にMinecraftサーバーを構築するまでの記録非エンジニアがクラウド上にMinecraftサーバーを構築するまでの記録
非エンジニアがクラウド上にMinecraftサーバーを構築するまでの記録
 
自宅k8s/vSphere入門
自宅k8s/vSphere入門自宅k8s/vSphere入門
自宅k8s/vSphere入門
 
FJcloud-Vの無料トライアルで雑にWordPressを入れてみた(リベンジ)
FJcloud-Vの無料トライアルで雑にWordPressを入れてみた(リベンジ)FJcloud-Vの無料トライアルで雑にWordPressを入れてみた(リベンジ)
FJcloud-Vの無料トライアルで雑にWordPressを入れてみた(リベンジ)
 
今さら聞けないバックアップの基礎
今さら聞けないバックアップの基礎今さら聞けないバックアップの基礎
今さら聞けないバックアップの基礎
 
DevOps with GitLabで始める簡単DevOps
DevOps with GitLabで始める簡単DevOpsDevOps with GitLabで始める簡単DevOps
DevOps with GitLabで始める簡単DevOps
 
自宅vSphereからニフクラに引っ越ししてみた
自宅vSphereからニフクラに引っ越ししてみた自宅vSphereからニフクラに引っ越ししてみた
自宅vSphereからニフクラに引っ越ししてみた
 
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
 
NGINX App Protect on Hatobaで実現するセキュリティサービス公開 構築手順書
NGINX App Protect on Hatobaで実現するセキュリティサービス公開 構築手順書NGINX App Protect on Hatobaで実現するセキュリティサービス公開 構築手順書
NGINX App Protect on Hatobaで実現するセキュリティサービス公開 構築手順書
 
これから始めるエンジニアのためのクラウド超入門
これから始めるエンジニアのためのクラウド超入門これから始めるエンジニアのためのクラウド超入門
これから始めるエンジニアのためのクラウド超入門
 
「ネットワーク超入門 IPsec VPN編」
「ネットワーク超入門 IPsec VPN編」「ネットワーク超入門 IPsec VPN編」
「ネットワーク超入門 IPsec VPN編」
 
マネージドKubernetes、「Kubernetes Service Hatoba」を使ってみよう
マネージドKubernetes、「Kubernetes Service Hatoba」を使ってみようマネージドKubernetes、「Kubernetes Service Hatoba」を使ってみよう
マネージドKubernetes、「Kubernetes Service Hatoba」を使ってみよう
 
GitLabで始めるDevOps入門
GitLabで始めるDevOps入門GitLabで始めるDevOps入門
GitLabで始めるDevOps入門
 
GitLabのAutoDevOpsを試してみた
GitLabのAutoDevOpsを試してみたGitLabのAutoDevOpsを試してみた
GitLabのAutoDevOpsを試してみた
 
vSphere 7 へのアップグレードについて
vSphere 7 へのアップグレードについてvSphere 7 へのアップグレードについて
vSphere 7 へのアップグレードについて
 
VM 基盤運用チームの DevOps
VM 基盤運用チームの DevOpsVM 基盤運用チームの DevOps
VM 基盤運用チームの DevOps
 
緊急事態宣言解除後のセキュリティ・チェックリストを解説してみた
緊急事態宣言解除後のセキュリティ・チェックリストを解説してみた緊急事態宣言解除後のセキュリティ・チェックリストを解説してみた
緊急事態宣言解除後のセキュリティ・チェックリストを解説してみた
 
入社2年目社員から見た VDI(DaaS)の運用とセキュリティ
入社2年目社員から見たVDI(DaaS)の運用とセキュリティ入社2年目社員から見たVDI(DaaS)の運用とセキュリティ
入社2年目社員から見た VDI(DaaS)の運用とセキュリティ
 

【初心者向け】API を使ってクラウドの管理を自動化しよう

  • 1. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED 【初心者向け】API を使ってクラウ ドの管理を自動化しよう 富士通クラウドテクノロジーズ株式会社 竹内 豪 1 ニフクラ エンジニア ミートアップ 第 9 回 自動化事始め
  • 2. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED 自己紹介 ◼ 名前: 竹内 豪 ◼ GitHub: @tily (https://github.com/tily) • ニフクラ関連プログラム • Ruby ライブラリ • 自作 Web サービス 等… ◼ 担当業務: • Computing → iPaaS (Automation・RDB) → IoT (Script・Timer) → Computing (イマココ) • SDK・ドキュメント自動生成 (β) • FJCT エンジニアタスクフォース副委員長 参考: https://bit.ly/2CZdgkh 2
  • 3. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED API / SDK / CLI とは? ◼ API (Application Programming Interface) • プログラムを書くためのインタフェース仕様 • ここでは “Web API” のことを指している 3 ◼ SDK (Software Development Kit) • API を利用するために 用意されたライブラリ • API サーバーにリクエ ストを送るクライアン トの役割を果たすため、 「クライアント」と呼 ばれることも多い ◼ CLI (Command Line Interface) • API をコマンドラインから使 えるようにしたもの • SDK よりも手軽に利用する ことが可能
  • 4. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED API のメリット (1) ◼ コンパネから 20 台サーバーを作成したい 4 01. イメージ選択 02. サーバータイプ選択 03. サーバー設定 04. 入力内容確認 ×20回
  • 5. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED API のメリット (2) 5 ◼ API を使えば一発で実行可能 from nifcloud import session client = session.get_session().create_client("computing") for i in range(20): instance_id = "server%02d" % (i + 1) print(f"Creating {instance_id}") client.run_instances( InstanceId=instance_id, ImageId="89", KeyName="something", ) waiter = client.get_waiter("instance_running") waiter.wait(InstanceId=[instance_id]) print(f"Created {instance_id}") ※後述の nifcloud-sdk-python (開発者プレビュー版で記述)
  • 6. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED API のメリット (3) 6 ◼ 繰り返し行う操作を自動化 • → 工数削減 ◼ 自動化によるオペミス削減 • → 品質向上 ◼ 構成管理への応用 • → インフラをソースコードとして管理 (Infrastructure as a Code)
  • 7. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED ニフクラ各サービス API のご紹介 ◼ Computing • サーバー • ディスク • SSH キー • OS イメージ • ロードバランサー • マルチロードバランサー • ファイアウォール • SSL 証明書 • 利用状況 • アップロード • 付替 IP アドレス • 追加 NIC オートスケール • 基本監視 • プライベート LAN • ルーター • VPN ゲートウェイ • サーバーセパレート 7 ◼ NAS • NAS サーバー • NAS ファイアウォール • モニタリング ◼ スクリプト • スクリプト実行 ◼ 専有エンドポイント • 専有エンドポイント • 専有エンドポイント FW グループ • モニタリング ◼ RDB • DB サーバー • オプション • DB スナップショット • DB パラメーターグループ • イベント • イベント通知 • DB ログ • モニタリング • 証明書 ◼ DNS • ゾーン操作 • レコード操作 ◼ ESS • 送信元メアド管理 • 送信元ドメイン管理 • メール送信 • 利用状況確認 • DKIM 設定管理 • 配信ログ取得 ◼ オブジェクトストレージ • バケット操作 • オブジェクト操作 https://cloud.nifty.com/api/
  • 8. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED ニフクラ公式 SDK・CLI ◼ SDK (https://cloud.nifty.com/api/sdk/) • ニフクラ Computing SDK for Java • ニフクラ RDB・DNS・ESS SDK for Java • ニフクラ オブジェクトストレージ SDK for Java • ニフクラ RDB・DNS SDK for PHP ◼ CLI (https://cloud.nifty.com/api/cli/) • ニフクラ Computing CLI 8 → 対応サービス拡充・対応言語拡充を検討中!
  • 9. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED ニフクラ SDK for Python (開発者プレビュー版) ◼ 特長 • ニフクラの複数サービスに対応 (Computing / RDB / NAS / Script) • 付属のデバッグ CLI でコマンドラインから動作確認 が可能 • AWS SDK JSON 互換によるデータ駆動の仕組みを採 用 ◼ 紹介ブログ記事 • https://blog.pfs.nifcloud.com/nifcloud_sdk_pytho n 9
  • 10. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED FJCT におけるニフクラ API 活用事例 ◼ メイン機能利用 • オブジェクトストレージ操作 • メール送信 (HTTP 経由) • スクリプト実行 10 ◼ 構築自動化 • Computing サーバー作成 • RDB DB サーバー作成 • NAS NAS サーバー作成 ◼ 運用自動化 • Computing SSL 証明書更新 • RDB FW グループ設定変更 ◼ リソース監視 • Computing リソース監視 • RDB フェイルオーバー監視
  • 11. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED API を利用した構築自動化 (ansible-role-nifcloud) ◼ ansible-role-nifcloud • https://github.com/nifcloud/ansible-role- nifcloud • ansible から API を利用したニフクラリソースの管 理が可能 • 現在は Computing サーバー / FW グループ / ロー ドバランサー / 増設ディスクに対応 ◼ 利用イメージ • (次スライド参照) 11
  • 12. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED API を利用した構築自動化 (利用イメージ) 12 - name: Start server local_action: module: nifcloud access_key: "YOUR ACCESS KEY" secret_access_key: "YOUR SECRET ACCESS KEY" endpoint: "jp-west-1.computing.api.nifcloud.com" instance_id: "web001" state: "running" image_id: "26" key_name: "dummykey" security_group: "webfw" instance_type: "mini" availability_zone: "west-11" accounting_type: "2" ip_type: "static" startup_script: "roles/infrastructure/template/startup_script" startup_script_vars: dummy_var: "DUMMY" network_interface: - network_id: net-COMMON_GLOBAL ipAddress: "0.0.0.0"
  • 13. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED API を利用した運用自動化 自分のチームでは細々とした運用の自動化は nifcloud-sdk-python に同梱されている nifcloud-debugcli で行っています。 13 ## API キーとデフォルトリージョンの設定 $ export AWS_ACCESS_KEY_ID=<Your NIFCLOUD Access Key ID> $ export AWS_SECRET_ACCESS_KEY=<Your NIFCLOUD Secret Access Key> $ export AWS_DEFAULT_REGION=jp-east-1 ## 利用可能なサービスの一覧を表示 $ nifcloud-debugcli help ## 指定されたサービスで利用可能な API の一覧を表示 $ nifcloud-debugcli computing help ## 指定されたアクションで利用可能なパラメーターの一覧を表示 $ nifcloud-debugcli computing create-key-pair help ## 実際にコマンドを実行 (下記は料金が発生しない SSH キー作成の API を実行しています) $ nifcloud-debugcli computing create-key-pair --key-name foobar123 --password foobar123
  • 14. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED API を利用した運用自動化 14 ## lb001 に他部署から依頼のあった IP 許可 (5 つ) を投入 nifcloud-debugcli computing set-filter-for-load-balancer ¥ --load-balancer-name lb001 ¥ --load-balancer-port 443 ¥ --instance-port 8080 ¥ --ip-addresses '[ {"IPAddress": “XXX.YYY.ZZZ.1"}, {"IPAddress": “XXX.YYY.ZZZ.2"}, {"IPAddress": “XXX.YYY.ZZZ.3"}, {"IPAddress": “XXX.YYY.ZZZ.4"}, {"IPAddress": “XXX.YYY.ZZZ.5"}, {"IPAddress": “XXX.YYY.ZZZ.6"}, ]' ◼ 作業手順書にも下記のように書くだけでよい • → 工数削減・オペミス削減
  • 15. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED まとめ ◼ ニフクラ各サービスでは API およびそれに 付随する SDK / CLI を提供しています ◼ API を有効活用することで構築・運用コスト を大幅に削減することが可能 ◼ ぜひニフクラの各種 API をご活用ください 15
  • 16. Copyright 2018 FUJITSU CLOUD TECHNOLOGIES LIMITED 16