Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
MeetUp-202008-Infra.pdf
Kashi-Tatsu
August 25, 2020
2
610
MeetUp-202008-Infra.pdf
Kashi-Tatsu
August 25, 2020
Tweet
Share
Featured
See All Featured
bkeepers
PRO
54
4.3k
morganepeng
94
14k
lara
590
61k
trallard
15
820
hatefulcrawdad
257
17k
marktimemedia
7
450
shpigford
166
19k
lauravandoore
440
28k
jonrohan
1021
390k
addyosmani
495
110k
garrettdimon
289
110k
colly
66
3k
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. バージョンアップにおける自動化 =インフラコード変更 → テスト → 作業時はボタンを押すのみ。 =一定の作業品質、非属人化、リードタイム最小化。 =顧客とサービス運用への寄与。
× ×
最後に... 一緒にプロダクトをより良くし、お客様のビジネスに貢献していき たいエンジニアを常に募集しています。 詳しくは、運営へどうぞお気軽に!!
ご清聴ありがとうございました!