タグ

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

  • AWSでジョブWorkerを構成するベストプラクティス 〜 SQSの巻 | DevelopersIO

    よく訓練されたアップル信者、都元です。AWSでシステム構築をする場合は、Design for failureという考えに基いて、複数AZにまたがる形の冗長構成を組むのがベストプラクティスです。さらに、このように分散させた各インスタンスには、出来る限りマスターを作らない、つまりSPOFとなるインスタンスを避ける構成であるのが理想です。 という話題については以前AWSにおける可用性の考え方というエントリーでも書きました。 可用性 (availability) と拡張性 (scalability) 題はジョブWorkerですが、WebサーバやDBサーバの可用性と拡張性を先におさらいしておきましょう。 Webサーバ この考えで構築する最も基的な構成が、Webシステムにおける ELB + Webサーバ の構成です。この構成マルチAZと呼び、片方のAZが丸ごとダウンしたとしても、サービス自体はダウ

    AWSでジョブWorkerを構成するベストプラクティス 〜 SQSの巻 | DevelopersIO
    phji
    phji 2017/05/16
  • DockerでOracle Javaを実行する | DevelopersIO

    ども、大瀧です。 「30億のデバイスで走る」でおなじみのJavaなわけですが、ライセンスの関係でこれまでDockerでの利用がグレーという状況でした。以下の記事が詳しいです。 Dockerコンテナ上でのJavaの実行はライセンス違反なのか? 一方で、この問題を解決するためにOracle社での取り組みが進み、手元でランタイムをダウンロードしてEULAに同意しつつ、Dockerイメージをビルドする手法がOracleの中の人によって紹介されています。 Oracle公式Java実行環境のDockerイメージを構築 - #chiroito ’s blog 現在開催中のdockercon 17では、Docker社とOracle社の協調によりDocker Hub(Docker Store経由)でのOracleプロダクトの公開がアナウンスされました。今回はこちらの手順に沿って、Oracle Java SE

    DockerでOracle Javaを実行する | DevelopersIO
    phji
    phji 2017/04/20
  • JSONにはコメント行が付けられない?ネットで見つけた方法の有用性を試してみた | DevelopersIO

    はじめに こんにちは植木和樹です。AWSではJSON形式を使う機会が結構多いですよね。ただJSONを使ってて不満なことが一つあります。それはコメント行をつけることができないことです。例えばJavaScriptのようにスラッシュでコメントを表現しようとしても構文エラーとなってしまいます。 { "key" : "value" // コメント } $ cat js_test.json | jq '.' parse error: Invalid numeric literal 特にCloudFormationのテンプレートや、IAMのポリシー設定は内容が複雑になりがちなのでコメントをつけておきたいと思うことが多々あり困っていました。 そんな時このようなブログを見つけました。「Adding Comments to JSON」。JSONでは同じキー文字列の要素が重複した場合に最後に定義したものが優先さ

    phji
    phji 2017/03/24
  • [小ネタ]fluent-plugin-aws-elasticsearch-serviceにて、重複行を登録させない設定 | DevelopersIO

    コンニチハ、千葉です。 fluent-plugin-aws-elasticsearch-serviceを利用してAmazon Elasticsearch Serviceへログを登録している環境があります。この環境でログを再送した時に同じログが数十件登録されました。具体的には、2万件ほどリダイレクトでログを書き込んでみたところ、同じログが10行から15行程登録されていました。これは困った。 ということで、ログを重複させない方法を調査してみました。 どうやるの? まず前提として、Elasticsearchには_idというフィールドが有り、ドキュメントの一意なIDとなります。このフィールドに一意なIDを指定することで重複を避けられそうです。(同じIDが送信された場合上書きされます) そしてログに一意なID、request_idを追加しておきます。この一意なrequest_idを、ドキュメントのI

    [小ネタ]fluent-plugin-aws-elasticsearch-serviceにて、重複行を登録させない設定 | DevelopersIO
    phji
    phji 2017/03/09
  • Play Frameworkアプリの負荷試験を行う前に確認すべきことまとめ | DevelopersIO

    はじめに Play Frameworkを利用してアプリケーションを開発する動機の一つとして「高い負荷に耐えることができる(C10K)」が挙げられます。 しかしながら、たとえPlayを使っていても、チューニングが十分でなければ高いスループットが出るとは限りません。 今回は、300RPS(RPS=リクエスト毎秒)を超えるような負荷をPlayアプリケーションにかける前に確認すべきポイントをいくつかご紹介します。 稿ではPlay Frameworkのバージョン2.4を前提としています。 Playアプリの負荷試験前に確認すべきこと 目次 ExecutionContextが適切に分割されているか 並列実行可能なスレッド数の設定は適切か ログ出力方法は十分考慮されているか (おまけ)Amazon Linuxの設定で配慮すべきもの ExecutionContextが適切に分割されているか Executi

    Play Frameworkアプリの負荷試験を行う前に確認すべきことまとめ | DevelopersIO
    phji
    phji 2017/03/07
  • boto3を使ってEC2のCloudWatchアラームを一括設定する | DevelopersIO

    こんにちは、菊池です。 EC2の基的な監視として、CloudWatchのアラームを使うことはよくあると思います。EC2のステータスチェックや、CPU利用率などを監視して閾値超過時にSNSへ通知することなどは、マネージメントコンソールからも簡単に設定可能です。 しかし、EC2のインスタンス数が増えてくると、1つ1つアラートをマネジメントコンソールから設定するのは面倒になりますので、一括で設定するPythonスクリプトを作成しました。 設定内容と事前準備 今回設定するアラームは以下の2つです。 StatusCheckFailed_System 5分ごとにチェックし、2回連続で検知したらアラート発生 SNS Topicへの通知と、AutoRecoverによる復旧を行う CPU_Utilization 5分ごとにチェックし、2回連続で80%を超過したらアラート発生 SNS Topicへの通知を行

    boto3を使ってEC2のCloudWatchアラームを一括設定する | DevelopersIO
    phji
    phji 2017/03/05
  • Amazon Auroraをt2.mediumで起動できるように!(ただし開発/テスト用) | DevelopersIO

    起動してみる 今までのAuroraと何も変わりません。DBインスタンスのクラスでdb.t2.mediumを選択するだけで、今までと同じです。 以下のように普通にAuroraへログインできます。 $ mysql -uawsuser -pmypassword -h t2cluster.cluster-abcdefghijkl.ap-northeast-1.rds.amazonaws.com Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 20 Server version: 5.6.10-log MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All r

    Amazon Auroraをt2.mediumで起動できるように!(ただし開発/テスト用) | DevelopersIO
    phji
    phji 2017/02/27
  • ELB+AutoScaling環境でALBに移行してみる | DevelopersIO

    こんにちは、菊池です。 昨年発表された Application Load Balancer (ALB)ですが、すでに既存のClassic Load Balancer(元々のELB:標準ロードバランサー)から移行しているユーザも多いと思います。 今回、AutoScalingで使用しているケースにおける、CLBからALBに移行する手順を調べてみました。単純な移行と比較して、いくつか注意点もありました。 手順サマリ ALB/Target Groupを作成(ここではインスタンスの追加不要) Auto Scaling Groupを編集 一部プロセスを停止 Target Groupを追加 Health Checkが正常となることを確認 Auto Scaling Groupを編集 CLBを削除 停止していたプロセスを再開 DNSレコードを切り替え、アクセス先をCLBからALBに変更 1、6についてはこれ

    ELB+AutoScaling環境でALBに移行してみる | DevelopersIO
    phji
    phji 2017/02/17
  • CodeDeploy のデプロイ方式に Blue/Green Deployment が追加されました | DevelopersIO

    2016/01/30 【修正】 ELB にインスタンスを追加するタイミング、現環境を削除するタイミングは指定可能でした こんにちは、藤です。 先日、CodeDeploy に Blue/Green デプロイ機能が追加されました。 AWS CodeDeploy Introduces Blue/Green Deployments 早速触ってみましたのでご紹介します。 概要 CodeDeploy は今までデプロイ方式にインプレイスデプロイのみを提供していました。インプレイスデプロイは既存のインスタンスにアプリケーションを上書きすることで、高速なデプロイを実現していました。しかし、アプリケーションを上書きすることで、いざ、デプロイしたアプリケーションにバグが内在していて、前のバージョンのアプリケーションに切り戻したい時は再度アプリケーションをデプロイする必要があり、切り戻しに時間がかかっていました

    CodeDeploy のデプロイ方式に Blue/Green Deployment が追加されました | DevelopersIO
    phji
    phji 2017/02/16
  • [アップデート]既存のEC2にIAM Roleを付与できるようになりました! | DevelopersIO

    大栗です。 先程既存のEC2に対してIAM Roleを設定することができるようになりました!早速試してみます。 New! Attach an AWS IAM Role to an Existing Amazon EC2 Instance by Using the AWS CLI Attach an IAM role to your existing Amazon EC2 instance 2017年3月6日現在 Management ConsoleでもIAM Roleの設定が可能になっています。 [アップデート] EC2コンソールで既存のEC2インスタンスに対してIAM Roleをアタッチ、変更ができるようになりました IAM Roleとは? IAM Roleとは、AWSのサービスに対してアクセス権限を付与する機能です。IAM Roleでは対象サービスのみにアクセス権限を設定できアクセスキ

    [アップデート]既存のEC2にIAM Roleを付与できるようになりました! | DevelopersIO
    phji
    phji 2017/02/10
  • [アップデート]ECS TaskにIAMロールを付与することができるようになりました | DevelopersIO

    コンニチハ、千葉です。 ECSにアップデートがありました! 今までECS TaskでIAMロールを利用する場合は、EC2インスタンスに付与したIAMロールを利用していました。この場合、EC2上で動くコンテナは共通のIAMロールを利用する必要がありました。つまり、Task(コンテナ単位)でのロール割当は行えませんでした。 今回のアップデートで、ECS上のTask(コンテナ)単位でIAMロールを付与できるようになりました。これにより、Taskに対して最小限の権限を付与することができます。 環境 以下で試してみました。 ECSの環境はGet startedから作成 EC2に付与されているIAMロールの権限を削除 ECS Task用のIAMロールの作成 EC2にログイン、コンテナ上でS3にアクセスしてみる やってみた ECS環境の作成 まずは、ECS環境を構築します。Get startedより、キ

    [アップデート]ECS TaskにIAMロールを付与することができるようになりました | DevelopersIO
    phji
    phji 2017/02/08
    “ECS Task用のIAMロールを作成します。作成時、ロールタイプにAmazon EC2 Container Service Task Roleを選びます。 ”
  • IAM Roleの仕組みを追う – なぜアクセスキーを明記する必要がないのか | DevelopersIO

    はじめに こんにちは。望月です。 過去にブログで、IAM Roleの仕組みについて都元から解説がありました。 - IAMロール徹底理解 〜 AssumeRoleの正体 IAM Roleの仕組みについて非常にわかりやすく解説されていますので、ぜひ読んでみてください。今日はもう少し利用側の観点に立ったブログを書いてみようと思います。 IAM Roleってどうやって使われてるの IAM Roleを利用する目的は、「ソースコード内にAWSAPIキーをハードコードすることなく、AWSAPIを叩きたい」というものが殆どだと思います。ですが、なぜIAM Roleを利用すると、アクセスキーをソースコードで指定することなくAWSAPIが利用可能になるのでしょうか。 今日はその仕組みについて知りたくなったので、AWS SDK for Rubyのソースコードから読み解いてみました。SDKのバージョンは1

    IAM Roleの仕組みを追う – なぜアクセスキーを明記する必要がないのか | DevelopersIO
    phji
    phji 2017/02/03
  • 【新機能】Amazon Redshift の Interleaved Sorting機能を試してみた | DevelopersIO

    はじめに 2015年05月11日にAmazon Redshift の Interleaved Sorting機能のリリースが発表されました。 データ分析では複数の分析軸によるデータディスカバリーが求められますので、DWHは高速に異なるカラムの検索や集計が必要とされます。既存のソートキー(COMPOUND SORTKEY)は、ソートキーの定義に無いカラムでは全てのブロックのスキャンが発生するので相対的に早くないという課題がありました。今回の Interleaved Sortingのリリースによって、ソートキーに指定した複数のカラムに対して、クエリーのフィルタを柔軟かつ高速に行えるようになりました。 昨年のre:invent2014のSDD414 - Amazon Redshift Deep Dive and What’s Next の "Multidementional indexing w

    【新機能】Amazon Redshift の Interleaved Sorting機能を試してみた | DevelopersIO
    phji
    phji 2017/02/01
    “INTERLEAVED SORTKEY ”
  • 【新機能】IAMユーザーをManagement Consoleからクロスアカウントで色々なRoleにスイッチする事ができるようになりました。 | DevelopersIO

    こんにちは、せーのです。今日はIAMにできたなかなか面白い機能をご紹介します。IAMで役割(Role)を予め作っておき、AWS Management ConsoleからIAMユーザーをそのRoleにスイッチさせることにより一つのユーザーで様々な役割でのアクセスが可能になる、というものです。 どういう時に使うの 普段IAMユーザーに役割を割り振る時にはその業務別で権限を分けているかと思います。例えばDeveloper(開発者)であれば開発環境には触れるけれども番環境には触れない、運用担当であれば状態を見ることはできるけども変更することは出来ない、みたいな感じです。 でも一時的に権限を与えたい場合などがあるかと思います。番環境にシステムをデプロイする時だけはDeveloperにも権限を与えたい、運用担当が軽微な修正点を発見した時はその場で修正できるようにしたい、というような時です。今までで

    【新機能】IAMユーザーをManagement Consoleからクロスアカウントで色々なRoleにスイッチする事ができるようになりました。 | DevelopersIO
    phji
    phji 2017/01/13
  • CircleCI+ECS+ECR環境でDockerコンテナのCD(継続的デプロイ)環境を構築する -後編- | DevelopersIO

    コンニチハ、千葉です。 後編です。前編では、ECRとECSの環境までを構築しました。ここからは、CircleCI側のセットアップを行いたいと思います。 流れとしては、以下で実施しようと思います。 GitHubにコードをpushする CircleCI用のIAMユーザを作成し、アクセスキーを取得する CircleCIGitHubのリポジトリをリンクする CircleCIにアクセスキーを登録する ビルドを実施 デプロイされているはずなので、webにアクセスしてみる セットアップしてみた GitHubにコードをpushする こちらをforkするなり、zipでダウンロードして自分のリポジトリにコミットしGitHubへpushします。コードは特に変更せずそのまま登録すれば問題無いです。 local$ tree . ├── Dockerfile # Dockerコンテナを定義 ├── LICENSE

    CircleCI+ECS+ECR環境でDockerコンテナのCD(継続的デプロイ)環境を構築する -後編- | DevelopersIO
    phji
    phji 2017/01/03
    circleci -> docker push ecr + ecs-cli up
  • ELBのスティッキーセッションについて調べてみた | DevelopersIO

    はじめに 藤です。 私事ですが、先週「AWS認定Sysopsアドミニストレーター - アソシエイトレベル」を受験しまして、 無事合格しました(8888 更に昨日「AWS認定デベロッパー - アソシエイトレベル」を受験しまして、 無事合格しました(8888 トリプルアソシエイトになりました。 今回はELBのスティッキーセッションがどういうものなのか理解できていなかったので調べてみました。 概要 ELBにクライアントとバインド先を固定するスティッキーセッションという機能があります。 HTTPレスポンスにELBでCookieを埋め込んで、 そのクッキーを基にバインド先のインスタンスを固定するというものです。 ELBのスティッキーセッションはCookieの有効期限設定が2種類あります。 任意の有効期限を指定する アプリケーションのCookieに従う スティッキーセッションを利用したい場合、 アプ

    ELBのスティッキーセッションについて調べてみた | DevelopersIO
    phji
    phji 2017/01/02
  • Amazon ECSのELB構成パターンまとめ(ALB対応) | DevelopersIO

    ども、大瀧です。 DockerクラスタリングのマネージドサービスであるAmazon ECSにここ数週間で大きなアップデートがあり、AWSのロードバランササービスであるELB(Elastic Load Balancing)との組み合わせ方が大幅に増えました。この記事ではパターンとその使い分けについて解説してみます。 ECSとELBのアップデート概要 ECSでは、ここ数日で以下のアップデートがアナウンスされています。 Amazon EC2 Container Service Automatic Service Scaling Region Expansion Amazon EC2 Container Service Now Integrated with Application Load Balancer to Support Dynamic Ports and Path-based Rout

    Amazon ECSのELB構成パターンまとめ(ALB対応) | DevelopersIO
    phji
    phji 2016/12/26
    “パターン1 : 動的ポート&ALB”
  • 【新機能】新しいロードバランサー Application Load Balancer(ALB)が発表されました | DevelopersIO

    target2の場合も同様に作成します。 ターゲットグループにインスタンスを登録する 作成したターゲットグループにEC2インスタンスを登録します。 ターゲットグループを選択してコンテキストメニューでインスタンスの登録と登録解除をクリックするか、ターゲットタブの編集をクリックします。 インスタンスtarget1-aとtarget1-cを登録します。 ALBにインスタンスが登録されます。ロードバランサに登録していないため状態はunusedとなります。 同様にtarget2にもインスタンスtarget2-aとtarget2-cを登録します。 ALBを作成する ALBを作成します。アプリケーションロードバランサーを選択します。 ロードバランサの基的な設定を行います。 プロトコルはHTTPとHTTPSのみとなっています。今回はHTTPSを選択します。 HTTPSを選択したのでSSL証明書を選択しま

    【新機能】新しいロードバランサー Application Load Balancer(ALB)が発表されました | DevelopersIO
    phji
    phji 2016/12/26
  • Elastic社公式のDockerイメージ(Beta版)が提供されるようになりました | DevelopersIO

    こんにちは、藤です。 Elastic社が公式のDockerイメージの提供を開始したので早速試してみました。 詳細は下記ページをご参照ください。 Introducing Docker images for Elasticsearch and Kibana 以前からDocker HubにてElasticsearch、Kibanaが提供されていました。こちらはElastic社公式のDockerイメージではなかったのかな。。 Elastic社公式Dockerイメージ 今回、Elastic社が持つDockerレジストリサーバーでイメージの提供を開始しています。また簡単にコンテナを利用できるようにElastic社のGithubリポジトリにて、Dockerfile、docker-compose.ymlを提供しています。 elastic/elasticsearch-docker elastic/kiba

    Elastic社公式のDockerイメージ(Beta版)が提供されるようになりました | DevelopersIO
    phji
    phji 2016/12/25
  • Akka と Amazon ECS で構築するワーカー基盤:1万件のメッセージを処理させてみた | DevelopersIO

    この記事は Scala Advent Calendar 2016 - Qiita19日目の記事です。私は普段、クラスメソッド株式会社でサーバーサイドエンジニアとして働いています。業務のかたわら、「ScalaAWSを使ってなにができるか」ということを主なテーマにブログを執筆しています:和田祐介 | Developers.IO 今回は、AkkaとAmazon ECSを触ってみたいと思い、実際にワーカーを構築して処理させてみましたので記録を残します。 なにがしたいか ScalaおよびJavaの並列分散処理フレームワークである Akka におけるアプリ実行環境として、Amazon ECSが選択できることを示します。また、ECSのTask数(コンテナ数)によって処理性能がどう変わるか、ひとつの例を出します。どちらも、単純に使ってみたかったというのが動機です。ただ、Akkaは分散環境で動作することを

    Akka と Amazon ECS で構築するワーカー基盤:1万件のメッセージを処理させてみた | DevelopersIO
    phji
    phji 2016/12/20