はじめに
株式会社KyashでSREを担当する上原佑介と申します。新卒でインフラエンジニアとしてサーバー構築・運用を経験したのち、Webサービスの運営企業を数社経て、Kyashへ入社しました。現在はサービス全体の信頼性向上を目指して、システム基盤や運用面の改善に取り組んでいます。
Kyashについて
Kyashはスマートフォンアプリと連動するVisaカードです。
コンビニなどから現金をチャージして使えるほか、手持ちのクレジットカードを紐付けて使用することもできます。支払った瞬間にプッシュ通知が届いて履歴や残高へ即時反映されるといった特長があり、Apple Pay、Google Pay、Visaのタッチ決済などの幅広い決済方法に対応しています。また、Kyashユーザー同士で残高を送り合えるため、割り勘のシーンでも活躍するサービスです。
Kyashのシステムに求められる要件
Kyashの大部分はAWS上で構築されており、決済ネットワークと接続する箇所のみオンプレミスのデータセンターを利用しています。システムの特性上、カード業界のセキュリティ基準である「PCI DSS」を満たす必要があり、さまざまなセキュリティ対策や証跡の管理が求められます。
サーバーやデータへのアクセス制御はもちろん、特にカード情報などの機密データや特権ユーザーの操作については「いつ・誰が・何をしたか」を漏れなく記録・保管・監視する必要があります。ログそのものの管理も重要で、ログ自体のアクセス制御や改ざん検知についてもルールが定められています。
Kyashにとって、PCI DSS要件を満たせなくなることはビジネスの継続不可に直結するため、PCI DSS対応はSREチームにおける最重要ミッションの1つです。厳しいセキュリティ要件を満たしつつも、スピード感を持ってシステム開発に取り組める環境づくりが重要となってきます。
Kyashのシステム構成と運用上の課題
サービス開始時からAWSが採用されており、Amazon S3、Amazon RDS、Amazon ECS、Amazon Simple Queue Service(SQS)などのサービスをはじめ、Amazon GuardDuty、Amazon Inspector、AWS WAFなどのセキュリティ関連サービスも活用しています。マイクロサービス構成のため管理対象のリソース数が多く、インフラ構成のほとんどはTerraformによるコード管理を行っています。
直近で立ち上げたマイクロサービスはコンテナ(Amazon ECS)を利用しているものの、初期から残っているサービスはAmazon EC2上で構築されたものがほとんどです。また、IPアドレスを固定する要件などで Amazon ECS on EC2を利用することもあり、Amazon EC2のターミナル操作とアカウント管理は今後も必要となってきます。
以前は各サーバーに開発者ごとのSSHユーザーを発行していましたが、メンバーが増減する度に対応が発生し、人的リソースの少ないスタートアップにおいては運用負荷が課題となっていました。
上記の課題を解決するために、KyashではAWS Systems Managerを用いたSSHレス構成へ移行。運用負荷の低減と証跡管理のマネージド化を実現することができました(下図)。