AWSの話題を中心に、日々の業務やプログラミングの徒然を綴るエンジニアブログです。

HANDS LAB

HANDS LAB ENGINEERS BLOG

ハンズラボエンジニアブログ

【JAWS DAYS出張&MAコラボ企画】JAWS DAYS 2016アイディアソンに参加しました!

Pocket

I took the opportunity the other day to attend an event that Jaws Days and the Mashup Awards had collaborated on. The Ideathon is a community focused event where members from all types of occupations get together and consider its future. In order to make JAWS Days more fun, the theme of this event was to create a service we wish we had available.

私は先日、JAWS DAYSとMashup Awardsのコラボイベントに出席しました。

本イベントは様々な職種を問わないメンバーが集い、 コミュニティの未来を考えるアイディアソンイベントです。
3月12日のJAWS DAYSをもっと楽しむために「あったらいいな」といったサービスを自由に発想します。

I love events like this. It’s a great chance to meet people within the community, exchange ideas, and get some experience presenting (which helps with Lightning Talks!). The only other event I’ve been to that remotely resembles this was our company’s Hackathon last year. It was two days of intense teamwork and a whole lot of fun. I figured this couldn’t be much different…

私はこういうイベントが大好きです。
コミュニティメンバーに会えるし、アイデア交換ができるし、発表する経験を得る大チャンスです(LTができる!)。
私がいままで行ったことがあるイベントは、このイベントとはぜんぜん別の、去年私達の会社でやったハッカソンでした。
去年のハッカソンは、強烈なチームワークで2日間とても楽しかったです。
このイベントも会社のハッカソンとはそんなに違わないだろうと思って楽しみに参加しました。
続きを読む 【JAWS DAYS出張&MAコラボ企画】JAWS DAYS 2016アイディアソンに参加しました!

Pocket

stsAssumeRoleについて ー後編ー

Pocket

どうも、吉田です!

最近デスクで観葉植物を育て始めました、育つと木になるようなのでどーしよう!?
とか思いながら水やりしてます。

IMG_1262

さて、権限委譲の2回目です。
前回のブログ で書いたSTSの続きを書いていきます。

続きを読む stsAssumeRoleについて ー後編ー

Pocket

stsAssumeRoleについて

Pocket

ホッピーを燃料に書いています、ブログ大好き吉田です。
卒論のCodeCommitすごいですね!まだ見ていない方はぜひここ!を確認してください。

今回は権限委譲のお話です

aws_icon-iam_white-320x320

続きを読む stsAssumeRoleについて

Pocket

Elastic Beanstalkスケールイン時にlogが消えちゃう問題

Pocket

倉嶋です。
最近はすっかりPHPerとしてPHP Stormと戯れる日々です。
頭のいいIDE使うと、知識が足りないところが補完されるので頼りっぱなしです。
AWSはまだまだ補完されない領域が多いので、自分で頭を使う必要がありますね。
ということで、Elastic Beanstalkのログ取得でハマったところをご紹介。

ElasticBeanstalkのログ保存方法
↑こちらの記事にあるとおり、Elastic Beanstalkのログは設定すれば定期的に勝手にS3へ格納されるのですが、サーバが減った時に消えちゃいます。
コレは困る。
ということで、シャットダウン時にログ書き出しのスクリプトを動かすようにしました。

Linuxでシャットダウン時に想定した処理が実行されない
こちらを参考に、ランレベル0と6で動作するスクリプトを書きました。

さらに、.ebextensionsで、このスクリプトを配置するスクリプトを用意しました。
この辺がElastic Beanstalk使う時の難しいところですね。

これで、サーバ起動時・終了時に強制的にlogrotate→S3へログを転送することができます。
(logrotateのconfも書き換えていますが、こちらは割愛)

fluentdあたりを使えば悩む必要ないかもですが、この辺りまでElastic Beanstalkのデフォルトで面倒見てほしいなぁ。。。

<追記>

喉もとすぎれば熱さを忘れるわけで、割愛と書いた中にもハマリポイントが。
logroateのデフォルトのconfでは、size 10MB指定になっています。
この場合、10MBを超えていないとlogrotateしません。rotateしないとS3へも配信されないので、sizeを1にしています。

Pocket

AWS CodeCommitを使ってみた

Pocket

AWS CodeCommitを使ってみた

はじめまして.ハンズラボ内定者の美代(みしろ)と申します.
私は鹿児島の出身で,今は熊本でコンピュータサイエンスを専攻している修士課程の大学院生です.高校の頃からコンピュータに興味があり,関連資格としては基本情報技術者,応用情報技術者,データベーススペシャリストを持っています.

私がハンズラボを選んだ理由は主に内製とクラウドです.内製については,実際に使う人に近いところで開発し,使ってもらうことによって,手応えを感じやすい環境だと思うからです.さらにクラウドを積極的に利用して本業に集中できるように改善していく姿勢に共感して志望しました.入社後はクラウド環境でのアプリケーションの開発手法を身に着けたいと思います.またモバイルアプリ開発や組み込み開発にも関心があるので,そちらも勉強したいと思います.

さて,修論や研究データはプライベートなリポジトリに置きたいものですが,Gitのホスティングサービスでは,プライベートなリポジトリは有料だったり,リポジトリ数が制限されていたりすることが多いです.AWSのCodeCommitを使えば,プライベートなリポジトリを置くことができます.今回その使い方と,私がどう使っているかについて紹介したいと思います.なおGitHubやBitbucket等のGitホスティングサービスを使ったことのあるという前提で書いています.

CodeCommitとは?

CodeCommitはAWSが提供するGitのホスティングサービスです.Gitは分散型のバージョン管理システムで,リポジトリと呼ばれる場所にソースコードとその変更履歴を保存します.CodeCommitは,Gitのリモートリポジトリを提供するサービスです.

何に使っているか

私がCodeCommitに置いているリポジトリは,主に下記の3つです.

  • 修論のリポジトリ
  • 実験データ
  • プライベートで作ったコードのアーカイブ先

主に下の図のような使い方をしてます.

リモートとローカルリポジトリ

まず昼間,研究室マシンで作業してローカルリポジトリにコミットします.作業が終わるとリモートリポジトリにプッシュして帰宅します.帰宅してから,CodeCommitのリモートリポジトリからノートPCへプルしてきます.

これにより研究室のマシンとCodeCommit,ノートPCの3箇所に最新のデータが残る事になります.この3箇所が同時に故障することはほとんど考えられないので,修論や実験データのデータ消失の心配をしなくても済みます.

料金について

CodeCommitにも無料利用枠があります.しかも12ヶ月超えても条件を満たせば無料枠は続きます.条件は下記の3つです.料金についての詳細は公式サイトの説明をご覧ください.

  • アクティブユーザ 5人
  • ストレージ 50GB / 月
  • Gitリクエスト 10,000 件 / 月

一人で使う分には十分な条件です.3ヶ月ほど使っていますが,無料枠を超えたことはまだありません.公開したくないコードで,すでにクローズしたリポジトリのアーカイブ先としても使えると思います.

使い方

使い方はGitHub等の他のGitホスティングサービスとほとんど同じですが,ユーザ管理をAWS IAMでするようになっています.そのためSSHで接続する前にIAMの設定が必要です.

IAMの設定(アクセス権の付与)

まずIAMを開いて,CodeCommitへアクセス権を付与するIAMユーザを選択するか,新しく作成します.
IAMユーザを選択し,アクセス許可タブを開きます.
ポリシーのアタッチをクリックし,ポリシー一覧の中からAWSCodeCommitFullAccess を選択します.

IAMポリシーのアタッチ

IAMの設定(SSH公開鍵の追加)

続いてIAMユーザにSSH公開鍵を追加します.
認証情報タブをクリックし,一番下のAWS CodeCommitのSSHキー にSSHの公開鍵をアップロードします.公開鍵をアップロードすると,SSHキーIDが発行されます.このSSHキーIDがSSH接続するときのユーザ名になります.

SSH公開鍵のアップロード

交換鍵認証するローカルのSSHの設定に,SSHキーIDを追加します.
CodeCommitへSSH接続する際に,ユーザ名を常にSSHキーIDで接続するように設定します.
~/.ssh/config に下記を書き込みます.

これで準備完了です.

CodeCommit

CodeCommitを開きます.今のところ,バージニア北部のリージョンしかサポートされてないのでリージョンを変更します.

リージョンの変更

後は他のGitホスティングサービスと同じで,リポジトリを作成してクローンします.リポジトリ一覧はこんな感じです.

CodeCommitのダッシュボード

使用した感想

3ヶ月ほど使っていますが,トラブルなく使っています.
GitHubからWikiやIssues等のコミュニティ機能を除いた感じという印象です.

リージョンが離れているためか,リモートリポジトリへの転送速度が遅いです.下図のようにgit pullに5秒ほどかかります.

git pullの時間

おわりに

CodeCommitを一人で使う分には,無料枠内で料金を気にせずにプライベートリポジトリを維持できます.
手頃なバックアップ先として使ってみてはいかがでしょうか?

Pocket