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

  • gRPCアプリをAWS ELBで負荷分散してみた | DevelopersIO

    ども、大瀧です。 先月GAを迎えたGoogle製RPCフレームワークgRPCをちまちま触っています。 gRPCクライアントからgRPCサーバーへの負荷分散は、GitHubでクライアントサイドの例が紹介されていますが、今回はAWSのELB(Elastic Load Balancer)を用いたL4ロードバランサによる負荷分散を試してみた様子をレポートします。 ELBのgRPCサポート状況 gRPCは、HTTP/2上にProtocol Buffers形式でデータの送受を行います。HTTP/2サポートと言うと、AWSでは最近追加されたApplication Load Balancer(ALB)を連想するところですが、ALBがHTTP/2に対応しているのはリスナーであり、ターゲット(バックエンド)へのHTTP/2転送には対応していません。また、こちらのブログ記事に倣いALBのバックエンドにnghtt

    gRPCアプリをAWS ELBで負荷分散してみた | DevelopersIO
    ttsurumi
    ttsurumi 2017/09/16
  • Docker for AWS を試してみた | DevelopersIO

    はじめに 以前の記事で Docker for AWS について触れました。 Docker for AWS は、デフォルトで安全なコンテナープラットフォーム | Developers.IO せっかくなので、Docker for AWS を試してみたいなと思い検証してみました。 Docker for AWS とは AWS | Docker 上記のページから引用すると下記のとおりです。 Docker for AWSは、AWS上でアプリケーションを構築、アセンブル、および出荷するための統合された、配置が容易な環境で、基盤となるAWS IaaSサービスを最適に活用するために最適化されたネイティブAWSアプリケーションです。ポータブルアプリを導入する Docker for AWSには、ソフトウェアをインストールする必要はありません。 ブラウザとAWSアカウントが必要なだけで、数回クリックするだけでDo

    Docker for AWS を試してみた | DevelopersIO
    ttsurumi
    ttsurumi 2017/07/04
  • Amazon EC2 Container Service(ECS)のデータモデルについて整理した | DevelopersIO

    はじめに Amazon EC2 Container Service(以降ECS)はAmazon EC2上でDockerコンテナを稼働・管理するためのサービスです。私は最近ECSをよく触っており社内外の啓蒙活動も行っているのですが、「TaskとServiceってどう違うの?」「ECSのデータモデルがよくわからない」といったフィードバックを何度かもらいました。今日はECS学習のとっかかりとして、ECSで使われる概念について整理してみました。 概念 Task 前述の通り、ECSはDockerコンテナを起動、管理するためのサービスです。Dockerのベストプラクティスとして、基的には1コンテナ1サービスであることが公式に推奨されています。 It is generally recommended that you separate areas of concern by using one ser

    Amazon EC2 Container Service(ECS)のデータモデルについて整理した | DevelopersIO
    ttsurumi
    ttsurumi 2017/06/16
  • AWS WAFを利用してCloudFrontのELBオリジンへ直接アクセスを制限してみた | DevelopersIO

    はじめに AWSチームのすずきです。 ELBの前段にCloudFrontを設置した環境では、CloudFrontとオリジンのELB間の通信はインターネット経由で行われます。 ELBのIPやDNS名を知った利用者による、CloudFrontを経由しないELBへの直接アクセスが望ましくない場合には、 CloudFrontのカスタムヘッダを利用したアクセス制限が可能です。 今回、AWS WAFを利用し、CloudFrontのカスタムヘッダを利用したアクセス制限を行う機会がありましたので、紹介させていただきます。 追記 2019年3月のアップデートにより、ALBのリクエストルーティングで同等の設定が可能となりました。併せてご確認ください。 CloudFront専用のALBをリクエストルーティングで設定してみた 環境 CloudFrontはカスタムオリジンとしてAWS東京リージョンのELBを指定 E

    AWS WAFを利用してCloudFrontのELBオリジンへ直接アクセスを制限してみた | DevelopersIO
    ttsurumi
    ttsurumi 2017/06/11
  • AWS F1インスタンス向けのFPGA Developer AMIで開発ツールvivadoを動かしてみました #awssummit | DevelopersIO

    AWS F1インスタンス向けのFPGA Developer AMIで開発ツールvivadoを動かしてみました #awssummit AWS Summit 2017 San Franciscoにて、FPGAが使えるF1インスタンスが一般提供開始との発表がありました。これと同時に、FPGA開発ツールが含まれているFPGA Developer AMIも利用可能になりましたので、まずは開発ツールが実際にどんな感じに使えるのか試してみました。(今回はツールの一つvivadoを動かしただけで、F1インスタンスそのものはまだ動かせていません!) FPGA Developer AMI 今回AWS Marketplaceで使えるようになったFPGA Developer AMIには、F1インスタンスのFPGA開発に必要な下記のツールが含まれているとのことです。 Xilinx Vivado Design Sui

    AWS F1インスタンス向けのFPGA Developer AMIで開発ツールvivadoを動かしてみました #awssummit | DevelopersIO
    ttsurumi
    ttsurumi 2017/04/21
  • [小ネタ] Docker for Mac のデータを縮小する(Docker.qcow2 の肥大化対策) | DevelopersIO

    こんにちは、藤です。 先日、Macbook のディスク使用量が 90% を超えていたので整理していました。原因は色々とあったのですが、Docker for Mac で 16 GB ぐらいを使っていたのでシュリンクする方法を調べてみました。 概要 Docker for MacMac 上で Docker を利用するツールです。Docker for Mac に関しては下記エントリをご参照ください。 Public BetaになったDocker for Macを使ってみる Docker for MacApple の Hypervisor フレームワーク上で動作します。Docker for Mac の仮想マシンが動いています。ディスクは QEMU のイメージファイルが作られ、Docker イメージや、Docker コンテナが増えていくにつれて仮想マシンのディスク使用量、つまりイメージファ

    [小ネタ] Docker for Mac のデータを縮小する(Docker.qcow2 の肥大化対策) | DevelopersIO
    ttsurumi
    ttsurumi 2017/04/03
  • 教えるという技術 | DevelopersIO

    渡辺です。 自分は「教える」ことにやり甲斐を感じます。 大学時代を思い返すと、家庭教師やサポートセンターのバイトをやってました。 ボードゲームをする時は、ルール説明などを行っていました。 ゲームのインストの一環としてインストカードやサマリを作ることもあり、プレゼン資料作りも得意になりました。 IT業界に入ってからは、勉強会の講師や資料作成・ハンズオンのチューターなどを行うようになりました。 技術書の執筆やIT系専門学校講師も経験しています。 最近では趣味のスノーボードで、インストラクターの資格をとり、スノーボードスクールで教えています。 「教える」ことが好きなんでしょう。 これまで、様々な分野で技術を教えてきました。 畑はまったく違ったとしても、解りやすく「教える」ための技術は大きく変わりません。 今回はそんな「教える」技術をまとめてみました。 なお、エントリーの対象は、その分野に初めて

    教えるという技術 | DevelopersIO
    ttsurumi
    ttsurumi 2017/04/03
  • EC2からNFS経由でS3オブジェクトを保管できるようになりました![Storage Gateway] | DevelopersIO

    神アップデートな予感がしてます、コンニチハ、千葉です。 2016年11月30日に、ご紹介しました[新機能]オンプレミスからNFS経由でS3オブジェクトを保管できるようになりました![Storage Gateway]が、なんとEC2上で利用できるようになりました。 これで、EC2からもNFS経由でS3のオブジェクトを直接利用できるようになります。APIを利用してS3へアップロードする必要がなく、NFSにて利用できるのレガシーなシステムでは重宝するのではないでしょうか。 また、NFS(オンプレ/EC2) > Storage Gateway > S3 > Redshiftのような利用も考えられます。 注意点としては、Gatewayインスタンスは現状は冗長化できないという点です。ただ、種々バックアップストレージやデータ連携としてバックエンドにS3を利用できるのできるのと、直接S3にオブジェクトとし

    EC2からNFS経由でS3オブジェクトを保管できるようになりました![Storage Gateway] | DevelopersIO
    ttsurumi
    ttsurumi 2017/02/10
  • AWS Lambda + AWS WAF でDOS攻撃からの ✝守護者✝ を実装する | DevelopersIO

    はじめに DOS攻撃からいかにシステムを守るか。オートスケールの仕組みが充実し、大量のアクセスでも耐えられるようになってきている昨今ですが、悪意ある急激なアクセス増加は誰も望まないはずです。防御する仕組みが欲しいところではありますが、開発の時間が限られている中で、防護機構の自動化まで持っていくのは骨が折れます。そこで今回は、AWSを使ったシステムを構築するシーンで、DOS攻撃から自動でWAFを設定する仕組みを作ります。重視した点は以下2点です。 安価であること。可能な限り新しいAWSリソースを使わない、使うとしても高価なものは避ける。 ポータビリティが高いこと。別の環境に同様の手順で導入できること。 DOS攻撃防御の仕組み比較 Apache の mod_dosdetector アプリケーションサーバ群の前段にApacheサーバを置き、そこにmod_dosdetectorを導入することを考え

    AWS Lambda + AWS WAF でDOS攻撃からの ✝守護者✝ を実装する | DevelopersIO
    ttsurumi
    ttsurumi 2017/01/17
  • AWSでJMeterを使った負荷テスト環境を構築する手順(WindowsありのMaster/Slave構成) | DevelopersIO

    はじめに JMeterで負荷テストをする際に1台の端末から負荷をかけていても負荷が足りない場合があります。そのような場合はJMeterをMaster/Slave構成にし複数台用意する必要があります。今回はAWSでこのような負荷テスト環境を構築する手順をまとめたいと思います。 AWSを使う場合は以下のリンクのページのようにCloudFormationでやる方法が早いのですがAMIやインスタンスタイプ、Java、JMeterのバージョンが古くなるのと、上手く動かなくなった場合にCloudFormationに慣れてないと原因調査に時間をとられることもあるので今回は手作業でやってみたいと思います。 お手軽JMeterクラスター 〜 フルボッコ編|アドカレ2013 : CFn #1 前提条件 今回は以下の前提で構築しています。 Master上でテストシナリオを作成したいのでMasterのOSはWin

    AWSでJMeterを使った負荷テスト環境を構築する手順(WindowsありのMaster/Slave構成) | DevelopersIO
    ttsurumi
    ttsurumi 2017/01/11
  • アドレスが重複するVPC間でVPN接続してみた | DevelopersIO

    構成図 InstanceAからInstanceBにVPN経由で通信させます。 それぞれのVPCはアドレスが重複(192.168.1.0/24)しています。 VPN接続とNATが出来るSophos UTMを導入します。 前述のローカルルートの仕様をクリアするために、偽のアドレスを利用します。 VPCAを"192.168.10.0/24"、VPCBを"192.168.20.0/24"とします。 InstanceAからInstanceBに接続する場合、192.168.20.175を指定します。 InstanceBからInstanceAに接続する場合、192.168.10.118を指定します。 ネットワークがつながる仕組み InstanceAからInstanceBにpingを実行する時に、どのように疎通されるのか確認します。 InstanceAでは、ping 192.168.20.175を実行しま

    アドレスが重複するVPC間でVPN接続してみた | DevelopersIO
    ttsurumi
    ttsurumi 2016/12/25
  • Amazon KinesisとAWS WAFを利用して、サーバレスでリアルタイムな侵入防止システムを作ってみた | DevelopersIO

    Amazon KinesisとAWS WAFを利用して、サーバレスでリアルタイムな侵入防止システムを作ってみた はじめに AWSチームのすずきです。 ストリーミングデータの処理サービスのAmazon Kinesisを利用して、Webシステムのアクセスログ解析を実施し、 不正アクセス元と判定されたソースIP情報を、Lambdaを利用して、AWS WAFに反映する事で、 サーバレスでリアリタイムな侵入防止システム(IDS)を実現する機会がありました。 今回、その概要について紹介させて頂きます。 構成概要図 AWS WAF ELB は WAFに対応した ALB (Application Load Balancer) を利用します。 AWS WAF は、指定したIPアドレス(Conditions)のアクセス制限を実現するルール、ACLを設定します。 ACLs Rule Conditions 参考:

    Amazon KinesisとAWS WAFを利用して、サーバレスでリアルタイムな侵入防止システムを作ってみた | DevelopersIO
    ttsurumi
    ttsurumi 2016/12/19
  • [新ツール] AWS Serverless Application Model (AWS SAM) を使ってサーバーレスアプリケーションを構築する | DevelopersIO

    [新ツール] AWS Serverless Application Model (AWS SAM) を使ってサーバーレスアプリケーションを構築する AWS Serverless Application Model (AWS SAM) とは AWS Serverless Application Model (以降 AWS SAM) は、AWS が公式で提供しているサーバーレスアプリケーションを構築するためのフレームワーク (モデル) です。Lambda, API Gateway, DynamoDB のリソースをひとまとめに管理 (作成 / 更新 / 削除) することができます。 AWS SAM は、元々 Flourish という名前で知られていたものです。今年5月に開催された Serverless Conf にて Tim Wagner から発表されて以来、期待が集まっていました。re:Inv

    [新ツール] AWS Serverless Application Model (AWS SAM) を使ってサーバーレスアプリケーションを構築する | DevelopersIO
    ttsurumi
    ttsurumi 2016/11/22
  • Amazon VPC IPアドレス設計レシピ | DevelopersIO

    はじめに AWSにはEC2やRDS、RedshiftなどVPCに対応したサービスが数多くあります。 これらのサービスを利用する場合、まずはVPCやサブネットを作成します。 VPCの作成ではIPアドレス(=CIDR)に何を指定するか迷う方が多いのではないでしょうか。 私がVPCとサブネットのCIDRを決める際に考慮しているポイントは、ざっと以下の通りです。 プライベートIPアドレス範囲から指定する VPNやDirect Connect利用時はオンプレミスとの重複に注意する VPCピア利用時はVPC間で重複できない 将来の拡張に対応可能なCIDRを選択する 最低でも/28以上が必要 CIDRブロックのうち、5IPは利用できない ELBを配置するサブネットは/27以上のCIDRかつ、少なくとも8個の空きIPを用意する それぞれの詳細をご紹介し、最後に優先順位をまとめます。 プライベートIPアドレ

    Amazon VPC IPアドレス設計レシピ | DevelopersIO
    ttsurumi
    ttsurumi 2016/10/27
  • Terraformにおけるディレクトリ構造のベストプラクティス | DevelopersIO

    はじめに こんにちは、中山です。 Terraformを使用していく中で、どのようなディレクトリ構造(tfファイルの配置方式)がベストなのかと考えたことはありませんか。私自身いろいろと試している最中なのですが、現時点で私が考えるベストプラクティスをご紹介します。 ディレクトリ構造 いきなりですが、以下のとおりです。 ├── Makefile ├── README.md ├── app.tf ├── bastion.tf ├── cloudfront.tf ├── db.tf ├── elasticache.tf ├── elb.tf ├── envs │   ├── dev │   │   ├── main.tf │   │   └── variables.tf │   ├── prd │   │   ├── main.tf │   │   └── variables.tf │   └──

    Terraformにおけるディレクトリ構造のベストプラクティス | DevelopersIO
    ttsurumi
    ttsurumi 2016/08/10
  • AWSとGCPの対応表(2016年7月版) | DevelopersIO

    あえて元の表には手を加えないようにしています。 注意点 幾つかのサービスが表から抜けています。 目立ったところでは AWS Lambda とその対応物であるGCP Cloud Functions でしょうか。Cloud Functions はまだ Alpha のため、あえて外しているのかもしれません。 また AWS IAM/GCP IAM も表にありません。GCP IAM は今年3月の GCP NEXT 2016で発表されたばかりで、AWS IAM と比べると機能的に大きく見劣り、単純にサービスの有無だけで表にのせるのはフェアではないとの判断からかもしれません。 基礎サービスと高レベルサービスの関係 AWS/GCPともに基礎となるサービス(Compute/storage/Networking/Databases)の上に高レベルサービス(Application services/Big da

    AWSとGCPの対応表(2016年7月版) | DevelopersIO
    ttsurumi
    ttsurumi 2016/07/11
  • [レポート] Docker と Amazon ECS で DevOps を進化させる #AWSSummit | DevelopersIO

    DockerAmazon ECS で DevOps を進化させる 6/1 (水) ~ 6/3 (金) に開催された AWS Summit Tokyo 2016 の Develoeprs Confrence のセッション「DockerAmazon ECS で DevOps を進化させる」を聴講しました。記事はそのレポートです。 コンテナ技術である Docker と、Amazon EC2 のクラスタ上でコンテナを管理できる Amazon EC2 Container Service (ECS) を利用することで、アプリケーションとインフラという2つの密結合したライフサイクルの管理から脱出し、新しい DevOps へと向かう方法、及びその事例をいくつかご紹介します。 スピーカーは 岩永 亮介 氏(アマゾン ウェブ サービス ジャパン株式会社 技術部 メディア・エンターテインメント部

    [レポート] Docker と Amazon ECS で DevOps を進化させる #AWSSummit | DevelopersIO
    ttsurumi
    ttsurumi 2016/06/04
  • Deep SecurityのAWS WAF連携「IP List連携」を試してみる | DevelopersIO

    セキュリティって怖いですよね、森永です。 Trend Microさんの出されているDeep Security(以下、DS)は、AWSとの親和性が高くAWSセキュリティ強化、という方は多く使われているのではないかと思います。 そんなDSですが、更なるAWSとの連携を目指してこんなリポジトリを公開されています。 AWS WAFとの連携スクリプトというものがありますので、こちらを試してみましょう。 DSのAWS WAF連携 スクリプトの中身はPythonとなっており、AWSAPIとDSのAPIを呼び出すことで連携を実現しています。 なので、Pythonが分かれば改造もできちゃいます。 現在提供されている機能は大きく以下の3つです。 IP List DeepSecurityが持っている「IP List」をAWS WAFの「IP Set」に渡す SQL Injection (SQLi) EC2を

    Deep SecurityのAWS WAF連携「IP List連携」を試してみる | DevelopersIO
    ttsurumi
    ttsurumi 2016/04/12
  • tmuxを使いこなす / プラグイン開発で機能を拡張 | DevelopersIO

    はじめに こんにちは、中山です。 唐突ですがみなさんtmuxは使われていますか。そう、有名なターミナルの機能を拡張するツールですね。 この種のツールを使っていない方の中には、職場の先輩などに「ちょwターミナル開きすぎwブラクラかよw」などとドヤ顔で言われたことがある方もいらっしゃるのではないでしょうか。かく言う私もドヤ顔でこの種の発言を繰り返していました。 tmuxはデフォルトの機能がかなり豊富なのですが、tpmというプラグインマネージャを使うとさらに機能を拡張することができます。聞いたことがある方も多いのではないでしょうか。ググると検索結果に結構表示されますね。GitHubのtmux-pluginsというorganizationにはさまざまなプラグインがあります。便利なプラグインを紹介しているブログエントリも結構あります。 私はこのプラグインを今まで結構作ってきました。少しシェルスクリプ

    tmuxを使いこなす / プラグイン開発で機能を拡張 | DevelopersIO
    ttsurumi
    ttsurumi 2016/04/11
  • よくわかる認証と認可 | DevelopersIO

    よく訓練されたアップル信者、都元です。「認証 認可」でググると保育園の話が山程出て来ます。が、今日は保育園の話ではありません。そちらを期待した方はごめんなさい。こちらからお帰りください。 さて、先日のDevelopers.IO 2016において、マイクロWebアプリケーションというテーマでお話させて頂きました。一言で言うと OAuth 2.0 と OpenID Connect 1.0 のお話だったのですが、これらを理解するにあたっては「認証」と「認可」をはっきりと別のものとしてクッキリと認識する必要があります。 まず、ざっくりとした理解 認証と認可は密接に絡み合っている一方で全く別の概念です。正直、理解は簡単ではないと思います。 まず「認証」は英語では Authentication と言います。長いので略して AuthN と書いたりすることもあります。意味としては 通信の相手が誰(何)であ

    よくわかる認証と認可 | DevelopersIO
    ttsurumi
    ttsurumi 2016/02/24