サーバーの運用自動化からSimple ADでのデバッグ、SORACOMまでいろいろと
Elastic Beanstalk談義についていけなかったJAWS-UG岡山
2017年10月03日 07時00分更新
岡山県倉敷市。数年ぶりに訪れたら駅前に大きなショッピング施設ができていて便利でびっくりしたけれど、美観地区の落ち着いた雰囲気は変わらず。できれば地ビール片手に美観地区を散歩したかったけれど、相変わらずのキャンピングカー移動で叶わず。でも美観地区の美しさは楽しめた。なんてったって第7回JAWS-UG岡山勉強会の会場は美観地区にある「倉敷物語館」という実に風情ある場所だったのだから。
前半は難波さんを皮切りに3人続けてElastic Beanstalkによる自動化の話
JAWS-UG岡山は、年に1回程度というのんびりペースながら着実に活動を継続させ、筆者が取材したのは第7回目の勉強会。前半のお題は、Elastic Beanstalkを使った運用自動化一色! 1人目の登壇者である難波 和生さんは「自分でEC2をローンチしたら負けなのさ」という言葉から、Elastic Beanstalkを使った自動化の方法について語り始めた。
「Elastic Beanstalkを使ってみた感想は、とっても簡単という訳ではありません。でもElastic Beanstalkで作った構成をあとから見てみると、AWSの勉強になります」(難波さん)
勉強会で登壇する人が「簡単ではない」という話をこれから聞くのか、と筆者は軽く絶望感に包まれた。しかし難波さんの発表スライドタイトルは「週末趣味のAWS」とある。がんばるぞい、と気持ちを奮い立たせる筆者。
「EBSはAWSが提供するクラウド環境作成、構成管理ツールです。AWSのサービスを組み合わせて環境を自動構築してくれます」(難波さん)
ここまでは筆者でも理解できた。しかし次の一言でもう心が折れてしまった。
「Application内で異なるバージョンのEnvironmentを構築することもできます」(難波さん)
ああ、やっぱり手を動かしている人にしかわかんない話だこれ。Application内で異なるバージョンのEnvironmentを構築するってどういう意味? 構成自動化の概念は筆者にも理解できるが、個人で試したことがあるのはせいぜいEC2やWorkSpacesを立ち上げてみるくらいで、それもスポットでしか使ったことがない。運用を見据えた自動化の技術的な話にはとうていついていけなかった。それなのに、今回取材したJAWS-UG岡山勉強会は前半のすべてがElastic Beanstalkの話なのだ。がんばって聞いた中から、筆者が理解できた部分だけでもレポートしよう。
難波さんが試したのはマルチコンテナで、Elastic Beanstalkを配置し、データベースにはAuroraを使ったNextCloud環境の作成。ファイルシステムにはEFS(Elastic File System)を使い、NFSでマウントした。ノードに障害が発生して新しいDockerが起動しても、同じマウントポイントで参照できるようにするためのようだ。ストレージゲートウェイを使ってもNFSでマウントはできるようだが、マルチA-Z構成を取れないためEFSを使ったとのこと。
筆者が理解できたのはこのあたりまでだった。このあと肝心のebextentionsやelastickbeanstalk config.yml、dockerrun.aws.jsonの書き方やその際の注意点が語られたが、筆者のメモは「このあとテックな話が続いてさっぱりわからなくなる」と書かれて終わっている。
自動化話2人目の小西さんはElastic BeanstalkでRailsを動かした話を紹介
第1ラウンドですでにグロッキーな筆者に、次の刺客が襲いかかる。2番手の登壇者、小西 雅也さんだ。題目は「Elastic BeanstalkでRailsアプリ運用」と、またしてもElastic Beanstalk関連だ。今度こそ善戦してみせると、気を引き締める筆者。
「運用中のアプリのデータベースを持ってくるためにHeroku Toolbeltを実行してDBダンプを取得していたんですが、データ連携側の仕様変更などの場合に備えて、別アプリにしたいという要望が出てきました。EBSを使った理由は、社内でRails運用環境の新しいパターンを抑えておきたかったからです」(小西さん)
この後、またしてもテックな内容が続き、自分で書いたメモを読んでも理解できない。せめて、筆者が理解できた範囲で、Elastic Beanstalkを使う際の注意点をまとめるに留めたいと思う。
まず、設定はebextentionsにすべてまとめること。構成の試行錯誤中に、EC2にsshして手動操作してしまうことがあるという。ちょっと設定変えては試し、という繰り返しのたびにebententionsを書き換えて全構成を作り直すのは面倒くさいので、ついやってしまいがちだ。しかし「よしこれで動いた!」と思った環境が、sshで行なった手動操作を前提にしていたら、意味がない。次にEBSで自動構成したら、それは反映されないのだから。
「うまくいったと思っても安心せず、必ず全部消してEBSで再現できるかどうか確認を!」(小西さん)
KO間近と思われた筆者の前にAWSからの救済者現る
とにかく、学ぶのとデバッグが大変だけど、それを乗り越えさえすれば普段の運用が楽になる。それがElastic Beanstalkなんだな。そのくらいのことは理解できたが、裏付けとなる技術的な理解がないのでメモを取る筆者の頭は知恵熱状態。ああ、あんなところにきれいなお花畑が……。
現実とは無情なもので、アッチ側に行っている暇もなく次のセッションが始まった。AWS 西日本担当 ソリューションアーキテクトの藤原 吉規さんだ。セッションタイトルは「実務で役立つAWS活用方法」とある。実務経験と知識のなさでグロッキーになっているところにトドメを刺しにきたか。
「Elastic Beanstalkとは何かというと、インフラの構成や構築、デプロイを自動化のしてくれるサービスをです。提供されているテンプレートからデプロイすることもできるし、カスタム構成を作ることもできます。Elastic Beanstalk自体は無料で利用できますが、それによって起動されるリソースに課金されます」(藤原さん)
その後、Elastic Beanstalkを使う際に気をつける点やいっしょに使ってもらいたいサービスの紹介が続いたが、さすがは中の人と言うべきか、筆者にもElastic Beanstalkの概要がわかったよ! ただし長いセッションだったので、こちらは別の記事に改めてまとめたいと思う。よかった、お花畑に行ってしまう前に藤原さんが現れてくれて。
この連載の記事
-
第9回
デジタル
もともとサーバーレスな田舎で、もっとAWSを活用していこう -
第8回
デジタル
構成はElastic Beanstalk、監視はCloudWatchを賢く使おう -
第6回
デジタル
AWSによるDevOpsの考え方とプラクティスをAWSJ藤原さんが例示 -
第5回
デジタル
DevOpsの効能とドロドロした現場話をWardish三戸さんが語る -
第4回
デジタル
OpsDevじゃダメ?DevOpsについて熱く語ったJAWS-UG広島 -
第3回
デジタル
AWS導入の説得に失敗し、kintone導入を成功させたエンジニアの話 -
第2回
デジタル
徳島で勝負するサイファー・テック吉田さんが語る地方活性化 -
第1回
デジタル
四国中の濃い人が集まるクラウドお遍路はうどんに負けない歯ごたえ -
デジタル
JAWS-UG中国・四国勉強会レポート - この連載の一覧へ