Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MeetUp-202008-Infra.pdf
Search
Kashi-Tatsu
August 25, 2020
2.2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MeetUp-202008-Infra.pdf
Kashi-Tatsu
August 25, 2020
More Decks by Kashi-Tatsu
See All by Kashi-Tatsu
MeetUp-メール配信サービス「blastmail」のM&A後の軌跡 ~初めのシステムに向き合う~.pdf
kashitatsu
0
1.5k
MeetUp-202105-Infra.pdf
kashitatsu
0
1.8k
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
220
Designing Experiences People Love
moore
143
24k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
The Curse of the Amulet
leimatthew05
2
13k
Building Adaptive Systems
keathley
44
3.1k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
Designing for Timeless Needs
cassininazir
1
320
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Transcript
©2020 RAKUS Co., Ltd. 積極的にAWSサービスと自動化を使って to BのSaaSをローンチしたその後 株式会社ラクス インフラ開発部 柏木
達仁
柏木 達仁(かしわぎ たつひと) エンジニア的な自己紹介 2010年にto Bシステムインテグレーション会社へ入社し、パッケージシステムや SaaSに関わる。 2017年にラクスへ入社し、インフラ開発部に所属。 主に、blastmail、楽楽労務などのAWS関連商材を担当。 ▪スキ
楽なこと、考えて実践すること ▪キライ 繰り返し、伝言ゲーム
アジェンダ 1. SaaSにおける「運用」とは 2. なぜAWSサービスを多用するのか? 3. AWSサービスの選定ポイント 4. なぜ自動化するのか? 5.
バージョンアップにおける自動化
1. SaaSにおける「運用」とは 特徴 • サービスを提供し続けるための業務 • ローンチがスタートライン。そこからがサービスとしての勝負。 そして... 絶対にある運用業務 =
バージョンアップ!!
2. なぜAWSサービスを多用するのか? • オンプレミスよりもイニシャルコスト(=初期コスト)が安い。 ◦ 売れるか?利益が出るか?の中で考えることを減らせられる。 • 特に初期段階は、素早く提供し、顧客の反応を確かめていきたい。 • リソースを(ある程度)お金ですぐに買える。
• 基盤の信頼性。
3. AWSサービスの選定ポイント • 使うAWSサービスは「やたら」と増やさない。 ◦ 自分たちにすでにノウハウがあるモノの代替 を使おう! ◦ シンプルイズベスト= 「構成図」をかけるレベル
におさめる。 • サービスごとに「何」に対する従量課金か?を気にする。 ◦ 時間?データ処理量? • インフラコード化、自動化することも考えて選ぶ。
3. AWSサービスの選定ポイント 間違った選定や使い方をすると ... • 「ALB - ECS(fargate) - RDS」でいいものをAPI
GatewayやLambdaを組み合わせる。 学習コストが高くなりがち、トラブルシュートに時間。 • S3:ストレージ容量+通信量の従量課金だと思ったら、クエリでも課金。 アプリから無駄なアクセスすると、とんでもない料金に。
3. AWSサービスの選定ポイント • ALB • ECS(fargate) • RDS(Aurora) が主軸。 部分的、補助的に、以下も利用。
• S3 • KMS • CloudWatch • WAF
4. なぜ自動化するのか? • SaaSでは絶対にバージョンアップが発生するため。 • 安定して「継続」させるためには、属人化の排除が必要。 • 人間の品質にはブレがあるが、コード化すればブレは(ほぼ)消える。 ◦ 向上させていくのみ...。
5. バージョンアップにおける自動化 × ×
5. バージョンアップにおける自動化 • Java製。WebUIから、スクリプトを定義・実行できるツール。 • スクリプト(bash/python/php/etc…)をスケジュール、ボタンで実行 • 実行履歴が残る、ユーザーへの権限制限があるため、監査にも強い。 • おすすめ動画:https://www.youtube.com/watch?v=QSY_qw9Buic
5. バージョンアップにおける自動化
5. バージョンアップにおける自動化 • Golang製。クラウドの構成を管理できるInfrastructure as Code(IaC)。 • HashiCorp社 … Terraform、Vault、Vagrant、Consul、Packer、Nomadなどを開発。
• すでに存在しているリソースをコードにしてくれる補助 OSSもある。 • Ansible(=OS以上のレイヤーに強い)より、OSより下のレイヤーを扱いやすい。 • おすすめ動画:https://www.youtube.com/watch?v=UleogrJkZn0
5. バージョンアップにおける自動化 resource "aws_instance" "sample_ec2" { ami = "ami-xxxx" availability_zone
= "ap-northeast-1a" ebs_optimized = false instance_type = "t3.medium" monitoring = true key_name = "ssh_key" subnet_id = "subnet-XXX" vpc_security_group_ids = ["sg-XXX"] associate_public_ip_address = false private_ip = "xxx.xxx.xxx.xxx" source_dest_check = true root_block_device { volume_type = "gp2" volume_size = 8 delete_on_termination = true } tags { "Name" = "sample-ec2" } }
5. バージョンアップにおける自動化 =インフラコード変更 → テスト → 作業時はボタンを押すのみ。 =一定の作業品質、非属人化、リードタイム最小化。 =顧客とサービス運用への寄与。
× ×
最後に... 一緒にプロダクトをより良くし、お客様のビジネスに貢献していき たいエンジニアを常に募集しています。 詳しくは、運営へどうぞお気軽に!!
ご清聴ありがとうございました!