Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MeetUp-202008-Infra.pdf

Kashi-Tatsu
August 25, 2020
1.6k

 MeetUp-202008-Infra.pdf

Kashi-Tatsu

August 25, 2020
Tweet

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide