Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
てっくないと 佐藤さん
Search
ta-suke
October 04, 2019
Technology
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
てっくないと 佐藤さん
佐藤さんのAlibaba Cloudの利用紹介
ta-suke
October 04, 2019
More Decks by ta-suke
See All by ta-suke
てっくないと発表資料_山形さん
iurataisuke0827
0
95
Other Decks in Technology
See All in Technology
hackers_champloo_2026_tidb
makocchi
0
170
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
740
AI時代のPRレビューにどう向き合うか?
kairim0
1
240
エンタメ企業のM&Aを支えるデータ基盤 ― 統合から店舗のリアルタイム分析まで / Data Engineering Summit 2026
genda
0
190
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
1k
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
Claude の新機能を、 出た日に触って社内に届けるまで
rfdnxbro
1
190
事業成長とデータ活用を止めないためのマネジメントへ挑戦
hiracky16
0
400
QA4AI 2026-Oct 生成AI時代の品質保証
tokuty
1
890
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
160
AI駆動で「他アプリの音を加工できる」アプリを作った
satomasahiro2005
0
170
Kiro Crewをはじめよう
kizawa2020
1
160
Featured
See All Featured
Visualization
eitanlees
153
17k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
550
How to train your dragon (web standard)
notwaldorf
96
6.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
So, you think you're a good person
axbom
PRO
2
2.2k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
Making the Leap to Tech Lead
cromwellryan
135
10k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.2k
RailsConf 2023
tenderlove
30
1.6k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
Transcript
©︎ 2019 SB Cloud Corp. てっくないと #2 Alibaba Cloud自動構築のススメ 株式会社アルファシステムズ
佐藤良太
©︎ 2019 SB Cloud Corp. 2 はじめに
©︎ 2019 SB Cloud Corp. 本日のテーマ 3 自動化の重要性はわかったけど... インフラエンジニアなので コード書けない...
そもそもAPIリファレンスが イケてない... CとC#とC++って 何が違うんだ... ⇒ 0から自動化の仕組みを創造するのは難しい!!
©︎ 2019 SB Cloud Corp. 本日のテーマ 4 そこで今回は! OSSを組み合わせて 誰でも自動化/構成管理が出来る仕組みを紹介します!!
©︎ 2019 SB Cloud Corp. 自己紹介 5 組織:株式会社アルファシステムズ
所属:第二事業本部 第一事業部 第六技術部 第二課 第一係 好きな言葉:「右のアタッカーを狙ってね!!」 嫌いな言葉:「左打ちに戻してね...」 年次 技術 業務 1年目 ・Flex ・Java 業務アプリケーションの開発 2年目 3年目 ・AWS ・Java Java SDKを用いた構成管理ツールの開発 4年目 ・Azure ・Ansible ・リソース方式の検討/自動化 ・Ansibleを用いたOS設定の自動化 5年目 ・Alibaba Cloud ・API検証(Java)
©︎ 2019 SB Cloud Corp. 注意事項 6 本日の発表内容は、佐藤が勝手に考えたものです。 関連企業(SBクラウド /
NTTデータ / アルファシステムズ) の立場や意見を代弁するものではありません。 また、セミナーやカンファレンスに登壇するのは初めてです。 べしゃり慣れしていないのでご了承ください!!
©︎ 2019 SB Cloud Corp. アジェンダ 7 1. OSS紹介 1-1.
Terraform 1-2. Github 1-3. Jenkins 2. 実現方法のご紹介 2-1. CI/CDパイプライン 2-2. 開発フロー標準化 2-3. Pragmatic Terraform on Alibaba Cloud 3. デモ 3-1. Security Group穴あけ 3-2. 新規環境追加 4. おわりに 本日のメイン!!
©︎ 2019 SB Cloud Corp. 8 1. OSS紹介
©︎ 2019 SB Cloud Corp. 1-1. Terraform 9 Terraformとは •
インフラ環境構成管理ツール • Alibaba CloudだけでなくAWS/Azure/GCP等様々なクラウドをサポート • HashiCorp Configuration Languageと呼ばれる専用の言語で記述で記述
©︎ 2019 SB Cloud Corp. 1-1. Terraform 10 Terraformポイント •
$ terraform plan:ドライラン機能。構文チェック & 差分抽出 • $ terraform apply:リソース構築実行機能 • $ terraform fmt:フォーマッタ機能 • xxx.tf ファイル: 構成管理ファイル。構築するリソースの情報を記述 • terraform.tfstate ファイル: applyの結果を保存、管理対象リソースの状態を保持するjsonファイル 非常に重要!!
©︎ 2019 SB Cloud Corp. 1-2. Github 11 Githubとは •
Git ≠ Github • Gitのホスティングサービス • Web UIを用いて操作可能
©︎ 2019 SB Cloud Corp. 1-2. Github 12 Githubポイント •
ブランチ: 機能追加やバグ改修の際に、本線開発に影響を与えることなく開発を行う ための機能。本線開発を行うブランチのことをmasterブランチと呼ぶ • push: リモートリポジトリにローカルリポジトリの変更内容を反映すること • pull: リモートリポジトリの変更内容をローカルリポジトリに反映すること • プルリクエスト: 「リモートリポジトリの変更内容をローカルリポジトリに反映してください」 というお願い。「masterプランチにマージして良いですか?」というRv依頼
©︎ 2019 SB Cloud Corp. 1-3. Jenkins 13 Jenkinsとは •
ジョブ実行ツール • CI/CDツールのデファクトスタンダード • Git / Maeven / JUnit等様々なサービスと連携可能(プラグインも充実)
©︎ 2019 SB Cloud Corp. 14 1-3. Jenkins ※ 余談
©︎ 2019 SB Cloud Corp. 15 2. 実現方法のご紹介
©︎ 2019 SB Cloud Corp. 16 2-1. CI/CDパイプライン
©︎ 2019 SB Cloud Corp. 2-1. CI/CDパイプライン 17 全体構成
©︎ 2019 SB Cloud Corp. デモ①:Security Group穴あけ 18 Terraformで構築済み ・Jenkins/Terraform
実行サーバ ・Terraform管理対象外 デモ環境構成:既存環境
©︎ 2019 SB Cloud Corp. デモ①:Security Group穴あけ 19 踏み台Svの Security
Group穴あけ デモ環境構成:やること
©︎ 2019 SB Cloud Corp. 20 2-2. 開発フロー標準化
©︎ 2019 SB Cloud Corp. 2-2. 開発フロー標準化 21 参考:Github Flow
master branch issue pull request marge 4. pull requestを活用 5. pull request承認後にmasterへmarge 6. masterへのmarge完了後に直ちにデプロイ 1. masterは常にデプロイ可能 2. 作業用ブランチはmasterから派生 3. 作業用ブランチは定期的にpush Github Flow 6つの原則
©︎ 2019 SB Cloud Corp. 2-2. 開発フロー標準化 22 2. branch作成
4. branchにpush 3. Terraform実装 1. issue発行 5. Rv実施 6. masterへマージ pull request発行 自動デプロイ Tmリーダ 作業者 開発フロー ・不毛な作業は自動化 することで工数削減 ・役割/担当を定義すること で責任分界点を明確に! Point !!
©︎ 2019 SB Cloud Corp. 23 2-3. Pragmatic Terraform on
Alibaba Cloud
©︎ 2019 SB Cloud Corp. 2-3. Pragmatic Terraform on Alibaba
Cloud 24 Githubメリデリ メリット • txtベースで管理可能 ⇒ Diffが取りやすい/Rvが容易 • ドライラン機能が優秀 ⇒ 構文チェックだけでなく、差分抽出の側面も • 依存関係を自動で解決 ⇒ 作成順番を考慮せず、フラットに記述可能 デメリット(課題) • 複数人で開発し辛い ⇒ .tf / .tfstateファイルの管理方法を検討 • 学習コストがかかる ⇒ 誰にでも簡単に実装出来るような工夫
©︎ 2019 SB Cloud Corp. 2-3. Pragmatic Terraform on Alibaba
Cloud 25 ① Remote State機能を活用する data "terraform_remote_state" "t00_state" { backend = “oss” // 出力先タイプ config = { bucket = “oss-technight-demo“ // prefix = “terraform/state/T00“ // 出力先情報 key = "terraform.tfstate“ // region = "ap-northeast-1" } } remote_state.tf terraform.stateファイルをOSSに 保存することで、複数人開発に対応!! Point !!
©︎ 2019 SB Cloud Corp. 2-3. Pragmatic Terraform on Alibaba
Cloud 26 ② module機能を活用する T01/ess.tf resource "alicloud_instance" "web" { image_id = “centos_7-6_64bit" security_groups = ["sg_t00_common“, “sg_t01_web”] key_name = “key_pair_common” instance_name = “ecs_web_t01" instance_type = “ecs.t1.large” } T02/ess.tf resource "alicloud_instance" "web" { image_id = “centos_7-6_64bit" security_groups = ["sg_t00_common“, “sg_t02web”] key_name = “key_pair_common” instance_name = “ecs_web_t02" instance_type = “ecs.c1.small” }
©︎ 2019 SB Cloud Corp. 2-3. Pragmatic Terraform on Alibaba
Cloud 27 ② module機能を活用する T01/ess.tf module “web" { source = “../../modules/ess” env_id = “t01” instance_type = “ecs.t1.large” } modules/ess/main.tf resource "alicloud_instance" "web" { image_id = “centos_7-6_64bit" security_groups = ["sg_t00_common“, “sg_${env_id}_web”] key_name = “key_pair_common” instance_name = “ecs_web_${env_id}" instance_type = “${instance_type}” } T02/ess.tf module “web" { source = “../../modules/ess” env_id = “t02” instance_type = “ecs.c1.small” } 共通処理を外出しする ことで記述量を削減! Point !!
©︎ 2019 SB Cloud Corp. 2-3. Pragmatic Terraform on Alibaba
Cloud 28 ③ 適切にディレクトリ/ファイル分割を行う terraform/ ├ envs/ │ ├ T00/ │ │ ├ provider.tf │ │ ├ remote_state.tf │ │ ├ variables.tf │ │ ├ terraform.tfvars │ │ ├ vpc.tf │ │ ├ ess.tf │ │ : : │ │ └ sg.tf │ │ │ ├ T01/ │ : │ └ TXX/ : ディレクトリ構成 : └ modules/ ├ vpc/ │ ├ main.tf │ ├ output.tf │ └ variables.tf ├ ecs/ ├ ess/ : : └ xxx 適切にディレクトリ/ファイルを分割す ることで、可読性up & 処理性能up !! Point !!
©︎ 2019 SB Cloud Corp. 29 3. デモ
©︎ 2019 SB Cloud Corp. デモ②:新規環境追加 30 デモ環境構成:やること 1セット追加 共通環境
©︎ 2019 SB Cloud Corp. 31 4. おわりに
©︎ 2019 SB Cloud Corp. 4. おわりに 32 実現出来なかったこと
terraform apply失敗時のリカバリ ・ terraform planで検知出来るのは構文チェックまで ・ パラメータの妥当性等はチェックしてくれない ⇒ terraform apply時にコケた場合の対応をフローに組み込む必要あり プルリクエスト発行者の切り替え ・ プルリクエストはjenkinsが自動で発行するためユーザを指定していない ⇒ Githubからのpayloadを解析して発行者を切り替える必要あり そもそも... ・ エンタープライズのお客様がGithubの利用を許可するの?? ⇒ 次回登壇時までに対応させます!!
©︎ 2019 SB Cloud Corp. 4. おわりに 33 宣伝
Github:https://github.com/satouruzg SBクラウドtechブログ 【APIシリーズ】 ・https://www.sbcloud.co.jp/entry/2019/05/15/api-orchestration-1/ ・https://www.sbcloud.co.jp/entry/2019/05/23/api-orchestration-2 ・https://www.sbcloud.co.jp/entry/2019/05/30/api-orchestration-3 ・https://www.sbcloud.co.jp/entry/2019/06/10/api-orchestration-4 ・https://www.sbcloud.co.jp/entry/2019/06/19/api-orchestration-5 ・https://www.sbcloud.co.jp/entry/2019/07/05/api-orchestration-6 ⇒「Alibaba AIP」で検索!! 【CI/CDシリーズ】 ⇒ 乞うご期待!!
©︎ 2019 SB Cloud Corp. ご静聴ありがとうございました!!