16
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OpsWorks の勘所

Posted at

この記事について

私が AWS OpsWorks を実際に利用するうえで、最初に知っておけたら良かったということをまとめています。
フィードバックはお気軽にいただけると嬉しいです!

紹介ムービー

AWS OpsWorks のご紹介(日本語字幕)
https://www.youtube.com/watch?v=T76k-QR39LI

内部で利用されている主なオープンソース技術

  • Git
  • Chef
  • Capistrano
  • Monit

OpsWorks の勘所

設計の方針

冪等性(Immutable Infrastructure)を意識して構築します。いつでもボタンをポチるだけでインスタンスが入れ替え可能な状態。そこで次のような方針をとります。

保存すべきデータや複雑な設定は EC2 から切り離す、減らす。

そうすると具体的には次のような組み立て方をしていけば良いことがわかります。

  • データベースは MySQL レイヤーは使わず RDS を使う。
  • ロードバランサーのレイヤーも使わず ELB を使う。
  • Instance Store を採用し、EBS への依存を排除。
  • アセットファイル、アップロードファイルは S3 へ投げる。
  • セッション、キャッシュは Memcached や Redids を利用。
  • キューイングは Redis や AWS SQS を利用。
  • メールは AWS SES や SendGrid を利用。
  • ログは fluentd で S3 へ投げる。

設定、運用について

  • リポジトリに含めたくない情報は環境変数(App の設定)を利用して渡す。
  • Custom Cookbook は 本家の Cookbook を複製して独自のブランチをきり、Rebase をしながら本家に追従させる運用をとる。
  • EC2インスタンスから S3 や SES などの AWS の各リソースへのアクセス制御には IAM Role を使う。鍵の設置/設定なしでリソースが利用できるためシンプルになる。
  • Staging 環境や検証用環境構築は Stack の複製機能を使うと楽。

Custom Cookbook 利用タイミングの例

  • 標準で用意されてい設定ファイルに設定ファイルに大きな変更が必要(設定値変更ならCustom JSONでOK)。
  • Sidekiq や fluentd(td-agent) など標準で用意されていないツールの導入。
  • Cronジョブの追加。

注意点

  • AWS オートスケールは使えない(っぽいのはある)。
  • Cookbook のカスタマイズは割と普通に発生する。
  • RDS は1スタックにつき1つという考え方。

最後に

naoya 氏のコメントが的を得てますのでそのまま引用させていただきます。

例えば顧客毎にアプリケーションの実行環境を用意するようなビジネスのモデルなんかでも大活躍ですね。グループウェアとか。むしろビジネス的には、そこが一番重要なところなのかもしれない。

参考

AWS OpsWorks とは何ですか? - OpsWorks ユーザーガイド
https://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/welcome.html

aws/opsworks-cookbooks - Github
https://github.com/aws/opsworks-cookbooks

AWS OpsWorksハンズオン - SlideShare
http://www.slideshare.net/AmazonWebServicesJapan/aws-opsworks

AWS OpsWorks(™)のCustom Cookbooksレシピ開発役立ちメモ - Qiita sawanobolyさん
http://qiita.com/sawanoboly/items/147f550878477ff7723e

16
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?