Reboot完了!潮風とピザの香りが漂うJAWS-UG横浜に行ってきた

アスキー 2016年11月28日(月)07時00分配信

こんにちは。横浜と聞くだけで、ブルーライトヨコハマが脳内再生される80年代育ちのオオタニです。さて、11月2日に参加してきたのは、約2年ぶりにrebootされるというJAWS-UG横浜の勉強会。神奈川県育ちのオオタニが潮風たっぷりの勉強会の前半をレポートしますよ。

po
雨が降って来ちゃったけど、夜景が美しい港町横浜でJAWS-UG横浜がReboot!

横浜愛あふれた告知ページから申し込み

 2012年11月に発足した老舗支部のJAWS-UG横浜だが、この2年ほど事実上活動を中止していた。吉田真吾さんをはじめとするコアメンバーが横浜から都内に移住してしまい、この数年のクラウド市場の急成長でメンバーが多忙をきわめたこともあり、勉強会を開催する余裕がまったくなかったというのがその実情。2年前のJAWS DAYSで支部インタビューした際、次回の開催を聞いた時に吉田真吾さんがそっと目をそらしたのを、私はしっかり覚えている(笑)。東京のベットダウンである横浜の場合、多くのエンジニアはわざわざ地元の勉強会に参加しなくても、都内の勉強会で事足りるという事情もあっただろう。

 そんなJAWS-UG横浜支部がついにRebootされると聞いて、元神奈川県民、実家が中華街の横にあるオオタニとしては心が躍った。そして、Connpassの募集サイトを見て、さらに心が躍った。スポンサーや参加プログラムの後、ほぼページの半分を費やして横浜の魅力が書き連ねられていたからだ。「1. 氷川丸にみる先進的な国際性」「2. 道の広さにみる住環境の良さ」「3. 歴史と現在が融合する横浜赤レンガ倉庫」「4. なんでも揃う横浜東口?みなとみらい地区の魅力」「5. つねに変化する駅、横浜」「6. 品川までたった18分、渋谷までたった27分」「7. 鎌倉までたった24分」と熱いコメントを連ねた後に、「横浜の魅力が少しは伝わりましたか?それでは当日、馬車道(アトラシアン)でお待ちしております」とまとめた豪華な横浜アピール。「おい、真吾長げーよw」と心の中でツッコミながら、せっかくなのでReboot祝いをすることにした。

po
JAWS-UG横浜Rebootを祝してピザを頼むことに

 ということで、ドミノピザのガイドに従って、25枚くらいのピザを用意。日常生活で25枚のピザを頼むことなんてないので、「明らかに多いよな。経費精算通らなかったらどうしよう……」と思いつつも、眠かったのでさっさとポチる。真吾さんにオーダーした旨を伝えると、「ありがとうございます!っていうか25枚って!!!!www」という返事。「そうだよね。やっぱり多いよね」と思ったけど、時すでに遅し。真吾さんもさっそくConnpassのページにASCII.jpロゴを載せてくれた。

Next Step!!の前に無限ピザで腹ごしらえ

 渋谷から東横線の特急に乗って約30分(東横線の急行はほぼ鈍行とニアリーイコールなので、特急でぜひ!)。みなとみらい線の馬車道駅で下車すると、さっそくブルーライトヨコハマが脳内再生される。みなとみらいの美しい夜景を横目に海側へ徒歩7分くらい、「この先はもう港だよねえ」と思うくらいの海側の倉庫に会場となるアトラシアンオフィスはあった。高い天井がまさに倉庫だけど、リノベーションされていて、木目の壁もかっこいい。こんな会場を貸し出してくれるなんて、さすがアトラシアンさん!まじ、アトラシアンさん!

po
コワーキングスペースのようなアトラシアンさんの会場

 スタートの緩やかなJAWS-UGなので、18時半の時点で会場到着している人は少ない。元AWSエバンジェリストで現在は旅人の堀内康弘さんによるハンズオンに参加している人も当然ながらちょっぴり。「なんだかもったいないなー」と思っていると、ケータイが鳴り、会場にドミノピザがやって来た。25枚なので、当然2人がかり。会場の横のスペースにあるテーブルにうず高くピザが積まれる。「本当に食べきれるかしら……」と改めて不安がよぎる。

po
データセンターに大量納品されるサーバーのごとく、スタックされたピザたち

 さて、今回の勉強会は、20分のLT×4と5分のLT×4本という構成。トータルテーマは「Next Step!!」。つまり、どんな人でも楽しめる内容にしつつ、玄人でも得るものがあるよう、少し掘り下げて行こうという内容のようだ。19時頃には会場にポツポツ人が増え始め、顔見知りのメンバーも続々と登場。「ぶっちゃけ、もう横浜住んでないんだよねー」(要約)という吉田真吾さんの挨拶とSection-9スポンサーのビールで乾杯しながら、19時過ぎに勉強会の本編がスタートした。

AMIMOTOに一工夫でリッチなブログサイトを作れる

 真吾さんの「見てください、この懐かしい顔!」という紹介で登壇したのは、前の時間でハンズオンを担当した堀内康弘さん。堀内さんは「WordPress using AMIMOTOのNext Step!!」というタイトルで、初心者でも簡単にブログサイトを立ち上げられるAMIMOTOのパワーアップについて説明した。

po
懐かしい顔の旅人堀内康弘さんが初心者向けのブログサイト構築を語った

 堀内さんは2年前にAWSJを辞めて以降、仕事のやる気をなくして、世界中を旅している自由人。とはいえ、旅の合間にクラウドの自動化を推進するMobingiの開発を手がけたり、AAI(AWS Authorized Instructor)としてグローバルナレッジネットワークでAWSのトレーニングを担当したり、意外と精力的だ。

 さて、旅人の堀内さんは「旅をお金に換えよう」ということで、「出不精夫婦が暮らすように旅するブログ」を運営している。EC2上にWordPressのAMI<3773>である「AMIMOTO」(デジタルキューブ)を導入し、Elastic IPでIPアドレス、DNSサービスのRoute53で独自ドメインを割り当てている。いわゆるもっともベーシックなWordPressの初期構成で、「月が15~16ドルくらいで実現できる」というものだ。

 続いてNext Step!ということで、堀内さんはホワイトペーパーでも公開されている「AWS Well-Architected Framework」に沿って、WordPressサイトを改善していく。AWS Well-Architected Frameworkは、質問集に答えることで、既存のAWS環境がAWSのベストプラクティスに沿っているか検証できるというもの。セキュリティ、信頼性、パフォーマンスと効率、コストの最適化の4つを目的としたこのフレームワークで、先ほどのAMIMOTO環境を検証してみようというのが、堀内さんのLTの趣旨だ。

po
AWS Well-Architected Frameworkでブログサイトを強化する

 検証・改善の方針としては「コストはなるべくかけたくない」「サービスに問題があったら、自動復旧されるのが望ましいが、最悪それに気づくことができればOK<3808>」「パフォーマンスはいいにこしたことはないが、コスト重視」「セキュリティもコストに響かない程度に強固に」などを挙げる。総じて、「コストは抑えつつ、セキュリティや信頼性、パフォーマンスにもそれなりにこだわりたい」というわがままをAWSで実現しようという方針だ。

 まずセキュリティに関しては「IAMユーザーでログインし、MFAを有効化する」といった初期設定を行なったのち、常時オープンは80番ポートにしぼり、SSHは必要な時のみとすることで「セキュリティグループは極力閉じる」。「WebサイトをSSL化する」ためには、ACM(Amazon Certificate Manager)により、無料の証明書を導入する。

po
セキュリティグループは極力閉じる。Webサイトも常時SSL化

 信頼性に関しては、単体のEC2だと不安なので、オートリカバリの機能を有効にする。また、EBS(Elastic Block Storage)の容量があふれても大丈夫なよう、ディスク容量を検知するCloudWatchのモニタリングスクリプトをインストールし、アラートを飛ばせるように。さらに1日1回スナップショットを取得すべく、Lambdaを用意しておく。「プログラムできないと無理と思っている人もいますが、だいたいググればコードもいっしょに出てきます。無料枠もあるので、お金もかかりません」と堀内さんは語る。

 パフォーマンスに関してはCDP(Cloud Design Pattern)のWebストレージパターンに沿って、楽しい旅行の写真をAmazon S3に保存するよう設定。WordPressのプラグインを使えば、写真をS3に保存できるという。また、コンテンツの配信はすべてCDNであるCloudFrontを経由させる。堀内さんは「CloudFrontにSSL証明書をインストールできるので、サイト全体をSSL化できる。あと、動的コンテンツもCloudFrontを経由すると、EC2までの経路を最適化してくれるので、パフォーマンスを上がる」とCloudFrontを利用する背景を説明。この際は、S3のコンテンツが必ずCloudFront経由で配信するよう設定しておく必要があるという。

 コストの最適化に関しては、RI(Reserved Instance)の購入を検討すれば、「半年以上続けようと思えば、コストも5~6割近く削減できる」という。全体で見ると、EC2インスタンスを1つで動かしているのとほとんど変わらない程度のコストで、ここまでバージョンアップできるという。

po
現在の堀内さんのブログの構成。CloudFrontをEC2の手前にハ配。データはS3に格納し、Lambdaでスナップショットを取得

 堀内さんは、「『出不精』で検索すると、『出不精で夫が太って困る』というYahoo!知恵袋の次くらいに出てくる(笑)」とブログの宣伝をしつつ、初心者向けのセッションを終えた。シンプルなAWSの構成に一工夫加えるだけで、ブログサイトがいろんな意味でリッチになるという内容がとてもためになった。

長沢さんが語るCodeDeployとアトラシアン製品の相性

 堀内さんのセッションが終わるくらいには、人も集まり、すっかり温まった感のあるアトラシアンオフィスの勉強会会場。開始前にけっこう飲食したにもかかわらず、「ピザが残り9枚。金麦が残り30本くらい」という中間報告を聴衆に告知した吉田真吾さんは、「CodeDeployを使う上でのNext Step!!」というタイトルでセッションするアトラシアンのエバンジェリストの長沢智治さんを紹介する。

po
アトラシアンのエバンジェリストである長沢智治さん

 ハッシュタグを付けたツイートが流れると、スライドの上にリアルタイムに表示されるというちょいウザ実装を披露した長沢さんは、職歴や執筆した書籍、登壇活動などを簡単に紹介した。Code Deployについては、「デプロイをよろしくやってくれる素晴らしいサービス」とわりと雑に紹介されたが、実際のスライドでは「複数インスタンスへのデプロイ」「ローリング更新とロールバック」「デプロイのリビジョン管理」「継続的デプロイツールとの連携」などきちんと説明されていた。

 続いて長沢さんはCode Deployの動作についておさらいする。Code DeployではまずビルドセットとAppSpecというYAMLファイルをS3に配置。その上で、ロジックとメタデータを元にCode Deployに指示を出せば、あとは勝手にデプロイをしてくれる。長沢さんは実際のミニデモを披露しつつ、ソフトウェアの「価値のパイプライン」という話に焦点を移す。

po
まさにコードのデプロイを自動化するCodeDeploy

 一般的なソフトウェア開発プロジェクトではまず企画立案があり、優先順位付け、タスク分析を経て、実際のコードを記述。ビルドを繰り返した後、品質を満たすモノをデプロイすることになる。これが長沢さんが語る「価値のパイプライン」だ。「せっかくやるのであれば、デプロイだけではなく、企画の段階から価値のパイプラインを形成していただきたい」と語った長沢さんは、各フェーズに対応するアトラシアンのツールを紹介する。

 企画フェーズであれば「Confluence」、優先順位付けやタスク分析は「JIRA Software」、コード管理は「Bitbucket」、ビルドは「Bamboo」などだ。これらのツールをチェーンとして並べて、価値のパイプラインを構成できるのがアトラシアンのメリット。しかも、パイプラインの各ツールは、BacklogやSlack、Jenkinsなど他のツールに置き換えても問題ないという。

po
価値のパイプラインを実現するアトラシアンのツール群

 長沢さんは担当ごとのタスクが管理されたJIRAのカンバンボードを披露し、プロジェクト全体が俯瞰できるメリットをアピール。「タスクごとにコードの履歴を追える。コードレビューにどうやって出したのか、自動ビルドの状況、最終的にどこにデプロイしたかまで流れを追うことができる」(長沢氏)とのことで、企画や運用まで含めて、全部追えると説明した。

 また、ビルドツールのBambooでもCode Deployをタスクとして指定できる。どのユーザーで実行するのか、どのリージョンで実行するのか、どのS3に格納するのか、などのプロパティセットを設定すれば、Code Deployにタスクを渡しつつ、状況を追えるという。さらに継続的なインテグレーションをサポートする「Bitbucket Pipelines」を使えば、Dockerを使ったビルドやデプロイまでを自動化できる。長沢さんは実際にデモを披露し、Bitbucketがコード変更をきちんとフォローし、デプロイ先に反映できる点をアピールした。

po
Bitbucket Pipelinesを使ったビルドやデプロイの自動化

 前職の日本マイクロソフトも含め、開発のライフサイクルを一貫して手がけてきた長沢さん。プログラマーではない私にとっては多少難しい部分もあったが、価値のパイプラインという話は納得できた。また、アトラシアンのツールだけではなく、OSSをうまく組み合わせられるところもメリット。AWSに欠けている開発者向けの機能をうまく補ってくれる強力なソリューションと言えよう。

 後半はAWS IoTのNextStep!と横浜のカヤック<3904>による「RDS MySQLからAuroraへ移行した話」をお届けする。

アスキー
もっと見る もっと見る

【あわせて読む】

    最終更新: 2016年11月28日(月)07時00分

    【関連ニュース】

    【コメント】

    • ※コメントは個人の見解であり、記事提供社と関係はありません。

    【あなたにおススメ】