タグ

ブックマーク / dev.classmethod.jp (110)

  • Web API サーバ負荷試験のすすめ方 – 観点を整理、負荷を試算、対象を選定 | DevelopersIO

    負荷試験対策ミーティング ここでは、チームメンバーを集めて、システム要件の再確認と、バックエンドのアーキテクチャを再確認をまず行います。すなわち、「求められているもの=要件」と、「提供できるもの=アーキテクチャ」の確認です。ここの認識が揃っていないと、的はずれな負荷試験を実施してしまうことになりかねません。立場や役割にかかわらず、サービス全体として考えるべきです。 負荷試験の目的 負荷試験を行うことによって、何を示したいのか決めます。今回は、以下の目的を定めます。 サービスリリース後、想定されるピーク時のリクエストを受けた場合でも、問題なく稼働を続けられることを確認する システムのスループット限界値を確認する 負荷試験の観点 たいていのWebシステムの場合、昼夜を問わず稼働し続けるものとなるでしょう。今回例にとったシステムも24時間365日、リクエストを受け付けるものとします。この場合、観

    Web API サーバ負荷試験のすすめ方 – 観点を整理、負荷を試算、対象を選定 | DevelopersIO
  • [公式チュートリアルではじめる]CircleCI+CodeDeployを使ったCD(継続的デプロイ) | DevelopersIO

    コンニチハ、千葉です。 公式チュートリアルにそって、CircleCIとCodeDeployを使ったCD(継続的デプロイ)をやってみました。 CodeDeploy単体だとS3のファイルをEC2インスタンスへデプロイするのみですが、CircleCIを利用することで、GitHubへのコミットをトリガーに、アプリケーションのリビジョン作成、S3へアップロード、デプロイするところまでを自動化することが可能です。CircleCI、CodeDeployが初めての人でもこれをやってみると雰囲気がつかめると思います。 CodeDeployを復習したい方はCodeDeploy入門が参考になると思います。 AWS環境の構築 継続的インテグレーションの最初のステップとして、CodeDeployの設定をします。具体的には、 EC2インスタンスの作成 CodeDeoloyにてデプロイメントグループ、ロールを設定 EC

    [公式チュートリアルではじめる]CircleCI+CodeDeployを使ったCD(継続的デプロイ) | DevelopersIO
  • RedPen でわかりやすい技術文書を書こう | DevelopersIO

    最近はブログを始めマニュアルや仕様書など技術文書を書く機会が多くなってきました。 技術文書はわかりやすさが重要だと思うのですが実際は書けていません。 どうしたらわかりやすい文書が書けるのだろうか?と調べていたら RedPen というツールを見つけたので早速試してみました。 RedPen とは? RedPen とはプログラマや記者が規約に従って文書を記述するのをサポートしてくれるオープンソースのソフトウェアツールです。 プログラミングが規約に従ってコーディングされているかチェックするように、RedPen は自然言語で記述された入力文書の検査を自動化してくれます。 RedPen の特徴 設定が柔軟に行えます。(カスタマイズも柔軟) どのような言語で書かれた文書でも処理できます。(もちろん日語も OK です) MarkdownTextile フォーマットで記述された文書をそのまま検査でき

    RedPen でわかりやすい技術文書を書こう | DevelopersIO
  • Docker ToolboxでDocker環境を用意しつつ、Kitematic(GUIツール)でコンテナ起動 | DevelopersIO

    コンニチハ、千葉です。 今更感がなくはないですが、Docker Tooloxを使ってMac上にDocker環境を用意する機会がありましたのでメモしておきます。 また、Kitematic(GUIツール)でhello worldしてみました。 Docker Toolboxとは?? このDocker ToolboxをインストールすることでDockerを利用するための複数のコンポーネントが一発でインストールできます。 簡単に言うと、boot2dockerの進化版ですね。 インストールされるコンポーネント 以下のコンポーネントがインストールされます。 Docker Machine: 様々な環境にDockerエンジンのインスタンスを構築。例えばコマンド一発でEC2上にDockerエンジンが動くEC2インスタンスをプロビジョニングする。コマンド「docker-machine」 Dockerエンジン: コ

    Docker ToolboxでDocker環境を用意しつつ、Kitematic(GUIツール)でコンテナ起動 | DevelopersIO
  • Swift WebフレームワークKituraをDocker on Amazon EC2で動かしてみた | DevelopersIO

    2016/02/24 10:30追記 : IBM Container for Bluemixの情報を追記しました ども、大瀧です。 日公開されたIBM製Swift WebフレームワークKituraを、AWSでしかもDockerで動作させてみたのでご紹介します。 KituraはLinuxで動く Bluemixのページでは当然KituraをIBM Bluemixで動作させる様子が全面に紹介されていますが、Swift自体はLinuxで動作することが知られているのでAmazon EC2やDockerで動作させることも出来るのでは?と思い立った次第です。 GitHubの手順に従うよう、Dockerfileを作成しました。 Dockerfile FROM ubuntu:wily RUN apt-get update && apt-get install -y \ git \ libhttp-pars

    Swift WebフレームワークKituraをDocker on Amazon EC2で動かしてみた | DevelopersIO
  • Amazon Linuxの特徴とCentOSとの違い まとめ | DevelopersIO

    はじめに Amazon EC2でLinuxサーバを新規構築する場合は弊社ではAmazon Linuxをお勧めすることが多いです。その理由としてはAWSのツールが最初から入っていてAmazonのサポートも受けやすいからです。Amazon Linuxを使ったことがない方はどんなディストリビューションなのか特徴を知りたいのではないかと思いますので、CentOSとの違いも含めまとめてみました。以下はAWS公式サイトのページになります。 Amazon Linux AMI Amazon Linuxの特徴 Amazon LinuxはRedHat系のディストリビューションになります。CentOSやRHELを使ったことがある方なら同じように使えるのではないかと思います。CentOSとの比較をしながらAmazon Linuxの特徴を見ていきたいと思います。CentOSはAWS MarketPlaceにあるCe

    Amazon Linuxの特徴とCentOSとの違い まとめ | DevelopersIO
    okinaka
    okinaka 2015/12/18
  • [Ruby] よく使うRspecのレシピ集(Rspec3.3) | DevelopersIO

    モバイルアプリサービス部の五十嵐です。 最近Rspecをガッツリ書いたので、調べたことをユースケースごとにまとめてみます。 対象バージョンはRspec3.3です。 リフレクション Rubyのリフレクションを使用したテストの書き方です。 インスタンス変数を操作したい インスタンス変数を取得したい場合はinstance_variable_get、設定したい場合はinstance_variable_setを使います。また、instance_variable_setでモックを仕込むことでレシーバオブジェクトのインスタンス変数や動作を操作することができます。 obj = Person.new(name: 'Hoge') # initializerで@nameにnameがセットされる想定 name = obj.instance_variable_get('@name') expect(name).to

    [Ruby] よく使うRspecのレシピ集(Rspec3.3) | DevelopersIO
  • 最近話題のWeb言語 Elixirのご紹介 | DevelopersIO

    ここ最近、Elixirという言語がWebプログラマー界隈で話題になっています。 ElixirはErlangのVM上で動くRuby風味の関数型言語で、RailsコミッタのJose Valimさんが作ったプログラミング言語です。 この言語はErlangの並行性とRubyの開発生産性を持っています。 今回はこの言語が出てきた背景と文法の特徴について書こうと思います。 Elixirが注目されている理由 ここ数年、Webアプリケーションは以下の問題を抱えています。 C10K問題 10000以上のクライアントがサーバに同時接続すると、HWの性能は足りていてもOS、ソフトウェアの問題で処理が破綻する ムーアの法則の限界 CPUチップメーカーの製造するチップのクロックレートの成長に陰り。代わりにマルチコアアーキテクチャのCPUが開発されている リアルタイムWeb サーバ、クライアントが常時接続するアプリケ

    最近話題のWeb言語 Elixirのご紹介 | DevelopersIO
  • 多段SSHをAnsibleで設定する | DevelopersIO

    渡辺です。 セキュリティを高めるなどの理由で対象インスタンスにEIPを付与しない場合、SSHは踏み台(Bastion)経由となります(参考: Amazon VPC環境にメンテナンス用の踏み台サーバを構築する)。 踏み台サーバのある構成でAnsibleを利用する場合、ansible.cnfのssh_connectionでssh_argsを設定しましょう。 ssh_configの準備 はじめにsshのconfigファイルを作成します。 これは、~/.ssh/configに設定するファイルの一部と考えて良いでしょう。 Ansibleのファイルと一緒にバージョン管理する方が良いと思うので、Ansibleのプロジェクトルートにおくことをおすすめします。 Host bastion HostName 52.52.xxx.xxx User ec2-user IdentityFile ~/.ssh/prd.

    多段SSHをAnsibleで設定する | DevelopersIO
    okinaka
    okinaka 2015/09/28
  • ジョブスケジューラ「Rundeck」を試してみる | DevelopersIO

    森永です。 最近は大逆転裁判をやりながら寝落ちするという毎日を送っています。 サーバ構築する上で、ジョブをどうするかというのは考慮が必要な点です。 簡単に実現するにはcronを使えばいいのですが、要件によってはジョブスケジューラを使わないと厳しいということがあります。 かと言って、エンタープライズで使われている格的なジョブスケジューラを使うのも大げさすぎる、というのもわかります。 そこで今回は、簡単に構築ができてそれなりに痒いところには手が届くジョブスケジューラ「Rundeck」を試してみます。 Rundeckとは OSSのジョブスケジューラです。 特徴として以下の様なものがあげられます。 エージェントレス SSH接続できればジョブを実行できます。 なので、別サブネットはもちろん、別VPCでも別AWSアカウントでもはたまたオンプレでもRundeckサーバからSSH接続とジョブを実行できる

    ジョブスケジューラ「Rundeck」を試してみる | DevelopersIO
  • CSV/TSVに対してSQL発行できるツール「q」 | DevelopersIO

    今日はCSV/TSVなどのテキストファイルをSQLで操作できるツール「q」の紹介です。 使いどころ データ処理を実施する時にはDBに保存されているデータやテキストファイルなどをCSVやTSV等の一定のフォーマットに変換して処理することが多いと思います。そのデータ内容を確認するときには、例えばExcel等に貼り付けることもあると思います。ただ、Excelではデータ量が数百万件規模になってくるとソフトウェアの制約上、処理が行えません。 データベースに保存されている大量のデータを処理・取得する際によく用いられるのはSQLです。SQLはデータ操作のための非常によくできたインターフェースであり、かなりの数のエンジニアが利用できるのではないでしょうか。 単純なCSVファイルに対してもSQLを利用して検索が実施できれば楽だと思って探していたところ、「q」にたどり着きました。 インストール qには様々なイ

    CSV/TSVに対してSQL発行できるツール「q」 | DevelopersIO
  • AWSでTerraformに入門 | DevelopersIO

    OSやミドルウェアの機能検証を実施した場合など、オンデマンドで一時的な検証環境を構築できるのもクラウドサービスの醍醐味です。 検証対象のOSやミドルウェアは異なれど、検証に必要な環境はある程度共通であることが少なくなく、また費用節約のためにも検証が終わった後はきれいさっぱりとその環境を削除したいものです。 AWSでそんな使い捨ての環境を構築する場合の方法として、ファーストチョイスとなるのはAWS CloudFormationかと思います。検証環境をテンプレート化しておくことができ、またマネージメントコンソールやAWS CLIを使って簡単に環境の構築/削除ができる、使い捨て環境の構築にはぴったりのサービスです。あるいはAWS CLIやAWS SDKを使って自前の環境構築スクリプトを作成するのもよいかもしれません。 AWS公式のツールを使う以外では、Terraformが有力な選択肢の1つになる

    AWSでTerraformに入門 | DevelopersIO
  • Vaultでバイナリファイルのread/write | DevelopersIO

    Vaultでバイナリファイルを扱う Vaultではコマンドラインまたはhttpで値を指定したり、json形式のファイルを指定してその値を保存することができます。 バイナリファイル(画像やPDFなど)も扱うことが可能なので、今回はバイナリファイルの保存/取得方法について紹介します。 dev版のビルド 今回はdev版を使用して動作確認をするため、ここを参考に、ソースからビルドします。 GOPATH環境変数(なければ適当なパスを設定)以下にsrc/github.com/hashicorpを作成し、 githubからvaultのソースを取得します。 % cd $GOPATH/src/github.com/hashicorp % git clone https://github.com/hashicorp/vault.git ソースを取得したらビルドします。 % cd vault % make de

    Vaultでバイナリファイルのread/write | DevelopersIO
  • 新サービス「AWS Device Farm」を使って Android アプリをテストしてみた! | DevelopersIO

    AWS Device Farm 日、AWS の新サービス「AWS Device Farm」(以下 Device Farm) がリリースされました。Device Farm はモバイルアプリのテストをクラウドで行うサービスです。現時点では Android と Fire OS が対応しており、既存のテストケースを実施したり、モンキーテストを実施したりすることができます。Android または Fire OS 上で動くアプリであればテストできるので、PhoneGap や Titanium、XamarinUnity といったフレームワークを使ったアプリもテスト可能です。 ということで、早速触ってみました! 使用できるテスティングフレームワーク 以下のテスティングフレームワークを使ってテストを実行できます。 Built-in: Fuzz Appium Java JUnit Appium Java

    新サービス「AWS Device Farm」を使って Android アプリをテストしてみた! | DevelopersIO
  • スクラムの受け入れ条件と対応させてTurnipで自動テストを書く | DevelopersIO

    丹内です。 掲題の通り、受け入れ条件を意味のあるものにするため、開発者が書く自動テストを意味のあるものにする話をします。 受け入れ条件とは 受け入れ条件とは、スプリントの計画時に決める「これを満たせば達成とする」という条件のことです。 チームやスクラムの運用によって内容は変わると思うのですが、私は「期待される成果物や機能を具体的に書くこと」が、受け入れ条件にとって必要なことだと考えています。 この受け入れ条件は、例えば「ユーザはタグを付けてブログを投稿できる」というストーリーの場合、以下のようになります。 タイトルと文から成るブログを投稿できること タグを付けて投稿することができること ユーザマニュアルが更新されていること このうち上の2つは具体的な機能に関する受け入れ条件ですが、これと対応するように自動テストを書きたいと思います。 Turnipとは/受け入れ条件との関連 Turnipと

    スクラムの受け入れ条件と対応させてTurnipで自動テストを書く | DevelopersIO
  • PackerでWindowsのAMI(Amazon Machine Image)を作成する #Packer | DevelopersIO

    こんにちは、コカコーラ好きのカジです。 先日、Packerの0.8のUpdateで、追加された「Windows AWS Images」が気になり試してみました。 Packerを初めて聞いた方は、ここ読むとわかりやすいと思います。 packer 0.8.1のインストール 私のMacOSXのbrew installでは0.7系のままだったので、手動でダウンロードして展開したフォルダで実行しました。 % unzip -d packer08 packer_0.8.1_darwin_amd64.zip % ./packer --version 0.8.1 Packer 0.8 Windows Example on AWSのExampleの内容で試してみましたが、作成したAMIを使ってlaunchするとWindowsはセットアップ時に設定したパスワードが不明のため、Windowsパスワードが取得できず

    PackerでWindowsのAMI(Amazon Machine Image)を作成する #Packer | DevelopersIO
  • [広告配信サーバ]Revive AdServerを使ってみる | DevelopersIO

    Revive AdServerを使ってみる この記事では、 EC2にRevive AdServerをインストールしてみました。 環境ができたので、次は実際につかってみます。 動作環境 今回使用した動作環境は以下のとおりです。 Revive : Version 3.2.1 広告配信をやってみる ではReviveにログインして広告配信の準備をしましょう。 1.広告主の登録 まずはメニューからインベントリ>広告主を選択し、広告主を登録します。 実際この作業は、広告代理店のような立場の人が行う作業とのことです。 この画面では、広告主の登録や更新をすることができます。 「広告主の追加」をクリックして、各種情報を入力し(とりあえず基情報だけでOK)、 広告主を登録してください。 2.キャンペーンの登録 広告主を登録したら、次はそれに紐づくキャンペーンを登録します。 広告主一覧画面から「キャンペーンの

    [広告配信サーバ]Revive AdServerを使ってみる | DevelopersIO
    okinaka
    okinaka 2015/06/29
  • [広告配信サーバ]EC2にRevive AdServer環境を作る | DevelopersIO

    Revive AdServerをEC2でセットアップ 今度は某氏より、「EC2でReviveサーバよろしく」と依頼されたので、 EC2でReviveをセットアップしました。 ※今回はRDSは使わずMySQLをEC2にインストール EC2インスタンスのセットアップ まずはAWSコンソールを使って、EC2インスタンス(Amazon Linux)を起動します。 microだとメモリが足らなくなる可能性もあるので、一応t2.smallで起動しました。 セキュリティグループは22番ポート(SSH)と80番ポート(HTTP)を開けておきましょう。 ミドルウェアのインストール インスタンスが起動したらSSHログインします。 そして、Apache/MySQL/PHP環境をセットアップしましょう。 ここと同じようにいけるかなと思ったのですが、依存ライブラリとかで エラーがでてしまってうまくいきませんでした。

    [広告配信サーバ]EC2にRevive AdServer環境を作る | DevelopersIO
    okinaka
    okinaka 2015/06/26
  • Lambda Function が Java で書けるようになりました! | DevelopersIO

    Lambda Function が Java で書けるようになりました AWS Lambda にアップデートがあり、Java で書けるようになりました!以前からアナウンスされていましたが、日からついに使えるようになりました。 AWS Lambda Update – Run Java Code in Response to Events | AWS Official Blog ということで、早速 Lambda Function を作ってみました。 AWS Toolkit for Eclipse のインストール Lambda Function は AWS Toolkit for Eclipse を利用すると簡単に実装できます。今回は現時点の最新バージョンである Eclipse IDE for Java Developers Luna Service Release 2 (4.4.2)

    Lambda Function が Java で書けるようになりました! | DevelopersIO
    okinaka
    okinaka 2015/06/16
  • SMTPサーバのメール送信テストにmailxコマンドを使う | DevelopersIO

    はじめに クラウド上に構築するシステムにおいても、SMTPサーバの重要性はオンプレミスと変わりません。アプリケーションからのメール送信、監視システムからの通知メール、管理者向けのroot宛メールの転送、などなど...sendmailやpostfixなどを使ったSMTPサーバの構築は今もなお一般的に行われています。 しかし、Linuxサーバなどからメール送信テストを行おうとしても、通常GUIを備えたリッチなメールクライアントなどはありません。このためCUIでコマンドラインによってメール送信を行う必要があります。 投稿ではコマンドラインでメールを送信するmailxコマンドの使い方をまとめました。 mailxコマンドの使い方 mailxのインストール Amazon LinuxやCentOSでは、初期状態でmailコマンドが入っていません。このためmailxパッケージを追加インストールします。

    SMTPサーバのメール送信テストにmailxコマンドを使う | DevelopersIO