2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSのSticky Sessionを作成(スティッキーセッション)

Last updated at Posted at 2023-12-28

このチュートリアルでは、一歩一歩、AWSでSticky Sessionを作成する方法を説明します。

このチュートリアルを進めるには、AWSのElastic Load Balancerのコンセプトに慣れている必要があります。

なぜSticky Sessionを使用し、それは何のためですか?

次の設定を使用するPHPアプリケーションがあるとします:

  • アプリケーションロードバランサー
  • 2つのEC2インスタンス

001.png

ユーザーがログインすると、弊社のElastic Load Balancerが2つのインスタンス間で負荷を分散します。

ユーザーは最初のインスタンスにアクセスします:

002.png

次に、2番目のインスタンスにアクセスします:

003.png

そして次々と続きます。

これはステートレスアプリケーションの場合には問題ありません。

Stateless Applicationとは、データやアプリケーションの状態をクラスタや永続ストレージに保存しないアプリケーションです。

ただし、アプリケーションがユーザーセッションを必要とする場合、問題が発生する可能性があります。実際に、商品をカートに追加してからリンクをクリックした後、カートが空になっていることに気付いたり、商品をカートから削除してからリンクをクリックした後に商品が削除されていないことに気付いたりするかもしれません。

この問題を解決するために、Sticky Sessionを使用できます。

Sticky Session以外にも、別の方法が存在することを知っておいてください。それについては別の日に説明します。

スティッキーセッションはどのように機能しますか?

これは非常に簡単に理解できます。ユーザーを1つのインスタンスにバインドするだけです。ユーザーがリクエストを行うと、ランダムに1つのインスタンスを使用します。例えば、2番目のインスタンス:

003.png

ユーザーが新しいリクエストを行う場合、引き続き2番目のインスタンスを使用します。

003.png

練習しよう!

2つのEC2インスタンスを起動してください。

アプリケーションロードバランサーをセットアップしてください。

分からない場合は、私のチュートリアルAWSでApplication Load Balancerの作成でこれらすべての手順を説明しています。

以下のコマンドを入力してください:

yum install -y php
systemctl stop httpd
systemctl start httpd
cd /var/www/html/
rm -f index.html
curl https://gist.githubusercontent.com/seikida/b7398ff4300ee88752ce7d8fa2874c77/raw/index.php -o index.php

ウェブサイトにアクセスすると、このページがあるはずだ:

Screenshot 2023-12-29 at 1.52.56.png

ログインするには、「totoro」と入力し、「Submit」ボタンをクリックしてください。

プロフィールページが表示されます:

Screenshot 2023-12-29 at 1.57.07.png

以下に2つの問題が発生する可能性があります:

  • ページを更新すると、ログインフォームに戻されます。そして再度ページを更新すると、プロフィールページに戻ります。
  • 「Logout」というリンクをクリックしても機能しません。
    この問題の原因は非常に単純です。Elastic Load Balancerが存在するため、2つのインスタンス間を切り替えています。1つはログインしている場合、もう1つはログインしていない場合です。

この問題を解決するためには、Sticky Sessionを作成すれば十分です。

ターゲットグループ」をクリックしてください。

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f333632303136312f64633832386536642d373535622d396139362d346638322d3231323637333330366136382e706e67.png

ターゲットグループを選択してください:

Screenshot 2023-12-29 at 2.08.02.png

アクション」をクリックしてください。

Screenshot 2023-12-29 at 2.14.00.png

ターゲットグループ属性を編集」を選択してください。

Screenshot 2023-12-29 at 2.17.47.png

ターゲットグループ属性を編集画面にターゲット選択設定のブロックを探してください。

Screenshot 2023-12-29 at 2.22.55.png

維持設定をオンにする」を選択してください。

Screenshot 2023-12-29 at 2.25.22.png

クッキーの保存期間を設定できます。

Screenshot 2023-12-29 at 2.30.50.png

変更内容の保存」をクリックしてください。

Screenshot 2023-12-29 at 2.31.11.png

ウェブページに戻ってください。
問題がありません。

動画

必要なら、Youtubeで動画を作成しました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?