SlideShare a Scribd company logo
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
Ad

More Related Content

What's hot (20)

Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
Hirotaka Sato
 
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
Takuya ASADA
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢
Masaki Yamakawa
 
Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩
聡 大久保
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
 
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
NTT DATA Technology & Innovation
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
 
Docker 基本のおさらい
Docker 基本のおさらいDocker 基本のおさらい
Docker 基本のおさらい
Naoki Nagazumi
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu
 
Fargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころFargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころ
Yuto Komai
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CDKubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
Preferred Networks
 
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
Anthos を使ったエンタープライズ向けクラスタの設計とアップグレード戦略のススメ(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
Hirotaka Sato
 
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
Takuya ASADA
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢
Masaki Yamakawa
 
Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩
聡 大久保
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
 
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
NTT DATA Technology & Innovation
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
 
Docker 基本のおさらい
Docker 基本のおさらいDocker 基本のおさらい
Docker 基本のおさらい
Naoki Nagazumi
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu
 
Fargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころFargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころ
Yuto Komai
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CDKubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
Preferred Networks
 

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
Masatomo 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-archi
Daisuke Nagao
 
2018 07-19dist
2018 07-19dist2018 07-19dist
2018 07-19dist
Yuji Oshima
 
HashiCorp Terraform Enterprise 紹介
HashiCorp Terraform Enterprise 紹介HashiCorp Terraform Enterprise 紹介
HashiCorp Terraform Enterprise 紹介
hashicorpjp
 
ニフクラ mobile backend チームのCIツール活用事例紹介
ニフクラ mobile backend チームのCIツール活用事例紹介ニフクラ mobile backend チームのCIツール活用事例紹介
ニフクラ mobile backend チームのCIツール活用事例紹介
富士通クラウドテクノロジーズ株式会社
 
マルチクラウドデータ連携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 Fargate
bitbank, Inc. Tokyo, Japan
 
Introduction to NetOpsCoding
Introduction to NetOpsCodingIntroduction to NetOpsCoding
Introduction to NetOpsCoding
Taiji 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.
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
Microsoft Tech Summit 2017
 
[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
Satoshi Ueno
 
ニフクラのサービス基盤運用におけるCIの取り組み
ニフクラのサービス基盤運用におけるCIの取り組みニフクラのサービス基盤運用におけるCIの取り組み
ニフクラのサービス基盤運用におけるCIの取り組み
富士通クラウドテクノロジーズ株式会社
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
DeNA
 
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
Masatomo 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-archi
Daisuke 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 Fargate
bitbank, Inc. Tokyo, Japan
 
Introduction to NetOpsCoding
Introduction to NetOpsCodingIntroduction to NetOpsCoding
Introduction to NetOpsCoding
Taiji 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.1
Satoshi Ueno
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
DeNA
 
Ad

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)の運用とセキュリティ
富士通クラウドテクノロジーズ株式会社
 
Ad

【初心者向け】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