Apache と Nginx で接続元 IP を取得する方法

こんにちは、インフラエンジニアの綿引です。

Webサーバー側で接続元 IP を取得したかったけどよく見ると ELB やプロキシサーバの IP だった、、
という経験をされた方もいらっしゃるのではないでしょうか。

そこで今回は Apache と Nginx で接続元 IP を取得する方法を記載したいと思います。

対象の方は以下のような方でしょうか。

  • ELB などを使用して運用している
  • 前段にプロキシサーバを配置している

続きを読む

QAチームの自動テスト推進 〜自動テストの運用編〜

こんにちは。
サーバーサイドエンジニア兼QAエンジニアの福山です。

QAチームでは、生産性高く、高品質なサービスを安定して提供するために
テスト自動化基盤の構築を進めてきました。

自動テストのツール選定
自動テストの開発
自動テストの運用
の3本立てで、これまでに、自動テストのツール選定と開発についての記事を書かせていただきました。
QAチームの自動テスト推進 〜自動テストのツール選定編〜
QAチームの自動テスト推進 〜自動テストの開発編〜

自動テストのツール選定の結果、弊社では、Buckyを使うことに決定しました。

本日は、3. 自動テストの運用についてです。
以下の流れで説明します。

① どのように運用しているか
② 運用にのせるにあたり工夫したこと
③ 導入効果
④ 運用でチューニングしたこと
⑤ 認証認可の対応
⑥ 今後の課題

続きを読む

チーム活性化と、GASでGaroonスケジュールをSlack通知

はじめまして!Photoraitのエンジニアをしていますヒエイです。
所属している社長室(新規事業チーム)で私が定刻大臣として行った、GaroonスケジュールのSlack通知機能導入をした話を紹介します。

「定刻大臣」について

チーム活性化と定刻大臣

社長室ではエヴミニ(Everyone Minister〜全員大臣〜)というチーム活性化活動を行なっています。

室長除いた社長室全員が〇〇大臣となり、組織課題や活性化について改善・向上させる活動です。
詳しくはこちらでも紹介されてますので見てみてください!

私は、会議が時間通り始まらない、集まりが悪い、という課題に着眼して定刻大臣となりました。
ミッションは会議の定刻スタートを促進すること。

はじめは会議開始前に口頭で呼びかけをおこなっていましたが、あまり効果を感じられませんでした。

エンジニアとしてチームの活性化に貢献できる事は、エンジニアリングで返す事。
そこで、スケジュール管理をサイボウズGaroonで行なっている事に着眼して、以下施策を行うことにしました。

Garoon通知機能に関して

Garoonのスケジュールを会議が始まる前に通知する機能を作ろうと考えました。

仕様として

  • Garoonスケジュールの◯分前に、slackで通知する
  • 簡単に導入できる(タスクの合間に開発作業ができる)
  • 実行環境を用意したく無い
  • メンバーのGaroonパスは私が管理しない。

などとしてGoogle App Scriptを使った開発を進めました。

続きを読む

チームメンバー全員で実施している回帰テストの紹介

こんにちは。前撮りなど結婚写真の撮影スタジオ・サロンを検索できる情報サイト「Photorait」のエンジニアリングマネージャーをしている武田(@takedajs)です。

サイト運営している上で新規開発や既存機能の改修は必須ですが、リリース後に時間が経って発生する不具合にはみなさん頭を悩ませていると思います。

所属しているPhotoraitチームでは、開発中やリリース後に自動と手動を合わせて数種類の不具合を発見する仕組みを導入しています。また、Photoraitチームは専属のQAがいないので、開発メンバーが手動テストを実施しています。

今回は、既存の不具合を見つけるために実施している手動テストの1つである「回帰テスト」について紹介します。

回帰テストについて

チームでは前から当たり前のように回帰テストと言っていたのですが、改めて、一般的な回帰テストの意味を調べてみました。

回帰テストとは、コンピュータプログラムに手を加えたことによる影響を確認するテスト操作のことである。
プログラムが大規模化で複雑化になってくると、何も関係がないかのように見えるプログラムが相互に関係しあっているのを見落とす場合も少なくない。ある箇所を改善しようとして加えた修正が、思いもよらない部分に影響してバグを呼び起こしてしまう、といった場合も珍しくない。
バグフィックスやリビジョンアップなどが行われた場合、システム全体のチェック作業に立ち返って(回帰して)コード改変の影響が確認される。想定外の異常が発生していないかを調べるためテストに立ち返るテストは、ほとんど必要不可欠な作業であるといえる。

回帰テストの意味や定義 Weblio辞書

なるほど、用語の意味としては理解していたのと同じっぽいですね。
Photoraitチームでは、案件のリリース後に影響範囲を手動テストしていますが、次から紹介する回帰テストでは、リリース後の手動テストで見落としてしまった不具合を発見する役割も担っています。

続きを読む

QAチームの自動テスト推進 〜自動テストの開発編〜

こんにちは。
サーバーサイドエンジニア兼QAエンジニアの福山です。

QAチームでは、生産性高く、高品質なサービスを安定して提供するために
テスト自動化基盤の構築を進めてきました。

  1. 自動テストのツール選定
  2. 自動テストの開発
  3. 自動テストの運用

の3本立てで、前回、自動テストのツール選定についての記事を書かせていただきました。
QAチームの自動テスト推進 〜自動テストのツール選定編〜

自動テストのツール選定の結果、弊社では、Buckyを使うことに決定しました。

本日は、2. 自動テストの開発についてです。
以下の流れで説明します。

① システム構成
② ローカルの環境構築
③ リンクチェックの実装
④ E2Eで重要コンテンツの存在チェックの実装

Buckyの開発は、こちらの記事(自動テストフレームワーク「Bucky」入門)を参考に進めました。

続きを読む

チームメンバー全員でペルソナ設計ワークをしました

こんにちは!前撮りなど結婚写真の撮影スタジオ・サロンを検索できる情報サイト「Photorait」のメインデザイナーをしています、内田(@PANbooooo)です。

Photoraitチームでは、チームメンバー全員でペルソナ設計ワークを行いました。
今回はそのペルソナ設計ワークから学んだ難しかったことや、やって良かったことを紹介したいと思います。

続きを読む

Homebrew Bundle で開発環境の構築をしてみました

こんにちは、エンジニアの久保です。
普段開発で使っているMacの調子が悪くなりました。負荷がかかるとディスプレイが砂嵐になります。つらいです。
使いやすい機種でだいぶ気に入っていたのですが、流石に業務に支障がでてきたので新しいMacに移行しました。

移行のときにやることは、そう、環境構築です。
開発で必要なツールを1つずつインストールしていって、今と同じ環境を構築するのはなかなかの手間がかかります。
毎回困るので、最近は環境を作り込まずほぼデフォルトの状態で使うようにしていたのですが、それでも時間がかかります。

今回は、macOS用のパッケージマネージャ Homebrew の bundle コマンドを使って、ソフトウェアとライブラリのインストールを行ってみました。

続きを読む

EC2 インスタンスの EBS ボリュームを拡張してみる

こんにちは、インフラエンジニアの綿引です。

EC2 運用時に いつのまにかディスク使用率が 100% に、、
という経験がある方もいらっしゃるのでないでしょうか。

そこで今回は EC2 の EBS ボリュームを拡張したので、方法を共有したいと思います。

対象の方は以下のような方でしょうか。

  • EC2 のディスク使用率がそろそろ危ない、、

続きを読む

AWS Organizations を使い AWS アカウントを追加してみる

こんにちは、インフラエンジニアの綿引です。

複数の AWS アカウントを管理する際に AWS Organizations って便利ですよね。

弊社でも使用しているのですが、私自身はあまり使ったことがありませんでした。

そこで今回は 新規 AWS アカウントを AWS Organizations を使って追加 してみたので共有させていただこうと思います。

対象の方は以下のような方でしょうか。

  • AWS Organizations を導入しようか検討している
  • AWS Organizations を使用しているが子アカウントを追加したことがない

続きを読む

QAチームの自動テスト推進 〜自動テストのツール選定編〜

こんにちは。
サーバーサイドエンジニア兼QAエンジニアの福山です。

QAチームでは、生産性高く、高品質なサービスを安定して提供するために
テスト自動化基盤の構築を進めてきました。

チームの意義目標(※1)は、『品質でサービスの信頼残高を爆上げする』として、QAマネージャー、Webディレクター、サーバーサイドエンジニア((※2)SET兼務)のメンバーで日々品質改善に取り組んでいます。
※1 意義目標…最終的に実現したい抽象的な状態や影響を示した目標のこと。
※2 SET…(Software Engineer in Test)

その中で、開発段階での障害検知と重要機能の継続的な品質担保のために、
E2Eの自動テストを運用にのせることができたので、

  1. 自動テストのツール選定
  2. 自動テストの開発
  3. 自動テストの運用

の3本立てでお話したいと思います。

本日は、1. 自動テストのツール選定 についてです。
弊社でどのように自動テストのツール選定をしたのか、
その進め方と、選定したツールはどんなテストにお勧めか
をお話ししたいと思います。

① 自動テストの前提の認識合わせ
② E2E自動テストの要件洗い出し
③ ツールの検証&選定

の流れで決めました。

続きを読む