chevron_left

メインカテゴリーを選択しなおす

cancel
Yosh
フォロー
住所
未設定
出身
未設定
ブログ村参加

2021/06/10

arrow_drop_down
  • 【Tomcat】スレッド数の上限を設定してチューニングする方法

    Tomcatとは Javaプログラムの一種であるサーブレットを動作させるためのWebコンテナと呼ばれるソフトウェアとなります。Apacheと連携して導入されるOSSのデファクトスタンダートなソフトウェアとなりますので、基本的を理解しておきましょう。ほかにもJBossや富士通社のInterstage Application Server等の製品がありますが、考え方としては似ているところが多いので、まずはtomcatの動きを抑えておくことを推奨します。 Tomcatの並列処理の仕組み Tomcatはリクエストを受け付けるとキューに格納します。キューに格納されたリクエストはacceptスレッドによってworkerスレッドに渡され、ひとつのworkerスレッドがクライアントとの通信を行います。 1. クライアントがリクエストを投げると、まずはWeb Server (Apache)にて受付を行う 2. mod_jkなどのApacheコネクタがtomcatに対してリクエストを投げる 3. Acceptスレッドがキューからリクエストを取り出し、Acceptorキューに格納 4. Thread Poolにあるworkerスレッドがリクエストと結びつく 5. workerスレッドがクライアントとの通信を行う Tomcatのチューニングパラメータ Tomcatにおいては、受信リクエストごとにworkerスレッドを必要とします。現時点で利用可能なworkerスレッドで処理できる数よりも多くのリクエストを受信した場合、maxThreadsで設定された最大値まで追加のworkerスレッドが作成されます。さらに同時リクエストを受信すると、Tomcatは現在の接続数がmaxConnectionsに達するまで新しい接続を受け付けます。上限を超えたリクエストは、workerスレッドが利用可能になるまでAcceptorキューに入れられます。リクエスト数がmaxConnections に達すると、OSはあふれたリクエストをOSレイヤのキューに入れます。OSが提供する接続キューのサイズはacceptCountで制御することが可能です。OSレイヤのキューがいっぱいになると、それ以上の接続要求は拒否されるか、タイムアウトになります。 上述のパラメータの内容をまとめておきます。性能試験の結果を踏まえて適切な値にチューニングすることを推奨いたします。 参考資料

  • 【技術ブログの書き方】読まれるブログにするための方法3選

    イントロ&サマリ 技術関連のノウハウをアウトプットするのに適した方法はブログに記載することだと考えております。自分自身のノウハウ蓄積のためにブログを記載している人も多いかと思いますが、できれば多くの人から見てもらってフィードバックをもらいたいですよね。そんなみなさんに向けて、読まれるブログにするための方法をまとめてみましたので、ぜひ参照してみて下さい! 方法1:読者からの需要があるテーマを選定する 方法2:検索されるワードをタイトルに含める 方法3:記事を書く前に構成を練る 方法1:読者からの需要があるテーマを選定する 個人的には本業で得られたノウハウをブログでアウトプットすることで、本業×副業のシナジーを生み出すことが望ましいと考えています。万が一、ブログで収益が立たなかったとしても、仕事に関連したアウトプットを続けることで自身のスキルアップにつながりますので、ブログ執筆のモチベーションを継続できるからです。 ただし、あまりにも仕事に直結したニッチな内容を投稿しすぎると、誰も読んでくれない状態になってしまいますので、なるべく多くのエンジニアが知りたがるであろうトピックを優先して執筆するようにしましょう。特に自身が遭遇した問題および対処に関する内容が記載されているとより良いと思います。 私はインフラエンジニアなので、OSSや業界のデファクトスタンダードとなっている技術について記載するように心がけています。可能な限り日本だけでなく、グローバルで需要のあるテーマを選ぶようにしております。 方法2:検索されるワードをタイトルに含める 読まれる記事を記載するためにはタイトルが非常に重要です。検索されるであろうワードを3種類程度含めておくことで、google検索でヒットしやすくなると言われています。下記のようなツールを使うことでより検索されやすいワードを選ぶことができすので、ぜひ使ってみて下さい。 https://support.google.com/google-ads/answer/7337243?hl=ja https://related-keywords.com/ 方法3:記事を書く前に構成を練る いきなり文書を記載する方もいらっしゃるかと思いますが、事前に記事の構成を練ったほうが良いでしょう。私は下記のような構成にすることを心がけています。 自分でフォーマットを決めて毎回同じフォーマットで記載することで、記事のク

  • [VMware] Notes on Redundancy in vSAN Configuration

    Introduction Software Defined Storage (SDS) is becoming popular and I feel it is becoming more stable and operational. In my project, we have been operating a system applying vSAN architecture provided by VMware. However, there may be service-impacting events caused by problems unique to vSAN, so it is important to be prepared to solve problems […]

  • 【Apache】並列処理の仕組みとチューニング方法をまとめてみた。

    Apacheとは OSSのデファクトスタンダートとなっているWebサーバのミドルウェアとなります。最近だとnginxやlighttpd等の別のミドルウェアが使われるようになってきてはいますが、まだまだApacheを使っているシステムが大多数だと思っております。インフラエンジニアとしては抑えておくことは必須です。 Apacheの並行処理の仕組み ApacheにはMPM(Multi Processing Module)と呼ばれるモジュールがあり、本モジュールを使うことで並行処理を実現することができます。MPMには大きくpreforkと呼ばれるモデルとworkerと呼ばれるモデルがありますので、それぞれ説明していきます。 prefork Apacheの親プロセスから派生する子プロセスを事前に複数生成しておき、クライアントからの接続に備えるマルチプロセスモデルとなります。本方式は、プロセス間でメモリを直接共有することがないので、プログラミングの内容がシンプルになります。 worker 子プロセスの中にさらにスレッド(※1)に分割する方式となります。preforkと比較するとメモリ等のリソース使用率を抑えることができるので、大規模システムにおいてはworkerを用いることが多いです。ただし、メモリ空間を複数のスレッドで共有するので、リソース競合が発生しないようにマルチスレッドプログラミングを実装する必要がありますのでご留意ください。 (※1)スレッドとは OSがひとつのプロセスを並列処理するために、プロセスをさらに分割した処理単位のことです。 Apacheのチューニングパラメータ Apahceにおいては、同時に並列処理をすることができるプロセス数あるいはスレッド数の上限が重要なパラメータとなってきます。http.confにて設定するパラメータになりますので、それぞれ抑えるようにしましょう。 もうひとつ気にすべきはKeepAliveの設定となります。KeepAliveとは、機器間の接続が有効であることを確認するために定期的に行われる通信となります。KeepAliveの応答があるうちは接続を保持することで、接続を確立するために必要なリソースを消費せずに済むという利点があります。 KeepAliveの設定として下記のようなパラメータがありますので、こちらも適切な値にチューニングすることを意識して下さい。 参考資料 より詳細を知り

  • 【富士通ETERNUSのコピー機能】用途や注意点を整理してみた。

    富士通ETERNUSのコピー機能 富士通社が提供しているストレージETERNUSのコピー機能は、ETERNUS SF AdvancedCopy Managerという製品によって動作します。サーバのCPUを使わず、ストレージのCPUを使うことでコピーを行うことができるため、オンラインサービス提供中にも実施できる便利な機能となっています。コピー機能には下表の通りいくつか種類があって、何を使えばよいのか悩まないために、それぞれの機能および適切な用途を理解しておきましょう。 OPC(One Point Copy) OPCは処理を実行したタイミングですべてのデータがコピーされます。一度だけのコピーであればOPCで問題ないですが、差分データのみのコピーができないので2回目以降のコピー処理に時間がかかります。 OPC処理を実行する際のコマンドは下記となります。 /opt/FJSVswsrp/bin/swsrpmake “コピー元ボリューム名” “コピー先ボリューム名” ・同一ストレージ内のボリュームにのみ処理を実行可能です。別ストレージへの処理は実施できません。 QuickOPC QuickOPCは初回実行時はOPCと同様にデータ全量がコピーされる処理となりますが、2回目以降は差分データのみをコピーする処理となります。OPCに比べると処理時間が短くなるので、日にちを置いて何度もコピーをする必要があるデータであれば、こちらのQuickOPCを使うのが良いかと思います。 QuickOPC処理を実行する際のコマンドは下記となります。 /opt/FJSVswsrp/bin/swsrpmake -T “コピー元ボリューム名” “コピー先ボリューム名” ※-Tオプションをつけることで差分コピー(QuickOPC)の処理が実行されます。 ・同一ストレージ内のボリュームにのみ処理を実行可能です。別ストレージへの処理は実施できません。 ・コピー元ボリュームと同じサイズのボリュームに対して処理を実行する必要があります。 ・コピー完了後に発生した更新をストレージが記憶しているため、上記のような差分バックアップが実現できます。このストレージが更新箇所を記録している状態を「トラッキング状態」と呼んでいます。 SnapOPC/SnapOPC+ SnapOPCおよびSnapOPC+では、コピー元データが更新される前の状態をスナップとして保存することができる

  • Habits for Engineers !! Tips for living a happy life

    Introduction I made a list of life habits that I value as an engineer. I hope that there is at least one habit that will be useful to everyone, so I would appreciate it if you could take a quick look. Life Habits Try to say out loud that you are happy. By saying that, […]

  • Akamai KONA Site Defender

    KONA Site Defender(KSD)とは CDNの機能に加えて、下記のWeb Securityに関する機能を提供するサービスとなります。 1. CDN機能 Akamaiが提供するEdgeサーバのキャッシュ機能を用いて、コンテンツ配信によるシステム負荷軽減を行います。CDN機能については下記のサイトで紹介していますので、ぜひご参照ください。 https://eeengineer.com/akamai%e3%81%ab%e3%82%88%e3%82%8b%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e3%83%87%e3%83%aa%e3%83%90%e3%83%aa%e3%83%bc%e3%83%8d%e3%83%83%e3%83%88%e3%83%af%e3%83%bc%e3%82%af%ef%bc%88cdn%ef%bc%89/ 2.WAF/DDos防御機能 Edgeサーバにて攻撃を検知し、システムに対して攻撃パケットが送られないよう防御します。本記事ではこちらのセキュリティ機能について詳細を説明します。 Akamai社の商品紹介ページについても記載しておきます。 https://www.akamai.com/site/en/documents/product-brief/akamai-kona-site-defender-product-brief.pdf DDoS対策(Edgeサーバによるブロック) 必ずAkamai Edgeサーバを経由したアクセスになるため、オリジンサーバに対して直接攻撃されることはありません。仮にAkamai Edgeサーバがダウンしたとしても、別のEdgeサーバでサービスを継続することができます。 DDoS対策(トラフィック制御) 悪意のあるアクセスを検出し、自動で遮断する機能(トラフィック制御)機能を有しています。個々のIPアドレスからのリクエストの流量を監視しており、過剰なリクエストを検知したり、大量のエラーが発生している場合は、自動でアクセスを遮断することができます。 接続元拒否リスト機能 特定の接続元IPアドレス、接続元の国などを拒否リスト(ブラックリスト)登録するすることで、Akamai Edgeサーバにアクセスできるユーザを制限することができます。 おわりに 最後まで読んでいただき、ありがとうございました。ほかにも皆

  • 【AkamaiのCDN機能】SSL接続および証明書配置について

    Akamai導入後のSSL接続 Akamai導入後のSSL接続のイメージを下図に記載します。ユーザとAkamai Edgeサーバ間はAkamaiが作成したサーバ証明書でSSL通信を実現します。一方でAkamai Edgeサーバとオリジンサーバ間のSSL通信向けには、自分たちでSSL証明書を購入してサーバ証明書を導入する必要がありますので、購入漏れ、作業漏れがないように注意しましょう。 Akamai Edgeサーバの証明書更新 オリジンサーバにて発行した証明書の有効期限が切れた場合は、オリジンサーバの証明書だけではなく、Akamai Edgeサーバに導入している証明書も更新する必要があります。具体的な手順は下記のAkamaiが提供している手順に沿って設定してもらえればと思います。 https://community.akamai.com/customers/s/article/rxdxn4?language=en_US おわりに 最後まで読んでいただき、ありがとうございました。AkamaiのCDN機能についてもまとめているので、ぜひ目を通してもらえると嬉しいです。 https://eeengineer.com/%e3%80%90akamai%e3%81%aecdn%e6%a9%9f%e8%83%bd%e3%80%91akamai%e5%b0%8e%e5%85%a5%e3%81%a7%e4%bd%95%e3%81%8c%e5%a4%89%e3%82%8f%e3%82%8b%e3%81%ae%e3%81%8b%e6%95%b4%e7%90%86%e3%81%97%e3%81%a6%e3%81%bf/

  • Akamai導入後のSSL接続および証明書配置について

    Akamai導入 Akamai導入後のコンテンツ配信の流れは下記の記事で説明していますので、興味があれば参照ください。 https://eeengineer.com/akamai%e3%81%ab%e3%82%88%e3%82%8b%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e3%83%87%e3%83%aa%e3%83%90%e3%83%aa%e3%83%bc%e3%83%8d%e3%83%83%e3%83%88%e3%83%af%e3%83%bc%e3%82%af%ef%bc%88cdn%ef%bc%89/ Akamai導入後のSSL接続 Akamai導入後のSSL接続のイメージを下図に記載します。ユーザとAkamai Edgeサーバ間はAkamaiが作成したサーバ証明書でSSL通信を実現します。一方でAkamai Edgeサーバとオリジンサーバ間のSSL通信向けには、自分たちでSSL証明書を購入してサーバ証明書を導入する必要がありますので、購入漏れ、作業漏れがないように注意しましょう。 Akamai Edgeサーバの証明書更新 オリジンサーバにて発行した証明書の有効期限が切れた場合は、オリジンサーバの証明書だけではなく、Akamai Edgeサーバに導入している証明書も更新する必要があります。具体的な手順は下記のAkamaiが提供している手順に沿って設定してもらえればと思います。 https://community.akamai.com/customers/s/article/rxdxn4?language=en_US おわりに 最後まで読んでいただき、ありがとうございました。ほかにも皆さんのためになると思うコンテンツを配信していますので、ぜひ目を通してもらえると嬉しいです。 https://eeengineer.com/

  • 【AkamaiのCDN機能】Akamaiを導入することで変わることを整理してみた。

    Akamaiとは 世界最大手のコンテンツデリバリネットワーク(CDN)事業者であるAkamai technologies, inc.が適用するサービスです。Akamaiが提供するEdgeサーバのキャッシュ機能を用いて、コンテンツ配信によるシステム負荷軽減を行うのが主な機能です。 あまり表に出てこないサービスではありますが、Akamaiを利用している企業は非常に多く、Akamaiで障害(※)が発生すると甚大な影響を及ぼす可能性がありますので、機能を理解しておくことは重要です。 ※2021年に発生したAkamai障害が記憶に新しいです。私が担当しているシステムも被害を受けました。 https://xtech.nikkei.com/atcl/nxt/news/18/10626/ Akamai導入後のコンテンツ配信の流れ Akamaiを導入することで、Akamai Edgeサーバにてキャッシュされたコンテンツがユーザに配信されるようになるため、オリジンサーバの負荷を軽減することができます。 ①ユーザがサービスを利用するためにURLにアクセスした際、ローカルDNSサーバに対して名前解決要求を投げる。 ②ローカルDNSサーバはシステムが提供しているDNSサーバに対して名前解決要求を投げる。 ③DNSサーバはAkamaiアクセス向けのCNAMEを返却する。 ※事前にAkamaiアクセス向けのCNAMEをDNSサーバに登録しておく必要がある。 ④ローカルDNSサーバはAkamai DNSサーバに対して名前解決要求を投げる。 ⑤Akamai DNSサーバはローカルDNSサーバに最適なAkamai EdgeサーバのIPアドレスを返却する。(ダイナミックマッピング機能) ⑥ローカルDNSサーバはAkamai EdgeサーバのIPアドレスをユーザに返却する。 ⑦ユーザがAkamai Edgeサーバにリクエストを送信する。 ⑧Akamai Edgeサーバがコンテンツのキャッシュを保持している場合、ユーザにコンテンツを配信する。 Akamai導入後のオリジンサーバアクセスの流れ Akamaiを導入することで、エンドユーザがWebサーバなどのオリジンサーバに直接アクセスするのではなく、Akamai Edgeサーバにアクセスする流れに変わります。下図に一般的なAkamaiアクセスの流れを記載します。 ①ユーザがサービスを利用するためにURLにア

  • 【AkamaiのCDN機能】Akamai導入で何が変わるのか整理してみた。

    Akamaiとは 世界最大手のコンテンツデリネットワーク(CDN)事業者であるAkamai technologies, inc.が適用するサービスです。Akamaiが提供するEdgeサーバのキャッシュ機能を用いて、コンテンツ配信によるシステム負荷軽減を行うのが主な機能です。 あまり表に出てこないサービスではありますが、Akamaiを利用している企業は非常に多く、Akamaiで障害(※)が発生すると甚大な影響を及ぼす可能性がありますので、機能を理解しておくことは重要です。 ※2021年に発生したAkamai障害が記憶に新しいです。私が担当しているシステムも被害を受けました。 https://xtech.nikkei.com/atcl/nxt/news/18/10626/ Akamai導入後のコンテンツ配信の流れ Akamaiを導入することで、Akamai Edgeサーバにてキャッシュされたコンテンツがユーザに配信されるようになるため、オリジンサーバの負荷を軽減することができる。 ①ユーザがサービスを利用するためにURLにアクセスした際、ローカルDNSサーバに対して名前解決要求を投げる。 ②ローカルDNSサーバはシステムが提供しているDNSサーバに対して名前解決要求を投げる。 ③DNSサーバはAkamaiアクセス向けのCNAMEを返却する。 ※事前にAkamaiアクセス向けのCNAMEをDNSサーバに登録しておく必要がある。 ④ローカルDNSサーバはAkamai DNSサーバに対して名前解決要求を投げる。 ⑤Akamai DNSサーバはローカルDNSサーバに最適なAkamai EdgeサーバのIPアドレスを返却する。(ダイナミックマッピング機能) ⑥ローカルDNSサーバはAkamai EdgeサーバのIPアドレスをユーザに返却する。 ⑦ユーザがAkamai Edgeサーバにリクエストを送信する。 ⑧Akamai Edgeサーバがコンテンツのキャッシュを保持している場合、ユーザにコンテンツを配信する。 Akamai導入後のオリジンサーバアクセスの流れ Akamaiを導入することで、エンドユーザがWebサーバなどのオリジンサーバに直接アクセスするのではなく、Akamai Edgeサーバにアクセスする流れに変わります。下図に一般的なAkamaiアクセスの流れを記載します。 ①ユーザがサービスを利用するためにURLにアクセス

  • Akamaiによるコンテンツデリバリーネットワーク(CDN)機能

    Akamaiとは 世界最大手のコンテンツデリネットワーク(CDN)事業者であるAkamai technologies, inc.が適用するサービスです。Akamaiが提供するEdgeサーバのキャッシュ機能を用いて、コンテンツ配信によるシステム負荷軽減を行うのが主な機能です。 Akamai導入後のオリジンサーバアクセスの流れ Akamaiを導入することで、エンドユーザがWebサーバなどのオリジンサーバに直接アクセスするのではなく、Akamai Edgeサーバにアクセスする流れに変わります。下図に一般的なAkamaiアクセスの流れを記載します。 ①ユーザがサービスを利用するためにURLにアクセスした際、ローカルDNSサーバに対して名前解決要求を投げる。 ②ローカルDNSサーバはシステムが提供しているDNSサーバに対して名前解決要求を投げる。 ③DNSサーバはAkamaiアクセス向けのCNAMEを返却する。 ※事前にAkamaiアクセス向けのCNAMEをDNSサーバに登録しておく必要がある。 ④ローカルDNSサーバはAkamai DNSサーバに対して名前解決要求を投げる。 ⑤Akamai DNSサーバはローカルDNSサーバに最適なAkamai EdgeサーバのIPアドレスを返却する。 ⑥ローカルDNSサーバはAkamai EdgeサーバのIPアドレスをユーザに返却する。 ⑦ユーザがAkamai Edgeサーバにリクエストを送信する。 ⑧Akamai Edgeサーバはオリジンサーバ(システムが提供しているWebサーバ等)の名前解決要求を投げる。 ⑨DNSサーバがオリジンサーバのIPアドレスを返却する。 ⑩Akamai Edgeサーバがオリジンサーバに対してリクエストを送信する。 ⑪オリジンサーバがAkamai Edgeサーバに対してレスポンス(コンテンツ)を返却する。 ⑫Akamai Edgeサーバはユーザにコンテンツを配信する。

  • FIDO認証とは

    FIDO認証とは FIDOとはFast IDentity Onlineの略で、生体認証などを利用したパスワードを利用しないオンライン認証方式となります。従来のパスワード認証だと機密情報をサーバに送信しなければならなかったために情報漏洩する可能性がありましたが、機密情報をサーバと共有しない方法を採用することによって、パスワード認証と比較してよりセキュアな認証方式を実現しています。 金融業界だとみずほ銀行、三菱UFG銀行、ゆうちょ銀行、Aflac等の大手金融機関で導入されています。 FIDO認証の仕組み FIDO製品によって多少の差分はありますが、一般的なFIDO登録およびFIDO認証の仕組みを記載します。 FIDO登録 スマホ等のFIDOクライアントを経由してFIDOサーバに対して登録要求をします。その際、ユーザを識別するために主に指紋や光彩などの生体情報を登録します。この生体情報から秘密鍵と公開鍵のペアを作成する点が特徴となります。秘密鍵についてはFIDOクライアントに保管し、公開鍵はFIDOサーバに送信してFIDOサーバ側で保管する流れとなります。 FIDO認証 FIDOクライアントを経由してユーザから認証要求を行います。その後、生体情報を要求されるので、生体情報の応答を行い認証情報が正しいか検証が行われます。検証結果が正しかった場合は、その認証結果を秘密鍵で署名してFIDOサーバに送付します。送付した認証結果を公開鍵で検証して、問題なければ認証が成功するという流れになります。

arrow_drop_down

ブログリーダー」を活用して、Yoshさんをフォローしませんか?

ハンドル名
Yoshさん
ブログタイトル
Tech Blog by IT Infrastructure Engineer
フォロー
Tech Blog by IT Infrastructure Engineer

にほんブログ村 カテゴリー一覧

商用