ランサーズ等のサービスを開発・運用する中で得た知識やノウハウを紹介しています。

Labels:  AWS, DevOps 投稿者:kojima

AWS API とサーバ管理

あけましておめでとうございます。エンジニアの こじま です。

今年もよろしくお願いいたします。

 

今回は,ランサーズの開発・運用を楽にするための

サーバ管理システムのご紹介をします。

弊社プラットフォームでは AWS を利用しています。

 

AWS には AWS マネジメントコンソールが提供されますが,

ランサーズでは,自社製のシステムでサーバ情報を一元管理し

各ツールと連携し開発・運用効率を図っています。

サーバ情報は以下のようなビューを持ち一元管理をしています。

サーバ一覧

 

また,不必要にサーバにログインしなくて済むように

ウェブサーバなどのログの表示も WEB UI から可能としています。

アクセスログ

 

今回は,サーバ管理を実現するために利用した

AWS の Ruby ライブラリによる API 取得についてご紹介します。

あらかじめ aws-sdk のインストールと

Endpoint, Access Key, Secret Key を準備ください。

EC2 インスタンスの Private IPAddress の一覧を表示するサンプルを記述します。

#!/bin/env ruby
require 'aws-sdk'

ec2 = AWS::EC2.new(
:ec2_endpoint = 'ec2.ap-????????.amazonaws.com',
:access_key_id = '??????????',
:secret_access_key = '??????????'
)

p ec2.instances.map{|m| m.private_ip_address}

 

実行結果

$ ./aws_sdk_sample1.rb
["10.0.1.11", "10.0.101.11"]

 

とても簡単に AWS の情報を取得できます。
このようにしてランサーズでは,
ユーザ様に快適なプラットフォームを提供すべく日々努力をしております。

ランサーズではサービスを成長させてくれるエンジニア、デザイナーを募集しています!
ご興味がある方は、以下URLよりご応募ください。

PHPエンジニア
Rubyエンジニア
サーバーサイドエンジニア
SREエンジニア
フロントエンドエンジニア
その他採用情報

関連記事

thumbnail
pythonを使ってsocket.io-redisへイベントをemitする

pythonを使ってsocket.io-redisへイベントをemitする はじめに チャネル名 emitするデータの形式 Publish はじめに AJAX+ポーリングで実装していたチャットサーバなどを、後付けでwebsocketを使ってリアルタイム通信にし …

thumbnail
dotsで登壇してきました

CTOの横井です。 こないだの7/31にdotsさんで、下記のイベントに登壇してきました。 http://eventdots.jp/event/593939 当日は、アクトキャットさん、BECさん、サイバーエージェントさんと、ランサーズの4社で普段のプロジェク …

CakePHP3.5における各種実装例 ~ LancersTop 開発現場より ~

こんにちは エンジニアの上野 です。本日「CakePHP3.5における各種実装例」という題目で登壇するので、発表資料をアップロードします。資料として使えるようにコード例などを厚めに盛り込んだスライドですので役に立てると嬉しいです。 CakePHP3.x での各 …