MeetUp-202008-Infra.pdf

8c658176073e8cb6c34d5965f8ce2af8?s=47 Kashi-Tatsu
August 25, 2020
450

 MeetUp-202008-Infra.pdf

8c658176073e8cb6c34d5965f8ce2af8?s=128

Kashi-Tatsu

August 25, 2020
Tweet

Transcript

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

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

    楽なこと、考えて実践すること ▪キライ 繰り返し、伝言ゲーム
  3. アジェンダ 1. SaaSにおける「運用」とは 2. なぜAWSサービスを多用するのか? 3. AWSサービスの選定ポイント 4. なぜ自動化するのか? 5.

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

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

    • 基盤の信頼性。
  6. 3. AWSサービスの選定ポイント • 使うAWSサービスは「やたら」と増やさない。 ◦ 自分たちにすでにノウハウがあるモノの代替 を使おう! ◦ シンプルイズベスト= 「構成図」をかけるレベル

    におさめる。 • サービスごとに「何」に対する従量課金か?を気にする。 ◦ 時間?データ処理量? • インフラコード化、自動化することも考えて選ぶ。
  7. 3. AWSサービスの選定ポイント 間違った選定や使い方をすると ... • 「ALB - ECS(fargate) - RDS」でいいものをAPI

    GatewayやLambdaを組み合わせる。 学習コストが高くなりがち、トラブルシュートに時間。 • S3:ストレージ容量+通信量の従量課金だと思ったら、クエリでも課金。 アプリから無駄なアクセスすると、とんでもない料金に。
  8. 3. AWSサービスの選定ポイント • ALB • ECS(fargate) • RDS(Aurora) が主軸。 部分的、補助的に、以下も利用。

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

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

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

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

  13. 5. バージョンアップにおける自動化 • Golang製。クラウドの構成を管理できるInfrastructure as Code(IaC)。 • HashiCorp社 … Terraform、Vault、Vagrant、Consul、Packer、Nomadなどを開発。

    • すでに存在しているリソースをコードにしてくれる補助 OSSもある。 • Ansible(=OS以上のレイヤーに強い)より、OSより下のレイヤーを扱いやすい。 • おすすめ動画:https://www.youtube.com/watch?v=UleogrJkZn0
  14. 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" } }
  15. 5. バージョンアップにおける自動化 =インフラコード変更 → テスト → 作業時はボタンを押すのみ。 =一定の作業品質、非属人化、リードタイム最小化。 =顧客とサービス運用への寄与。  

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

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