プラットフォームの上でものを作るということ Amazon EKS Advent Calendar 2019 の最終日です. みなさまご存知の通り、AWS には Amazon ECS と Amazon EKS という2つのコンテナオーケストレーションに関するサービスがあります. ECS は2014年に発表された AWS ネイティブなコンテナオーケストレータ、EKS は OSS のコンテナオーケストレータである Kubernetes をマネージドな形で提供するサービスで、2017年に発表されました. 今日はこの Amazon ECS と Amazon EKS という2つのサービスについての話を書こうと思います. // 読んでくださっているみなさまをミスリードしないための DISCLAIMER 本記事の著者は AWS に勤めています. また、この記事には僕個人の意見や想いも強くこもっています.
前にも似たようなこと書いたなと思ったけどもう一年半も前のことになるのか t-cyrill.hatenablog.jp ご存知の通り昨日 2021/02/19 23:20頃 AWSにて東京リージョンの一つ apne-az1 にて大規模な障害が発生。多くのAWSを利用していたサービスで影響があった。 そんな私はいつものように アラストリリィ アサルトリリィ ラストバレット というゲームを呑気にプレイしていたのだけど、23:25 から緊急メンテに入ってしまった。 どうしたんだろうと思っていたら、社内SlackにてAWSを利用しているサービスがたまに応答しなくなる、Elasticacheが切り替わったなどなどの報告が入り、もしかすると面倒ごとかなと思いながら対応することになった。 起きていたこと 既にAWSからも公開されていることであるが、今回は2019年8月に起きた障害と類似するタイプの障害だっ
発生原因 ap-northeast-1a(ID:apne1-az4) に設置されたELBのノードが、5XXのエラー応答を戻していました。 暫定対処 ELB(ALB) で利用していたAWS WAFの保護設定を一時的に解除、ELB_5XXエラーが抑制された事を確認しました。 対応経緯 14:20 チャットの通知より、DevloppersIOのブログ基盤から HTTP 5XX の発生している事を確認 14:30 ElasticBeanstalkのダッシュボードの「WARN」イベントより、HTTP 5xx の発生状況を確認 CloudWatchの ALB ダッシュボードより、HTTP 5XX の発生状況を確認 ALBのCloudWatchメトリックより、ELBに起因する「ELB_5XX」エラーである事と、 AZ別のメトリックより ap-northeast-1a(ID:apne1-az4)、アベイア
2020/2/18追記 サポートに問い合わせたところ、ALBの不具合はロールバック済みで、cookie名を縮める対応は不要、とのことでした。試してみたところ、たしかにcookie名の指定をやめても問題なく認証できました。 AWSのApplication Load Balancerの認証機能を使って、スタッフからのアクセスのみ許可する社内向けウェブサービスを運用しているのだけど、昨日くらいからGoogle Chromeで認証が通らなないという声を聞くようになった。 現象としてはリダイレクトループが発生していて、コンソールを見るとSet-Cookie headerが長すぎるというエラーが出ていた。 Set-Cookie header is ignored in response from url: https://****/oauth2/idpresponse?code=e51b4cf0-8b
AWSエンジニアは朝5時に起きるらしいと聞いていましたが、まさか自分がそっち側に回るとは思ってもいなかったもこ@札幌オフィスです。 とうとうきてしまいました! とうとう、ALB一つだけでターゲットグループの重み付けが出来るようになってしまいました!!!! Application Load Balancer simplifies deployments with support for weighted target groups New – Application Load Balancer Simplifies Deployment with Weighted Target Groups 従来までのBlue/Green(カナリアリリース) デプロイ方法 重み付けをしてトラフィックの数パーセントを新しい環境に流すような場合は、複数のロードバランサーを用意した環境で、Route53にて重み付
AWS News Blog New – Application Load Balancer Support for End-to-End HTTP/2 and gRPC Thanks to its efficiency and support for numerous programming languages, gRPC is a popular choice for microservice integrations and client-server communications. gRPC is a high performance remote procedure call (RPC) framework using HTTP/2 for transport and Protocol Buffers to describe the interface. To make it ea
こんにちはSREの黒田です。 これは第2回 Nature Engineering Blog 祭9日目のエントリです。 昨日はCorporate ITのマロニーによる GASを使って社内のSaaSアカウントを可視化しよう - Nature Engineering Blog でした。 昨日に続いて今日のお話も、話題の新製品Remo nanoやMatterとは関係ありません。 TL;DR WebSocketで大量に永続接続されているALBのSSL証明書を更新すると、接続がばっこんばっこん切られて大変なので、ALBを二台用意して緩やかに接続を移行するようにしたら、大変平和になって僕もみんなもハッピーになった。 背景 そもそもNatureではどこに何のためにWebSocketを使ってるの?って話から始めると長いので、詳しくはこちらを見ていただければと思います (結構前の資料なので今とは違う部分も色々
本記事は AWS LambdaとServerless Advent Calendar 2021 の4日目です。 たまたま空きがあることに気付いたため、せっかくでしたらと急遽参加させていただきます! よろしくお願いいたします 🙇 こんにちは。Togetter を運営しているトゥギャッター株式会社でエンジニアをしている @MintoAoyama です。 Togetter はツイートを始めとした様々な情報を組み合わせてコンテンツを作り出すキュレーションサービスです。 2009年に誕生してから今年で13年目に突入し、現在も月間PV約1億、月間UU約1500万という規模感で成長を続けています。 そんなトゥギャッター社もコロナ禍に入り、全従業員がフルリモートワーク体制に移行しました。 もっとも、以前からリモートワークは実施されていました。オフィスは東京ですが地方からフルリモートで出勤されているメンバ
困っていた内容 自社サービスの特定の URL に対して、数日間で数百の IP アドレスから大量の不正アクセスを受けています。 攻撃元 IP アドレスを自動的にブラックリストに追加させる方法がありましたら教えてください。 どう対応すればいいの? AWS WAF の レートベースのルール を設定してください。 より細かい制御を行いたい場合は、AWS WAF セキュリティオートメーションの導入をご検討ください。 AWS WAF のレートベースルールとは AWS WAF のレートベースのルールを設定すると、AWS WAF が発信元 IP アドレスのリクエスト数をカウントし、設定したしきい値を超えるリクエスト数が確認された際に対象の IP を自動でブロックできます。 現在は 5 分間あたり 100 リクエスト を最小しきい値として指定可能です。 以下にて作成手順を紹介します。 Web ACL とレー
プロダクト基盤本部の藤原です。 本エントリではWAF(Web Application Firewall)を活用していく上で、最初に導入をお勧めするファイアウォールルールを解説します。 WAFとは WAF(Web Application Firewall)とはWebアプリケーションに特化したファイアウォールです。 HTTPリクエストのヘッダやボディの内容から不審なリクエストを判別し、アクセスをブロックすることを目的としています(図1)。 図1 WAFの役割 WAFの活用を通じて実現したいこと WAFの活用を通じて実現したいことはなんでしょうか。 悪意のあるリクエストや不審なリクエストからアプリケーションを保護することでしょう。 不審なリクエストとしては、宛先が合っていないリクエスト(HTTPのホストヘッダを誤っている)1や、スクリプトキディ的なものから攻撃対象を精緻に分析したものまでさまざま
はじめに こんにちは、Techouse の人材プラットフォーム事業部でサーバーサイドエンジニアを担当している imayayoh と申します。 Techouse では各事業部でエンジニアがインフラの監視として、AWS・外部サービス等のグラフモニタリングを実施しています。モニタリングでは下記に重点を置いており、インフラ構成の見直しや障害対応の場として活用しています。 サービス運用に十分なスペックでインフラが構成されているか 最適なコストでサービスが運用されているか インフラ・外部サービスで重大な問題が発生していないか 本日はモニタリングの実施で即時対応できたトラブルの一例として、Application Load Balancer (ALB) への謎の大量アクセス攻撃を紹介します。 コストモニタリング 弊社のサービスではインフラに AWS を使用しており、モニタリングでは AWS Billing
こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 さいたまスーパーアリーナは、埼玉県さいたま市中央区にある多目的アリーナ。本文には特に関係ありません。 最近、Terraformを書くことが多く、知見が貯まりつつあった時にちょうどディレクトリ構成に関する記事を読んでタイミングがよかったので、 今回はTerraformのディレクトリ構造の実例を晒したいと思います。 結構固まってきたからうちのチームの構成も晒してみようかな。 | Terraformのディレクトリ構成の模索 - Adwaysエンジニアブログ https://t.co/31FMkcCJOo— Yuichiro Fukubayashi (@fukubaya) July 3, 2020 クラウド化推進 なぜ定番が決まらないのか 前提となる条件 本番環境と検証環境はほぼ同じ構成 レポジトリとtfstat
おしらせ 2021/06/27 の Drecom SRE Sunday にて、 この記事にかかれている EKS 移行に関する情報共有を行います、ぜひご参加ください! Drecom SRE Sunday (connpass) はじめに こんにちは! enza SREチームのmendと申します! 先日の安藤さんの記事「古き良きRailsアプリケーションをコンテナ化してKubernetes上で動かす」にもある通り、運用しているプロダクトをAmazon EC2からAmazon EKSに移行しました。 プロダクトをダウンタイムなしにEC2からEKSに移行しましたので、今回はダウンタイムなしを実現したインフラ側の構成について紹介させて頂きたいと思います。 背景 まず背景としましては、私の関わっているプロダクトはこれまでEC2で動作しておりました。 EC2上でdockerコンテナを起動しているのではなく
まずは、リフト&シフトのリフトだ。オンプレ環境の構成を変えずにAWSでリプレイスするぜ。 静的コンテンツの処理はWebサーバーに任せてアプリケーションサーバーの負担を減らす構成だな。 次はシフトだ。だが大きくは変えない。静的コンテンツを外だしするところから始めよう。 あれ?Webサーバー(Nginx)っているんだっけ??ALBではログも取れるし最近はでできることも多いよね? [新機能] HTTPヘッダーやクエリ文字列などなどでルーティングができちゃう!!AWS ALBで高度なリクエストルーティングが可能になりました! 待てよ待てよ。将来的にはSPAで実装する方法も検討しているんだった。その場合はいらないでいいよね? ということを社内チャットで呟きました。いくつか意見が出てきたのでこのブログにまとめます。 先に結論 コンテンツ(html)をAppサーバーで作成する場合、あったほうが良さそう
この記事ははてなエンジニア Advent Calendar 2022の27日目のエントリです。 問題 社内で運用している Fargate サービス (Perl の plack アプリケーションが動いている) において、以下のような問題が発生していました。 リクエストごとの処理の重さ (計算リソースの使用量や所要時間) に違いがあり、特定の task に重いリクエストの割り振りが偏ることがある Fargate task は表向きのコア数は同じでも、割り当たるハードウェアの世代によって処理能力が異なるケースがある (いわゆるインスタンスガチャ) このような偏りのある状態でアクセス増など全体の負荷が増加し、一部 task のワーカプロセスが全て busy な状態が一定時間続くと ALB のヘルスチェックに落ちて殺される 各リクエストを1つのプロセスが処理する、いわゆる prefork アーキテク
こんにちは、計測プラットフォーム本部バックエンド部の髙木(@TAKAyuki_atkwsk)です。普段はZOZOMATやZOZOGLASSなどの計測技術に関する開発・運用に携わっています。ちなみにZOZOGLASSを使って肌の色を計測したところ、私のパーソナルカラーはブルーベース・冬と診断されました。 さて、本記事ではZOZOMATシステムで利用されていたNetwork Load BalancerをApplication Load Balancerに移行した事例をご紹介します。 ZOZOMATのシステム構成(2020年当時)に関しては、こちらの記事で詳しく説明されていますので合わせてご覧ください。 techblog.zozo.com 移行の背景 ZOZOTOWNアプリやZOZOTOWNシステムからZOZOMATシステムに対するリクエストの負荷分散のためにNetwork Load Balan
AWS による docker コンテナのオーケストレーションサービスである Amazon ECS / Fargate のヘルスチェックの挙動について調査する機会がありましたのでアウトプットしておきたいと思います。 前提として Fargate で ECS のサービスとして、ロードバランサーは Application Load Balancer(ALB)を利用して実行するケースで調査しました。網羅的ではない点、ご了承ください。 ECS におけるヘルスチェック さて、ECS でサービスを実行する上で、いわゆる「ヘルスチェック」は2種類あります。 Elastic Load Balancer(今回は ALB)に関連付けられる Target Group によるヘルスチェック タスク定義のコンテナに対して実行する docker によるヘルスチェック(参考 : docker ドキュメント, AWS ドキュ
発表資料の中に出てくるURLです。 * [Amazon EKSでのArgoCDを使ったGitOps CD](https://tech.recruit-mp.co.jp/infrastructure/gitops-cd-by-using-argo-cd-at-eks/) * [EnvoyとAmazon ECS Service Discoveryを利用したgRPCの負荷分散](https://tech.recruit-mp.co.jp/infrastructure/post-17098/) * [Amazon EKSでAWS App Meshを利用してgRPCサーバーを運用する](https://tech.recruit-mp.co.jp/infrastructure/post-20765/) * [https://tech.recruit-mp.co.jp/infrastructure/po
困っていた内容 ALB(Application Load Balancer)への急激なアクセス増加により処理が遅延し、一時的にサーバーエラーとなる事象が発生しました。ボトルネックが ALB 側か、もしくはバックエンドサーバー側かを切り分けたいのですが、ALB の性能限界に達していたか確認する方法を教えてください。 どう対応すればいいの? ALB は負荷状況に応じて内部的にスケーリングが行われるため、最大接続数などの情報は非公開となっています。 そのため ALB の性能限界を明確に確認することはできませんが、以下 (1) ~ (3) の指標を確認することで、ALB もしくはバックエンドのどちらがボトルネックになっていたかを推測できます。 (1) 当該時刻に ALB のスケーリングが行われていたかを確認する ALB への接続数が物理ノードの限界に達すると自動的にスケーリングが行われ、その際には
Amazon S3のコンテンツを配信したい場合、S3の静的ウェブサイトホスティングを使用したり、S3の前段にCloudFront(CDN)を配置して配信することが多いかと思います。今回は、3つ目の選択肢として、S3をALBから配信する構成について紹介します。 S3バケットをプライベートにしたまま、ALBレイヤーでHTPS通信化や認証やセキュリティグループのアクセス制限を行うことができます。アプリケーションで利用するALBにS3配信を集約させることも可能です。また、外部・内部どちらのALBでも採用できます。 オンプレミスからプライベート通信によるS3アクセス 認証付きURL/CookieでS3コンテンツを配信する代替案として、ALB認証でS3配信 などで有用です。 構成ポイント 本構成の肝はALBのターゲットにS3のインターフェース型VPCエンドポイントのIPを指定すること(昔からあるゲート
記事を書こうと思ったきっかけ サポートへの問い合わせが EC2 に次いで多いのが "CLB/ALB の障害調査依頼" だから CLB/ALB の障害調査依頼では「アクセスが遅延していた」もしくは「50X エラーが発生していた」ので調査して欲しい旨のお問い合わせをいただくことが多いです。特徴としては、それが CLB/ALB の問題なのか EC2 などバックエンドの問題なのかが切り分けされていない場合が多くみられます。どちらが原因か両方を追う必要があるため確認する項目は多いですが、CLB/ALB 側のいくつかの CloudWatch メトリクスを確認することで CLB/ALB かバックエンドの問題かの切り分けは概ね可能だと思います。 もちろん CLB/ALB はマネージドサービスであるため最終的には AWS への確認が必要になる場合もありますが、自分である程度原因を切り分けてから問い合わせを行
You can now attach multiple target groups to your Amazon ECS services that are running on either Amazon EC2 or AWS Fargate. Target groups are used to route requests to one or more registered targets when using a load balancer. Attaching multiple target groups to your service allows you to simplify infrastructure code, reduce costs and increase manageability of your ECS services. Previously, you co
Containers Introducing the AWS Load Balancer Controller The AWS ALB ingress controller allows you to easily provision an AWS Application Load Balancer (ALB) from a Kubernetes ingress resource. Kubernetes users have been using it in production for years and it’s a great way to expose your Kubernetes services in AWS. We are pleased to announce that the ALB ingress controller is now the AWS Load Bala
クックパッドマートでサーバーサイドなどのソフトウェアエンジニアをしている石川です。 この記事では、クックパッドマートとは全然関係なく、私が正社員として新卒入社する前、2020 年初頭に技術部 SRE グループで就業型インターンをしていた際に実装したシステムについてご紹介します。 ALB のアクセスログ 弊社では AWS の Elastic Load Balancing (ELB) を多用しており、Application Load Balancer (ALB) が多くのウェブアプリケーションで利用されています。 ところで ALB はアクセスログを Amazon S3 に保存することができます。このアクセスログにはアクセス先の IP アドレスやリクエスト URL の他、レスポンスのステータスコード、レスポンスまでにかかった時間、User-Agent などの情報が記録されています。 これらの情報
ちゃだいん(@chazuke4649)です。 Amazon Cognito と Application Load Balancer を使用すると、AWSサービスだけで簡単に認証機能を実装できます。 過去に以下エントリにてこれらの構成は紹介されていました。 今回は、この構成にさらにソーシャルサインインを追加して、Cognitoユーザープールの認証でも ソーシャルサインインとしてのGoogle認証でも選べる状態を目指します。つまり、ALB + Cognito ユーザープール + ソーシャルサインイン(Google) という状態です。下図のような構成となります。 ちなみに、似ているようで違うパターンとして、「ALB + OIDC(Google)」の構成があります。詳細は以下エントリです。 こちらは、Cognito を経由せずに、直接 ALBの組み込み認証機能とOIDCとしてのGoogle認証を連
[アップデート] Application Load Balancer でもリソースマップがサポートされ、関連リソースを可視化して確認出来るようになりました いわさです。 今朝のアップデートで Application Load Balancer がリソースマップをサポートしたというアナウンスがありました。 使ってみたところとても便利だったので紹介します。 リソースマップとは リソースマップは VPC で実装されていた、関連リソースを可視化することが出来るサービスです。 VPC であれば次のように、VPC の中にどういうサブネットがあって、それぞれルートテーブルとどう紐づいていて、などを視覚的に、俯瞰して確認することが出来ました。 このリソースマップが登場する前は VPC でフィルタリングして関連リソースを洗い出して...などが必要だったのですが、全体をサッと把握出来るようになりました。 Ap
Application Load Balancer (ALB), Network Load Balancer (NLB) は ターゲットにローカルIPアドレス を指定できます。 VPCピアリング接続先のインスタンスや、Direct Connect・VPN接続先の オンプレのサーバーをターゲットグループに登録することができます。 今回は実際にオンプレのサーバーをターゲットに登録した ALBリバースプロキシ環境 を構築してみます。 構築した検証環境は以下の通り。 目次 背景 環境構築 検証 おわりに 背景 私が上の検証環境を構築するに至った経緯を説明します。 (スキップして 次章: 環境構築 を見ていただいてOKです) Direct Connect(DX) 先の外部サービスの通信制限で、 接続元VPCの CIDRは指定値 にしないとイケないケースを考えます。 この要件を満たすために、 前々回の
前提と状況の説明 EC2を建てて、RDSに接続できている状態です。(今回RDSはあんま関係ないです) この時点で、IPアドレスで検索すればアプリケーションが表示されていました。 ここで、ALBを設置して、ALB経由でEC2へアクセスするように試みました。 (パスでターゲットグループへ振り分けをしようとしたのですが、ここではあまり関係ないので割愛) すると・・・・ ん? たま〜に、表示されない・・・訳ではないけど、表示されるまでにめちゃくちゃ時間がかかるぞ・・・ 結論:原因は何だったのか ALBを配置する時に指定するサブネットに、private subnetが含まれていたことでした。 ALBを配置する際は2つ以上の異なるアベイラビリティゾーンからサブネットを指定する必要があります。ここで指定するサブネットは基本的にはpublic subnetです!(多分) ここに気付くのにそこそこ時間がかか
ども、大瀧です。 昨年re:Invent 2022での発表後Private PreviewだったVPC Latticeが一般利用可能(GA: General Availability)になり、全てのアカウントで利用できるようになりました。 VPC Latticeとは VPC Lattice(日本語では"格子")はVPC向けのリバースプロキシサービスで、現時点ではHTTPとHTTPSをサポートします。リバースプロキシサービスというとELBがありますが、ELBがインターネット向けの様々な機能を持つのに対してVPC LatticeはVPC向けのシンプルな機能に絞りつつ、異なるVPC向けにELBではVPCエンドポイントやVPCピア接続を追加構成するのに対して、VPC LatticeはVPCをまたぐ仕組みを内包しているのが特徴です。あともう一つ、ELBではHTTPS通信のために必要だったTLS証明書
Networking & Content Delivery Application Load Balancer-type Target Group for Network Load Balancer Application Load Balancer (ALB) is a fully managed layer 7 load balancing service that load balances incoming traffic across multiple targets, such as Amazon EC2 instances. ALB supports advanced request routing features based on parameters like HTTP headers and methods, query string, host and path b
2024年5月、Application Load Balancer (ALB)のアップデートにより、 アクセスログと接続ログのフィールドとして「traceability_id」が追加されました。 アップデート後のALBのアクセスログ、接続ログを調査し、 新しく追加された「traceability_id」が、 アクセスログ、接続ログの突き合わせに利用できる事を確かめる機会がありましたので、紹介させていただきます。 ELB設定 ELBの設定画面 「属性を編集」を利用して、アクセスログ、接続ログをS3に出力する設定としました。 ※ログ出力先のS3バケット、バケットポリシーは事前にELBアクセスログ許可済みのものを利用しました。 ステップ 2: S3 バケットにポリシーをアタッチする ログ確認 アクセスログ、接続ログ、それぞれの最終フィールドに、「TID_」で始まる、 traceability_i
AWSチームのすずきです。 Application Load Balancers (ALB)、 ロードバランサー属性の設定として「Drop Invalid Header Fields」が追加され、 無効なHTTPリクエストヘッダをALBで削除可能になりました。 その動作を確認する機会がありましたので、紹介させていただきます。 AWS Documentation Application Load Balancers: load-balancer-attributes routing.http.drop_invalid_header_fields.enabled Indicates whether HTTP headers with invalid header fields are removed by the load balancer (true) or routed to target
はじめに こんにちは、SRE部の秋田と鈴木です。ZOZOTOWNのオンプレミスとクラウドの運用・保守・構築に携わっています。 現在、ZOZOTOWNはリプレイスプロジェクトの真っ只中です。そのため、いくつもの壁にぶつかりつつも、それらを1つずつ解決してプロジェクトを進めている状況です。 オンプレミス基盤上で動くWebサーバのリプレイスを行う際に、既存構成では十分なテストを行うことができませんでした。本記事では、その課題をAkamai Application Load Balancerを導入することで解決したアプローチを紹介します。これにより、既存のシステム構成を大きく変更することなく、より柔軟にテストやシステムの変更を加えられるようになりました。 はじめに 既存構成 キャッシュストアのリプレイス計画 生じた課題点 課題1:カナリアリリースできない 課題2:既存のiRuleが利用できない A
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く