Coinbase は AWS Step Functions を利用し AWS に数秒で安全にデプロイ

600x400_Coinbase_Logo resize

暗号通貨は、資金への分散型アクセスを提供し、資金を受け取る当事者以外は誰も取り消すことができない現金のような取引を可能にします。こういった特徴は、暗号通貨の人気が高まっている要因の 1 つです。しかしそれは法律を遵守する投資家の間だけでなく、悪意のある人間にとっても同様で、暗号通貨がより広く使用されるようになるにつれ、暗号通貨を盗む動機やチャンスが増大しています。FBI のインターネット犯罪苦情センター (IC3) に報告された暗号通貨の盗難被害額は 2018 年に合計 1 億 8,200 万 USD に上りました。これは、2017 年と比較して 212% 増加していますが、おそらくは詐欺による世界の暗号通貨の損失額の氷山の一角に過ぎないでしょう。

「暗号通貨取引所へのハッキングは、世界最大の陣取合戦です」と、Coinbase のシニアインフラストラクチャエンジニアである Graham Jenson 氏は述べています。同社は世界中の 3,000 万人の顧客と合計 2,200 億 USD の取引を行うデジタル通貨のウォレットおよびプラットフォームを運営しています。「最大の取引所の 1 つである Coinbase も最大のターゲットの 1 つです」

Coinbase は、安全で法令を守り、信頼できる暗号通貨経済の中心となることを目標に、セキュリティ、コンプライアンス、テクノロジー、カスタマーサポート、設計などの点で世界レベルを目指しています。これが、Coinbase が 2015 年からアマゾン ウェブ サービス (AWS) を主要インフラストラクチャプロバイダーとして採用している理由です。またソフトウェアデプロイプロセスを改善する一環として、追加の AWS テクノロジーを最近組み込んだ理由でもあります。

顧客を攻撃から保護するために、Coinbase のエンジニアは、すべてのシステムの更新と新機能を迅速、確実、かつ安全にデプロイしなければならず、ソフトウェアによっては、デプロイに20 時間以上かかる場合があります。これらのプロセスを簡素化および強化するために、Coinbase は AWS Step Functions および AWS Lambda を使用して、デプロイヤーのアドホックポートフォリオであったものに対して共通の再利用可能なフレームワークを構築しました(AWS Lambda はイベントに反応してコードを実行するサーバーレスプラットフォームで、AWS Step Functions は複数の AWS のサービスをサーバーレスワークフローに調整します)。

「AWS Step Functions と AWS Lambda を使用することで、ミッションクリティカルなデプロイの成功率が 90% から 97% に上昇しました」と Jenson 氏は言います。

「トラブルチケットが大幅に減少しました。これは、AWS Step Functions がエンジニアにもたらす可視性のおかげです」

Coinbase のシニアインフラストラクチャエンジニア、Graham Jenson 氏

  • Coinbase について
  • 利点
  • 利用している AWS のサービス
  • Coinbase について
  • Coinbase は、サンフランシスコを拠点とし、デジタル通貨のウォレットおよびプラットフォームを運営しています。同社の顧客数は 3,000 万人で、ビットコイン、イーサリアム、ライトコインなどのデジタル通貨で 2,200 億 USD を超える取引をサポートしています。

  • 利点
    • デプロイ成功率が 90% から 97% に上昇
    • 新しい AWS アカウントの追加に必要な時間を数日から数秒に短縮
    • 解決されたチケットの数が大幅に増加
  • 利用している AWS のサービス

AWS Step Functions: 「まさに私が必要としていたもの」

Coinbase のセキュリティをさらに強化する方法を模索していた Jenson 氏は、自動デプロイパイプラインを改善しようと考えました。「当社には複数のデプロイヤがあり、それぞれに異なるインターフェイスと複雑性がありました」と Jenson 氏は言います。 「ユーザーの入力を検証し、コードを AWS に安全にリリースし、エンジニアの邪魔にならないデプロイヤを迅速に構築できる共通のフレームワークが必要でした」

ソリューションを調査する過程で、Jenson 氏は AWS Step Functions について知りました。「ドキュメントを確認するとすぐに、Step Functions こと私が求めていたものだと気付きました。Step Functions は、最長 1 年間現状を維持でき、拡張性が高く、特定のエラー後に自動的に処理して再試行する方法を教えてくれます」

AWS Lambda と AWS Step Functions に基づくフレームワークで新しいタイプのデプロイヤを構築し、さらにAWS Identity and Access Management (AWS IAM) と Amazon Simple Storage Service (Amazon S3) を使用することで、ほんの短い初期教育のみで、Coinbase は迅速に実装段階に移りました。Jenson の最初のチームが構築した Odin と呼ばれるオープンソースの AWS のデプロイヤは、プロジェクトリリースのディスクリプションを、Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling グループを使用して AWS に安全かつセキュアに起動します。

「アイデアから実装、Odin からソリューションへの移行まで、構想から本番までに 6 か月かかりました」と Jenson 氏は言います。「しかし、コードを再利用し、Odin が構築されているフレームワークがあるため、次の 2 つのデプロイヤを本番稼働させるには数週間しかかかりませんでした。今後はさらに速くなることでしょう」

Step Functions を使用した簡素化されたアーキテクチャ

新しいアプローチにより、Coinbase のアーキテクチャの複雑さが大幅に軽減し、Jenson 氏のチームの可視性が向上しました。

「以前のデプロイヤはすべて、異なるウェブフック、コールバック、Amazon S3 レイアウト、バケット、および AWS IAM ロールを持っていて、通信とポーリングに異なる手段を用いていました。必要な可視性を得ることは本当に困難でした」と Jenson 氏は言います。「現在、すべてのデプロイヤが同じ AWS Lambda と AWS Step Functions の基盤に基づいているので、どのデプロイヤも同じように操作し、やりとりできます。実際、Step Functions を通るデータフローを監視しながら、特定のパスに沿って障害を特定し、それを修正するためのアクションを実行できるのです」

このシンプルさにより、AWS アカウントを追加するプロセスが高速になり、セキュリティが向上します。「AWS IAM で AWS Lambda を使用してロールを引き受けると、個別の設定があるサービス全体ではなく、単一の AWS IAM ロールで AWS アカウントをオンボードできます」と Jenson 氏は言います。「AWS Lambda と AWS IAM により、新しい AWS アカウントの追加に必要な時間を数日から数秒に短縮しました」

また、新しいソリューションは監査性を簡素化します。「複数のアカウントを 1 つの Step Functions を通過するようにすることができます。これにより、すべてのデプロイに対して単一の監査証跡が得られます」と Jenson 氏は言います。「そうすることで、すべてのアカウントで何が起こったかを簡単に理解できるようになり、監査証跡を再実装しなくても、セキュリティの高い新しいアカウントを持つことができます」

エンジニアが独自に障害を克服できるようにすることで、ソリューションはインフラストラクチャチームへのリクエストも削減します。「デプロイの失敗に関するトラブルチケットが大幅に減少しました」と Jenson 氏は言います。「これは、AWS Step Functions によって可視性が高まり、エンジニアが自分の問題を診断および解決できるようになったおかげです」

このような内部的な技術的メリットを合わせることで、セキュリティを強化し、顧客のリクエストにより迅速に対応できるようになります。「AWS Step Functions と AWS Lambda で構築されたデプロイヤーにより、エンジニアはコードを本番環境に安全に移行できるようになりました」と Jenson 氏は言います。「その結果、新機能をより頻繁にリリースし、セキュリティの脅威に迅速に対応し、SLA を以前よりも簡単に達成できるようになりました。これにより、カスタマーエクスペリエンスの質とセキュリティも向上しました」


詳細はこちら

AWS Step Functions の詳細をご覧ください。