Slide 1

Slide 1 text

©2020 RAKUS Co., Ltd. 積極的にAWSサービスと自動化を使って to BのSaaSをローンチしたその後 株式会社ラクス インフラ開発部 柏木 達仁

Slide 2

Slide 2 text

柏木 達仁(かしわぎ たつひと) エンジニア的な自己紹介 2010年にto Bシステムインテグレーション会社へ入社し、パッケージシステムや SaaSに関わる。 2017年にラクスへ入社し、インフラ開発部に所属。 主に、blastmail、楽楽労務などのAWS関連商材を担当。 ■スキ 楽なこと、考えて実践すること ■キライ 繰り返し、伝言ゲーム

Slide 3

Slide 3 text

アジェンダ 1. SaaSにおける「運用」とは 2. なぜAWSサービスを多用するのか? 3. AWSサービスの選定ポイント 4. なぜ自動化するのか? 5. バージョンアップにおける自動化

Slide 4

Slide 4 text

1. SaaSにおける「運用」とは 特徴 ● サービスを提供し続けるための業務 ● ローンチがスタートライン。そこからがサービスとしての勝負。 そして... 絶対にある運用業務 = バージョンアップ!!

Slide 5

Slide 5 text

2. なぜAWSサービスを多用するのか? ● オンプレミスよりもイニシャルコスト(=初期コスト)が安い。 ○ 売れるか?利益が出るか?の中で考えることを減らせられる。 ● 特に初期段階は、素早く提供し、顧客の反応を確かめていきたい。 ● リソースを(ある程度)お金ですぐに買える。 ● 基盤の信頼性。

Slide 6

Slide 6 text

3. AWSサービスの選定ポイント ● 使うAWSサービスは「やたら」と増やさない。 ○ 自分たちにすでにノウハウがあるモノの代替 を使おう! ○ シンプルイズベスト= 「構成図」をかけるレベル におさめる。 ● サービスごとに「何」に対する従量課金か?を気にする。 ○ 時間?データ処理量? ● インフラコード化、自動化することも考えて選ぶ。

Slide 7

Slide 7 text

3. AWSサービスの選定ポイント 間違った選定や使い方をすると ... ● 「ALB - ECS(fargate) - RDS」でいいものをAPI GatewayやLambdaを組み合わせる。 学習コストが高くなりがち、トラブルシュートに時間。 ● S3:ストレージ容量+通信量の従量課金だと思ったら、クエリでも課金。 アプリから無駄なアクセスすると、とんでもない料金に。

Slide 8

Slide 8 text

3. AWSサービスの選定ポイント ● ALB ● ECS(fargate) ● RDS(Aurora) が主軸。 部分的、補助的に、以下も利用。 ● S3 ● KMS ● CloudWatch ● WAF

Slide 9

Slide 9 text

4. なぜ自動化するのか? ● SaaSでは絶対にバージョンアップが発生するため。 ● 安定して「継続」させるためには、属人化の排除が必要。 ● 人間の品質にはブレがあるが、コード化すればブレは(ほぼ)消える。 ○ 向上させていくのみ...。

Slide 10

Slide 10 text

5. バージョンアップにおける自動化   ×          ×

Slide 11

Slide 11 text

5. バージョンアップにおける自動化 ● Java製。WebUIから、スクリプトを定義・実行できるツール。 ● スクリプト(bash/python/php/etc…)をスケジュール、ボタンで実行 ● 実行履歴が残る、ユーザーへの権限制限があるため、監査にも強い。 ● おすすめ動画:https://www.youtube.com/watch?v=QSY_qw9Buic

Slide 12

Slide 12 text

5. バージョンアップにおける自動化

Slide 13

Slide 13 text

5. バージョンアップにおける自動化 ● Golang製。クラウドの構成を管理できるInfrastructure as Code(IaC)。 ● HashiCorp社 … Terraform、Vault、Vagrant、Consul、Packer、Nomadなどを開発。 ● すでに存在しているリソースをコードにしてくれる補助 OSSもある。 ● Ansible(=OS以上のレイヤーに強い)より、OSより下のレイヤーを扱いやすい。 ● おすすめ動画:https://www.youtube.com/watch?v=UleogrJkZn0

Slide 14

Slide 14 text

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" } }

Slide 15

Slide 15 text

5. バージョンアップにおける自動化 =インフラコード変更 → テスト → 作業時はボタンを押すのみ。 =一定の作業品質、非属人化、リードタイム最小化。 =顧客とサービス運用への寄与。   ×          ×

Slide 16

Slide 16 text

最後に... 一緒にプロダクトをより良くし、お客様のビジネスに貢献していき たいエンジニアを常に募集しています。 詳しくは、運営へどうぞお気軽に!!

Slide 17

Slide 17 text

ご清聴ありがとうございました!