シーエー・アドバンスは、AWS Copilot を使用して、ウェブサイトの立ち上げにかかる時間を 4 時間から 1 時間に短縮

2022

株式会社シーエー・アドバンス (以下「シーエー・アドバンス」) は、「沖縄のインターネット産業の未来を創る」というミッションを掲げ、 常にウェブサイトの作成プロセスの最適化を目指しています。2020 年には、ウェブサイトの作成とデプロイに使用される同社のアーキテクチャは、NGINX と Apache によって管理される仮想ホストで構成されていました。しかし、これらのオープンソースツールを使用する場合、設定ファイルの作成、本番稼働ワークロードの更新、ファイルのバックアップなど、時間のかかるプロセスを管理しなければなりませんでした。このため、新しい本番稼働環境の構築には最大 4 時間かかっていました。

同社は、2013 年以来、コンピューティングのためにアマゾン ウェブ サービス (AWS) を利用しています。2021 年初めに、シーエー・アドバンスは AWS Copilot の使用を開始しました。これは、コンテナ化されたアプリケーションを AWS で迅速に立ち上げ、簡単に管理できるよう支援するコマンドラインインターフェイスです。その結果、同社はウェブサイトの信頼性と安定性を向上させ、オートスケーリング戦略を最適化し、新しい本番稼働環境の構築にかかる時間を 1 時間に短縮しました。。

701029600
kr_quotemark

AWS Copilot は、私たちにとってガードレールとして機能します。Amazon ECS と AWS Fargate に基づいて、サービスに対して独自の簡略化された運用ワークフローを持つことができます

Shinya Takara 氏
シーエー・アドバンス
CX+、製品マネージャー

プロセスを最適化するツールの探索

日本の沖縄で設立された シーエー・アドバンスは、広告やゲームなど、インターネットメディア関連サービスを提供しています。同社は株式会社サイバーエージェントの子会社です。

シーエー・アドバンスは、2020 年には既にさまざまな AWS のサービスを利用していました。これには、事実上あらゆるワークロードに対して安全でサイズ変更可能なコンピューティング性能を提供する、Amazon Elastic Compute Cloud (Amazon EC2) が含まれます。AWS Copilot を実装する前は、Amazon EC2 インスタンスを使用して、Apache 仮想ホストにより複数の企業ウェブサイトを実行、運用し、トラフィックを各ウェブサイトにルーティングしていました。このソリューションは理想的とは言えませんでした。アプリケーションの可用性の維持をユーザーに支援する Amazon EC2 Auto Scaling を簡単に実装することができず、Amazon EC2 インスタンス間の同期にはウェブサイトのデータが必要だからです。 さらに、単一のウェブサイトでシステム障害が発生すると、同じ Amazon EC2 インスタンス上にホストされた他のウェブサイトに影響が及ぶ可能性があります。

シーエー・アドバンスは、AWS Copilot を選択する前に、複数のツールを評価しました。しかし、チームの構成が頻繁に変更されていたため、それらのツールでは、チームメンバー間のコラボレーションを促進することができませんでした。「AWS Copilot は公開されてから早い段階で見つけました」と、シーエー・アドバンスによって開発、運営されているサービスとしての E メール管理ソフトウェアである CX+ の製品マネージャー、Shinya Takara 氏は言います。「私はこのツールについて詳しく知りたいと考えました」。  

コンテナベースソリューションの実装

AWS Copilot は、お客様の迅速なデプロイを支援するために組み込まれたサンプルやガイド付きの操作を含む、シンプルな宣言コマンドのセットを提供します。AWS Copilot は、アプリケーションコードの記述後に、デプロイライフサイクルにおける各ステップを自動化します。これには、レジストリへのプッシュ、タスク定義の作成、クラスターの作成が含まれます。

AWS Copilot の使用と共に、シーエー・アドバンスは AWS Fargate を使用しています。これは、企業がサーバーを管理することなくアプリケーションの構築に集中することができる、サーバーレスで従量制料金のコンピューティングエンジンです。 また、同社は Amazon Elastic Container Service (Amazon ECS) も使用しています。これは、コンテナ化されたアプリケーションのデプロイ、管理、スケールを容易にする、フルマネージドのコンテナオーケストレーションサービスです。シーエー・アドバンスは、AWS Copilot を使用して、クラスターで複数の Amazon ECS サービスを実行することができます。 「AWS Copilot は、私たちにとってガードレールとして機能します」と、Takara 氏は言います。「私たちは、Amazon ECS と AWS Fargate に基づいて、サービスに対して独自の簡略化された運用ワークフローを持つことができます」。

シーエー・アドバンスは、ロードバランシングされたウェブサービスパターンを使用しています。これは、AWS Fargate 上の Amazon ECS でオーケストレートされた、ロードバランサーの背後にあるインターネット向けサービスです。「Amazon ECS と AWS Fargate の設定にアクセスするためにタスクレベルの暗号ファイルシステムアクセスを使用することで、ホストレベルのネットワークファイルシステム設定なしに、複数のタスク全体のウェブサイトデータを同期できるようになります」と Takara 氏は言います。「現在では、Amazon EC2 インスタンス内でその処理を実行する必要はありません」。

シーエー・アドバンスは、AWS Copilot の環境リソース機能を使用して、別の環境を同じ Dockerfile 内で分割することができます。これには、安全なネットワークをプロビジョニングするために必要なリソースや、サービス (Application Load Balancer や Amazon ECS クラスターなど) の間で共有することを目的とした他のリソースが含まれます。同社は、モジュールの更新とテストをモニタリングし、チェックが完了したら、迅速に本番稼働環境に移行することができます。現在では、シーエー・アドバンスはウェブサイトの設定を個別の専用 Git レポジトリで別個に管理できます。「アーキテクチャ上のこの変更により、どのウェブサイトも、他のウェブサイトからの影響を受けることはなくなりました」と Takara 氏は言います。「これにより、特定のウェブサイトで迅速かつ安全に変更を行うことができます」。また、同社は各ウェブサイトのオートスケーリング戦略を最適化することもできます。

以前は、NGINX や Apache を使用して新しいウェブサイトを作成するときは、設定ファイルの作成、本番稼働ワークロードの更新、ファイルのバックアップなどの詳細を管理する必要がありました。こうした時間のかかる手動のプロセスのため、本番稼働環境の構築には最大 4 時間かかることがありました。AWS Copilot を使用することで、新しいウェブサイトの作成およびデプロイプロセスが自動化されます。「AWS Copilot を使用する前は、タスクを管理するためにコードを準備する必要があり、暗号化ファイルシステムを使用してサイト共有ストレージスペースを開発することはできませんでした」と、Takara 氏は言います。現在では、AWS Copilot を使用することで、シーエー・アドバンスチームの経歴の浅いメンバーでも、わずか 1 時間で本番稼働環境を作成することができます。「新しいサイトの開発時におけるサービスの追加とデプロイが、はるかに簡単になりました」と、Takara 氏は言います。「私たちが行う必要があるのは、Application Load Balancer ルールの微調整だけです」。

継続的デリバリーパイプラインの作成に向けた展望

今後、シーエー・アドバンスは AWS Copilot の使用を拡大する計画です。同社は、AWS Copilot、AWS Fargate、Amazon ECS を使用した、自動化された継続的デリバリーのパイプラインを作成できるよう、Amazon EC2 でのコンテナ化されたその他の製品に取り組んでいます。「AWS Copilot の使用により簡略化できる、継続的デリバリーパイプラインに関連するプロジェクトは数多くあります」と、Takara 氏は言います。「私たちが AWS Fargate を使用して実現している柔軟性のあるスケーリングにより、オペレーションが大きく改善しました」。


カスタマープロフィール:株式会社シーエー・アドバンス

シーエー・アドバンスは、日本の沖縄で設立され、沖縄を拠点としているインターネットサービス企業で、インターネットメディア関連サービスを提供しています。同社は、日本最大規模のインターネットメディア企業である、株式会社サイバーエージェントの子会社です。

AWS 導入後の効果と今後の展開

  • 開発するウェブサイトの信頼性と安定性を向上
  • オートスケーリング戦略を最適化
  • 本番稼働環境の作成にかかる時間を 4 時間から 1 時間に短縮
  • ウェブサイトの開発プロセスの耐障害性を向上

ご利用中の主なサービス

AWS Copilot

AWS Copilot は、お客様が AWS でコンテナ化されたアプリケーションを素早く起動し、簡単に管理することを可能にするコマンドラインインターフェイス (CLI) です。AWS Copilot はシンプルな宣言型のコマンドセットを提供し、これにはお客様が素早くデプロイできるように組み込まれたサンプルやガイド付きエクスペリエンスが含まれます。

詳細はこちら »

AWS Fargate

AWS Fargate は、Amazon Elastic Container Service (ECS) と Amazon Elastic Kubernetes Service (EKS) の両方で動作する、コンテナ向けサーバーレスコンピューティングエンジンです。Fargate を使用すると、アプリケーションの構築に簡単に集中することができます。

詳細はこちら »

Amazon ECS

Amazon Elastic Container Service (Amazon ECS) は、完全マネージド型のコンテナオーケストレーションサービスです。Duolingo、Samsung、GE、Cook Pad などのお客様が ECS を使用して、セキュリティ、信頼性、スケーラビリティを獲得するために最も機密性が高くミッションクリティカルなアプリケーションを実行しています。

詳細はこちら »

Amazon EC2

Amazon Elastic Compute Cloud (Amazon EC2) は、安全でサイズ変更可能なコンピューティング性能をクラウド内で提供するウェブサービスです。ウェブスケールのクラウドコンピューティングを開発者が簡単に利用できるよう設計されています。

詳細はこちら »