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.4k
MeetUp-202105-Infra.pdf
kashitatsu
0
1.8k
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
160
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.6k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
400
BBQ
matthewcrist
89
10k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
380
How to Ace a Technical Interview
jacobian
281
24k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
Bash Introduction
62gerente
615
210k
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. バージョンアップにおける自動化 =インフラコード変更 → テスト → 作業時はボタンを押すのみ。 =一定の作業品質、非属人化、リードタイム最小化。 =顧客とサービス運用への寄与。
× ×
最後に... 一緒にプロダクトをより良くし、お客様のビジネスに貢献していき たいエンジニアを常に募集しています。 詳しくは、運営へどうぞお気軽に!!
ご清聴ありがとうございました!