Laravelの欠点をAWSでカバーする

はじめに

この記事ではPHPのフレームワークであるLaravelの特徴にと、市場拡大中のAmazonのクラウドサービスであるAWSについて紹介していきます。

Laravelとは

LaravelとはPHP言語を用いた開発でよく使われるフレームワーク(※システム開発を簡単に行えるように用意された、プログラムなどのひな形のこと)です。開発において、フレームワークを使用することにより、通常であれあば何ヶ月もかかるような開発期間を大幅に短縮する事ができます。また、Laravelは簡単なアプリケーションであれば自動生成してくれるので、開発生産性が高いという特徴もあります。

PHPのフレームワークには他に「コードイグナイター」「cakePHP」などがありますが、Laravelはそれらのフレームワークに比べ、世界的にも利用者が増加傾向にあり、日本でも人気が高まっているフレームワークです。

Laravelで起こりうるリスク。改善方法

Laravelの弱点として、多機能であるがゆえに、他のフレームワークに比べて、処理速度が遅いという事が挙げられます。これに加えて自社でサーバーや、ストレージを管理している場合、サーバーを維持するコストがかかったり、長期間運用していると容量が増え、レスポンス速度がより低下してしまいます。しかし、クラウドサービスを利用する事でサーバーを維持するコストを抑えつつ、快適なパフォーマンスを保つ事ができる可能性があります。

そこで今回ご紹介するのがAmazonが提供するクラウドサービス、AWSとその中に含まれるクラウド型のオブジェクトストレージサービスAmazon S3についてご紹介します。

AWSとは

AWSとはAmazon Web Serviceの略で2006年3月からAmazon社が開始した世界で最も広く採用されているクラウドプラットフォームです。AWSのようなサービスが普及する前は自社にサーバー機器を購入し、設置し利用する「オンプレミス」と言われる運用が一般的でしたがクラウドコンピューティングサービスを活用することで、サーバーの購入をせずに済み、物理的なサーバーのスペースの確保をしなくてもよくなります。また、既に構築、管理されているサーバー、ストレージ、ソフトウェアを利用できるのでスピーディーに業務に取り組むことが可能です。

その後、クラウドコンピューティングサービスの市場は拡大していき、その中でもAWSが特に大きく市場を獲得していきます。2018年に行われた調査では世界のクラウドインフラサービス市場シェア率のうち34%を占める世界で最も活用されているクラウドサービスとなりました。AWSサービスの利用者はスタートアップ企業から大手企業、政府機関など多義に渡り、それぞれの利用者がコスト削減を削減したり、俊敏性を高めています。

Amazon S3

では次にそのAWS内に含まれるサービス、Amazon S3について紹介していきます。

Amazon S3のS3はSimple Storage Servicの略でデータサイズやデータ数の保存制限がなく、大容量データの保存に適しているクラウド上のストレージクラウド型のオブジェクトストレージサービスです。あらゆる規模の業界の利用者がAmazon S3を利用してパフォーマンス、スケーラビリティ、可用性、および耐久性ストレージリソースをスケールアップ、ダウンして、変動する需要に対応できます。

また、Amazon S3では堅牢な機能で、アクセス、コスト、レプリケーション、データ保護を管理できます。Amazon S3 は 99.999999999% (9 x 11) の耐久性を実現するように設計されており、世界中の企業向けに何百万ものアプリケーションのデータを保存しています。 必要に応じてデータを利用することができるため、障害やエラー、脅威から保護することもできます。
他にもデータアクセスの管理が容易になったりリージョン内やリージョン間のデータレプリケーションを管理できます。アクティビティのログ記録、アラートの定義、ワークフローの自動化を行うことなども可能です。

このように様々な特徴、機能があるAmazon S3ですが、Amazon S3では特にストレージ管理と整理が簡単にできるという点と利用料金の安さ、それを保護するセキュリティ面が評価されているのでそれぞれどのような特徴があるのか解説していきます。

ストレージ管理と整理

Amazon S3 では、データの整理や管理を対象としたさまざまな機能が利用できます。データは「バケット」と呼ばれるリソース内のオブジェクト(オブジェクトあたりのサイズは最大 5 テラバイト)として保存されます。そのオブジェクトにメタデータタグを追加したり、S3 オブジェクトタグと呼ばれるキーと値のペアを各オブジェクトに最大 10 個付加することで整理することが可能です。
他にも S3 ストレージクラス全体でデータを移動および保存する機能やオブジェクトおよびバケットレベルでデータをモニタリングする機能などがあります。

利用料金の安さ

Amazon S3が評価されている一番の理由が料金の安さで、実際に使用した分だけ支払うシステムになっており、その料金はおよそ1GBあたり約0.025ドル(東京リージョン)と破格の安さとなっています。
ストレージクラスごとに料金が設定されており、ストレージ料金、リクエストとデータ取り出しの料金、データ転送と転送高速化の料金、データ管理機能の料金のコスト要素を考慮して自社の提供しているサービスに適した料金を設定できます。
実際に使用した分だけ支払うシステムになっているので事業が拡大し求めるストレージ量が増えてしまったり逆に減ったりしてしまっても対応が可能です。

※ストレージクラス

Amazon S3 では、次のようなさまざまなS3ストレージクラスにデータを格納できます。

  • S3 スタンダード
  • S3 Intelligent-Tiering
  • S3 標準 – 低頻度アクセス(S3 Standard-IA)
  • S3 1 ゾーン – 低頻度アクセス (S3 One Zone-IA),Amazon S3 Glacier (S3 Glacier)
  • Amazon S3 Glacier Deep Archive (S3 Glacier Deep Archive)

これらすべてのS3ストレージクラスは対応するコストで特定のデータアクセスレベルをサポートしています。
例えばアクセス頻度の高いミッションクリティカルな本稼働データは「S3 Standard」、アクセス頻度の低いデータは「S3 Standard-IA」または 「S3 One Zone-IA 」に保存することでコストを節約できます。
このような分析は大変厄介な労力になると感じるかもしれませんがS3 ストレージクラス分析を使用すると、オブジェクト間のアクセスパターンをモニタリングし、低コストのストレージクラスに移動する必要のあるデータを検出することが可能です。

セキュリティ、コンプライアンス、監査機能

データをAmazon S3に保存することで、暗号化機能とアクセス管理ツールを使用して不正なアクセスからデータを保護することができます。また、S3 Block Public Accessというサービスを併用することでバケットレベルまたはアカウントレベルで、すべてのオブジェクトへのパブリックアクセスをブロックすることができるようになります。

AWSでは、S3 リソースへのアクセスリクエストをモニタリングするための監査機能も多数サポートされています。

導入実績

上記の特徴が大手企業でも評価され、Amazon S3を導入する企業も増えています。
オンラインDVDレンタル及び映像ストリーミング配信事業会社のNetflixはAmazon S3から世界中に数十億時間ものコンテンツを配信しており、100円均一で有名な大創産業(DAISO)はAWSのサーバーレス機能を用いて5,000店舗×7万アイテムの大量データを処理するPOSデータ集中処理システムとBI環境を構築しています。

まとめ、ストレージが原因で動作が重くなったら

今回の記事ではPHPのフレームワークであるLaravelとその欠点を補える可能性があるAWS内クラウド型のオブジェクトストレージサービスAmazon S3について紹介させていただきました。
Laravelを長期的に利用しストレージの関係で処理速度が遅くなってきたという事が起こってしまうことがあると思います。そのようなときはLaravelとAmazon S3のサービスを組み合わせて利用することにより、サーバー、ストレージが常に管理、最適化されるので自社のサービスをより快適に、処理速度が下がる事なくで運用できる可能性が高まります。

今後もクラウドサービスの市場は拡大していくと考えられるので興味があるのであれば、是非ご検討してみてはいかがでしょうか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です