amareloのブログ(仮)

IT系勉強会で感じた想いや知見をメインに書いていきます。

planioを使う理由と今後の付き合い方

この記事は Redmine Advent Calendar 2020 の 8 日目の記事です。

adventar.org

今年の1月末にPlanioを使い始めた話を書きました。そろそろ1年近く経とうとしていますので、改めて使ってみた所感と今後どう使っていくかを書こうと思います。

目次

planioを使い始めた時に書いた記事

amarelo24.hatenablog.com

なぜplanioを使っているのか?

実は、昔参画したプロジェクトでRedmineを使った進捗管理をしたことはあります。 しかし、その時はRedmineの良さが分からなかったことと、チケットを切ることで何かツッコまれたり糾弾されたらどうしよう…と、 チケット切ることへの抵抗とRedmineそのものへの恐怖心がありました。

時は過ぎ、インフラ勉強会やredmine.tokyo、redmine.osakaでRedmineの良さや業務を改善したことを語る方々のお話を聞くことで、 Redmineに対する抵抗と恐怖心が薄くなり、自分もRedmineを使いたいと思うようになりました。

とはいえ、今の職場はいまだにExcel管理が強い職場…なかなかすぐの導入は難しい。 ならば、自分のタスク管理でRedmineを使ってみてナレッジを蓄積しよう!と思いましたが、 自宅内からしかアクセスできないところに構築したら途中で確認しなくなる恐れがあると思い、 自宅内だけでなく外からスマホアプリでもアクセスできるplanioを選択した、というのがplanioに至った経緯です。

現在の使い方

使い始めた時の記事から大幅に変わっておらず、自分のタスク管理がメインです。主に、

に活用しています。

こんな感じでチケット切って、ガントチャート作って管理しています。

f:id:amarelo-n24:20201208224839p:plain

期限近くになったら自分に発破をかけるべく、Slackに個人チャンネル作ってそこに通知送るようにもしています。 勉強や読書をサボらないようにするためのリマインドにするためです。 それでも、仕事のタスクの方が優先になるため、すべてに対して自分が決めた期限を守れるわけではありません… 数日終了が遅れても後でリカバれば良いものばかりなので、あまり厳密に考えずにゆるくやっています。

今後はどう使っていきたいか?

決めた期限を超過してリカバリもできたとしても、 どうしたら上手く時間を使えたか、どうしたらあまり時間をかけずに進捗させることができたかを振り返る必要はあるかなと思います。 今までそこまで考えずにplanioを使っていたので、今後は意識したいです。

また、自分のタスク管理だけでは、どうしてもより良い使い方に気付きづらい、と感じています。 やはり他人に使ってもらい、もっと効率化の観点を図りたいです。 職場に入れるよりハードル高いかもですが、自分が関わる活動(本業ではなくプライベートで関わっている団体の活動)の進捗管理、課題管理にplanioを使うよう提案することも考えています。 上手くいけば、よりナレッジを増やせるかもしれません。 今は無料の範囲で使っていますが、場合によっては有料にするのもアリかなと思います(所属団体からお金出してもらいたい)。

あとは、先月のredmine.tokyoの感想でも書きましたが、ヘルプデスク機能はぜひ使いたいですね。 これを使えることで、プライベート活動の問い合わせ管理、本業の方の問い合わせ管理や課題管理に効果的かなぁと思います。

まだまだplanioを使い込めていないため、上手なplainoと付き合い方を模索しながら使い込みたいです。 そして、得た気づきをブログ執筆やredmine.tokyoなどの登壇で発信し、貢献できればと考えています。

最後に

プラグインを使ったりして便利に使えるようにしたい気持ちもありますが、個人のタスク管理で使うならば、planioの機能は必要十分かなと思います。これからもplanioにはお世話になります!

テクニカルな話ではなく、内容も薄いかったかもしれませんが、最後まで読んでいただきありがとうございました!!

コーヒー「こつ」の科学

この記事はCoffee Advent Calendar 2020 1日目の記事です。

…が、1日目と言いつつ、公開が2日も送れてしまいました(涙)申し訳ありませんっ!!

今回は、私がコーヒーに興味を持ちはじめた時に読んだ書籍、『コーヒー「こつ」の科学』という本を簡単にご紹介します。

www.shibatashoten.co.jp

www.amazon.co.jp

この本には、

  • コーヒー豆の生成、品種
  • コーヒー豆の成分
  • コーヒー豆の買い方のポイント
  • コーヒー抽出のポイント
  • コーヒー豆の焙煎

等についてクエスチョン・アンサー形式で書かれており、コーヒーとは何ぞやということが網羅されています。誰もがコーヒーに興味を持った時に考える疑問に答えてくれるような形で読みやすいと思います。

私はこの本でコーヒー知識の基礎を勉強しました。コーヒーに品種があること、コーヒーに含まれる成分については、この本ではじめて知りました。出版から10年以上経つ本ですが、何度も読み返しました。電子書籍はありませんが、いつでも読み返せるよう電書も欲しいです。

コーヒーの焙煎、抽出、飲む専門・・・取っ掛かりは何であれ、コーヒーの道に入った人がはじめて読むにはお勧めの本だと思っています。

ぜひ読んでみてください!

「ここから変える、業務改善の景色とミライの働き方」参加レポート

11/24(火)「ここから変える、業務改善の景色とミライの働き方」『業務改善の問題地図』刊行記念クロストークに参加しました。 1時間半、あっという間のイベントで、今後業務改善をしていくための勇気をもらえました。 参加レポートを書いていきます。

目次

イベントページ

connpass.com

トークセッション(沢渡さん)

  • 改善推進経験は一生モノの武器になる!

トークセッション(元山さん)

  • 「かくあるべき」を疑う必要があるのは、業務改善そのもの。働くことは人生そのもの。
  • 業務改善していくことで、日々の生活を改善していく。自分の人生を楽にできる。
  • 新しい働き方が求められる現代こそ「業務改善」スキルを必要とされている。
  • 「業務改善」の考え方はプライベートでも役に立つ。

クロストーク

  • 沢渡さんと元山さんの初めての接点

    • 元山さんが沢渡さんのブログに共感してメッセージを送ったことがはじまり。
  • 業務改善の問題地図を書いたキッカケ

    • 編集者からのオファー。業務改善について書こうとしたときに元山さんのことを思い出した。
トピック1:「業務改善」と「業務改革」の違い
  • 業務改善
    • すぐに変えられるもの
    • 単一組織で変えられるもの
  • 業務改革

    • 抜本的に変えるもの
    • 横の連携、他の複数組織とコラボレーションして変えていくもの
  • 業務改善の最初は「廃止」。

  • 組織の問題、課題を随所で現場と経営側で景色合わせすることが大切。
  • 法制度や商慣習も変わっていかなければならない。すぐの変化は難しいので小さな世論、声を上げていく。
  • 改善の積み重ねが改革につながる。
トピック2:実現したい何かがあるときに、上司に反対されたり他部署から横槍が入る
  • 半径5m以内(私たちが出社する職場の範囲)の問題を言語化して声を上げて、リアリティを理解してもらうこと。
  • 事実ベースで言語化して、可視化して共有すること。
  • 言葉の定義が違うと思うので、あいまいな言葉を避ける。
  • 相手も自分も問題に対して色眼鏡で見ているところがあるので、景色合わせが大切。
  • 不満不平を言っているだけでは一般ピープル。不満の背景には何があるかを理解し、立場が違う人と景色を合わせる。それが一般ピープルと推進者の違い。
  • 問題を構造化して事実ベースでとらえる。役割分担をして、誰かひとりのせいにしない。正しく成長するために。
  • 変化のモヤモヤをうまく刺激されちゃうと人は誰でも(自分自身も)抵抗勢力になる。
    • そのモヤモヤポイントをつかんでそれを埋めるために何をすべきか考える。
    • 対話を通じて環境を作っていくことが大事。
トピック3:自分が変わった時に意識しておくことは?
  • 自分が想いを持って取り組むこと。ただし、自分一人が騒いでいるだけでは変わらない。
  • 手を変え品を変え景色を変え、小さな変化を生んでいく。振り返りをしていく。
  • 職位が上がったら決定に腹をくくる!
  • 改善できない組織、改善を認めない組織・上司は、従業員の組織へのエンゲージメントを下げていく。
    • エンゲージメントが低い人の中には「自社が恥ずかしい、情けない」という人もいる。そうならないように。
  • 幅広い視点を持って改善に臨んでほしい。点でなく面で問題をとらえる。
    • そうすると抵抗勢力が抵抗しなくなり、流れに乗ってもらえるようになる。
  • 変化のファンを増やしていく。
トピック4:地道に継続するために必要なこと
  • 沢渡さん

    • ファンを見つける。仲間を見つける。
      • 社内にいなければ社外に見つける。外にいる人とつながれば、自分のやりたいことの力になってもらえる。
    • もう一段上のテーマを見つける。
      • 先のテーマがないと共感者が増えない。景色合わせができない。
  • 元山さん

    • 個人のありたい姿を設定して未来や夢を共有する。
    • 大きなことをやらないこと。即実行、即実感できることをやる。
      • 実現したらみんなで拍手し合う。小さく回していくこと。
  • 改革・改善を進めるキーパーソンになる人

    • 制約条件が大きく、かつ成長欲求が大きいこと。
      • 制約条件が大きい人に合わせると組織はどんどん変わっていく。
参加者からの質問
  • 業務改善・改革の実現のためにビジョン等を変えた事例はありますか?

    • 業務改善のためにビジョンを変えるのは前後関係が逆。
      • ありたい姿を実現するために改善すると継続的改善しやすい。
      • 会社のビジョンだと大きすぎてあいまいなので、ビジョンの小口化が良い。
  • 動かない人を動かすには?

    • そのチームの困りごとを言語化してほしい。
      • 属人化する、手戻りするなど。それを解決していく。
      • 業務の中で改善を体験してもらう。その設計をすること。
        • その面白さを知ってもらえれば、自走化した組織になる。
  • 沢渡さんの考え方のベースになっている思想?思考法?

    • 日本の同調圧力に嫌気がさした。
    • 日本をアップデートしたい。
  • 通常業務より優先順位が下がるためなかなか話が前に進まない。どうすればリソースを割いてもらえるか。

    • 緊急中毒者(忙しいとテンションが上がる人)がいる職場だと、中長期的な業務改善をする意識がない。
      • メリットを示す。お得感を示す。
      • 1日12分でもいいから改善してみるよう言ってみる。
    • 同じ問題意識をもっていると思われる人と一緒に本を読んだり勉強会に出たりして、共感ポイントを見つける。
  • すでに他部署とつなっている業務を改善しようとしてうまくいかない。

    • まずは問題構造を図にすること。変えるか変えないか、どこを変えるかが見えてくる。
    • 改革になるので部門長同士が動けるよう連携をとる。
まとめ
  • 業務改善のスキルを求められている時代だけど、知を結集させて社会を良くしていきたい。新しい働き方を作っていきたい。(元山さん)
  • アップデートし続ける組織が人が最後に笑う。(沢渡さん)
    • いまの答えが来年は変わってくるかもしれない。そういう心構えを持つこと。

感想

私は今、仕事だけでなくプライベートで所属しているコミュニティでも、今まさに改善したいと思っていることがあります。 ただなかなかうまく進められなくて悩んでいました。今の自分にできていないのは、

  • 景色合わせ
  • 問題の構造化
  • 個人のありたい姿を設定して共有

特にこのあたりかと思いました。自分自身が問題だと思っても、色眼鏡をかけてみていて的外れだったり、言い方が大局的過ぎて周囲に伝わりきっていなかったかもしれません。 頑張っているつもりでも空回りして疲れてしまわないためにも、業務改善スキルを適切に身に付けて成長するためにも、景色合わせと問題の構造化は大切なことだと思いました。 特に、自分がなぜ改善したいのか、その個人のありたい姿を共有するのは、リーダー、責任者として示さなければと思いました。 自分の言葉で想いを話せれば理解してくれる人、協力してくれる人は出てくるはず。信頼してもらうためにも「想い」も景色合わせしたいと思いました。

また、「不平不満を言っているだけでは一般ピープル」という言葉が一番印象的だったと思います。 不平不満を言うこと自体は悪いことではないと思います。しかし、そこで終わってしまっては社会に価値を出すことはできず、自分自身にも健康的ではないと思います。 何が問題なのか、制約がある中でどう生きていきたいのかを考えながら仕事していく方が大変だけど、成功すれば楽しいはずです。 最近私は仕事やプライベートで関わっていることに自分事で取り組もうと意識していますが、まだもう一歩踏み込めていない実感があったので、頭を殴られたような感覚でした。

やはり一般ピープルより組織ファシリテーター(業務改革推進者)でありたい!

自分に不平不満があるときは、そこで終わらないように向き合って、どうしたいのかを言語化・可視化したいと思いました。

1時間半聴講して、「自分はまだまだやれること、考えられることはあるはず!」と勇気が出てきました。 不器用な自分は、上手く体現できずにツライ気持ちになることがまだまだあると思いますが、 今日聴講したことを思い出しながら、業務改善の問題地図を読み返しながら、進めていきたいです!

ウェブ・セキュリティ基礎試験を受験します

次の資格試験目標としてウェブ・セキュリティ基礎試験を受験したく、準備をはじめました。 ちょっとそのことを書こうと思います。

目次

ウェブ・セキュリティ基礎試験とは

こちらをご参照ください。

www.phpexam.jp

試験範囲は「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版」(以下、徳丸本)です。

www.amazon.co.jp

受験のキッカケ

私は所属企業で、公開ウェブサイトのセキュリティ対策の推進を担当しています。 担当になってからそこそこ年数は積みましたが、

  • 知識を定着させて、迅速で適切な判断を自信を持ってできるようになりたい。
  • ウェブセキュリティの重要さを話せる人材になりたい、
  • 新しくウェブサイトセキュリティ対策の担当者になった際に、教育できるようになりたい、

などなど、思う所もあり勉強と受験をすることにしました。 業務担当の関係もあり、徳丸本(第二版)は発売された段階で購入していました。 そのため、受験における追加コストをかけずすぐに挑戦開始できるため、 四の五の言わずとりあえずやってみようと思った次第です。

まず1章を読みなおして

脆弱性があると顧客に嘘をつくことになる」

この言葉の通りだなと思いました。 個人店舗に例ると、お店を開いている以上、店員や店長はその道のプロであるという前提でお客様は買い物に来るはずです。 聞かれたことには答えられるようにしておかないとカッコ悪いし、お客様によっては二度とそのお店には来ないと思います。

ウェブサイトも同じだと思いました。 顧客は公開されているウェブサイトを安全であること前提で見に来ます。 見に行ってウイルス感染した、別サイトへの攻撃に加担したなんてことがあったら目も当てられません。

脆弱性が生まれる理由としては、

  • バグによるもの
  • チェック機能の不足によるもの

の2つ。脆弱性をまったく対応しないのは論外ですが、目に見えるバグ(脆弱性)を適切に対応する必要があります。 それでも、すべて完璧になくすのは難しい、チェック機能がなくても安全だったものが安全でなくなる、といったことが考えられますが、 新しくできた穴を突かれることで顧客に嘘をつくことになって顧客の信用を落とさないよう、努力し続けなければならないと思いました。 1章を読んで気が引き締まりました。

受験までの予定

今は徳丸本を読みなおしています。今後は勉強して理解したことをここに書いていければなぁと思います。 理解したことをちゃんと書ければ大丈夫なはず。大幅に間違っていることを書かないよう注意しないと…

個人的に忙しいのと、ある程度理解を深めてから臨みたいため、試験は来年3月を予定しています。

他にも読みたい本があったり、勉強したいことがたくさんあるので、時間を作るのが大変ですが楽しく勉強していこうと思います。 無理だけはしないように頑張っていこうと思います。

今回は決意表明的なものにして、今日はここまでにしようと思います。読んでいただき、ありがとうございました!!

第19回redmine.tokyo勉強会 参加レポート

11/14(土)Redmine Tokyo に参加しましたので、レポートを書きます!

ただ、今回都合で一部分しか参加できていないこと、YouTubeで後追い視聴をできていないため、 昨日しっかり聞けたところだけでも感想を出したいので、取り急ぎレポートを書きました。 YouTubeで後追い視聴して、追加で概要と感想を書きます(書けたら…)。

目次

イベントページ

redmine.tokyo

YouTube

www.youtube.com

感想(11/15現在)

今回まずは感想から。概要は後述します。

私は個人でPlanioを使っているため、@ryocomoestaさん のPlanio導入事例が一番興味深く聞けました! ヘルプデスク機能があることを全く知らなかったため、Planioの可能性が広がりました。 実業務でPlanioを使えないか、検討したくなりました!

しんやさんのチケットで退職届の話は強烈でしたw 出した人もその勇気は凄いと思いますが、出してはいけない勇気だなぁと思いましたw

パネルディスカッション1では、Redmineを推進するにあたり、

  • 理解を促進する活動
  • どうしたら使えるようになるかの解決思考アプローチ

が大事だということを知りました。これはどんなシステムでも導入初期には大切な活動だと思いますので、 今後の業務で意識したい点だと思いました。

毎回、導入時の方針と運用設計がいかに大事か思い知らされ、勉強になります。 何の挨拶もせずに途中退出して申し訳ない気持ちです。 次回はしっかりと日程調整して腰を据えて参加したいです。

セッション概要

第19回 パネルディスカッション1:続 なぜRedmineによるタスク管理が失敗するか
Redmineによるタスク管理が失敗する理由
  • 完了できないチケットが増えてしまう。
  • 入力されないタスクが多数発生してしまう。
  • チケットには期日を入力しているが守られない。
  • 定期的にタスク棚卸をしなかった。
  • タスク管理のリーダーシップをとる人がいない。
体験①:増えないチケット
  • プロジェクト管理が楽になるという触れ込みのみで導入した。
  • 運用方法が分からず時間を取ることが煩わしくなった。

  • 原因

    • 真の失敗原因は、楽になるという妄想で導入を決定し、使い方のイメージ共有を怠った。
    • チケットの書き方や運用ルールを決めずに運営して、プロセスやルール決定を怠った。
体験②:減らないチケット
  • チケットテンプレートを導入して書かないということはないのだが、どんどんチケットが増えていく。

  • 原因

    • 緩いルールで運営開始してその後のルール改善を怠った。
    • チケットクローズの条件を明確にできていない。
    • チケットの機嫌を過ぎても放置されている。
体験③:Redmine導入に至らなかった
  • ドキュメントがない
  • FAQがない。作成を依頼しても作ってくれない。
  • 問い合わせ記録がない。
体験④:うまくRedmineに導入できた話
  • コロナ禍のリモートワークを機にRedmineに移行。このルールで上手く回している。

    • トラッカーをタスク・QA・サポートの3つに絞る。
    • ステータス、バージョンは管理者にて管理する。
    • チケットの修正、クローズ時は理由を明確にする。
    • チケット完了条件を明確にする。
    • 通知メールに頼らずに毎日ログインして「活動タブ」を見る。
  • 要因

    • 再体現のルールでスタートし、タスク化に注力した。
    • 担当者、期日が明確になった。
    • 「活動タブ」を見ることでキャッチアップが容易になった。
体験⑤:何で乗り気じゃないのかと思ったら
  • Redmine導入したが変化に乗り気でないメンバがいた。

    • ヒアリングしたところ、表示や入力に関する不満が原因。
      • 設定を調整したりプラグイン導入することで不満が解消した。
    • Redmineの基本性能を把握していないメンバがいることが分かった。
  • 成功ポイント

    • 原因追及でなく、解決思考のアプローチ(どうしたら使えるようになるか)で、利用者に寄り添った対応をしたこと。
    • 理解を促進する活動が必要。
体験⑥:何でその機能使っていないの?
  • ExcelでやっていたことをRedmineに移行しただけ。

    • 根拠不明な進捗率管理から工程別の子チケット管理に切り替えた。
    • 1チケット2週間以内のルールを設定、大きなチケットは細分化し登録するようになった。
  • 成功ポイント

    • チケットの粒度や分け方はルールを設定しチームで意識を合わせる。
まとめ
  • RJ2020で出た失敗する要因

    • プロセスやルール
    • ツールの使い方
    • コミュニケーション
    • 心理的安全性
  • 失敗する要因を掘り下げると

    • 問題を他責にしている。
    • 解決志向のアプローチをしていない。
    • 直感的に使いづらいところもある。
      • Redmineを使いづらいという理由でツールに対して他責にして、どうすればよいかが置き去りにされているのでは?
  • どうしたらいい?

    • まずは自ら行動する。
    • 上手くいかせるためには継続的に考える。
    • コミュニティを活用しよう。
LT: Planioと私の604日 @ryocomoestaさん
Planioを選んだ理由
  • メンテナンスしたくない。
  • Planioの方が機能多い。
  • 各種ベンダとの連絡手段として利用した。
    • くたばれPPAP!の精神で。
  • 作業管理を管理する。
    • 時間管理機能でベンダ作業時間を管理。
  • 他社との情報共有
  • ヘルプデスク機能
    • 外部からの問い合わせ先として、ヘルプデスク用メールアドレスを別に用意する。
LT:こんなRedmineの使い方はイヤだ!の紹介 ながやす しんやさん
第4位:全チケット全員ウォッチャー
  • 毎日数千件の通知メールが届く。
  • まともに確認すると一日が終わる。
  • ML代わりに使う人も出る。

  • 対策

    • 必要な人だけをウォッチャーに設定しよう。
    • 全体連絡したいときはニュースを活用しよう。
第3位:半年先のガントチャート
  • PMから「半年先まで1日単位でチケットを作れ」という無慈悲な指示。
  • ちょっとでもスケジュールズレるとチケットの期日を修正しまくる必要がでる。

  • 対策

    • バージョンを活用して大まかなスケジュールを立てる。
    • 近い未来は細かく、遠い未来は大まかに。
第2位:塩漬けチケットの山
  • 1か月更新のないチケットを一気に却下したら凄く怒られた。ただし業務に何の支障もなかった。

  • 対策

    • ちゃんと定期の振り返りで棚卸をしよう。
第1位:退職届
  • これを超えるアクロバティックなチケットの活用方法を知らない。
  • どうやったらクローズできるんだ?
まとめ
  • ちゃんとプラクティスに則って使おう!

全体のまとめ

いつもより雑な感じになってしまい恐縮です。 冒頭書いた通り、YouTubeで後追い視聴して都度追記変更をしていこうと思います!

JAWS-UG CLI専門支部 #170R S3基礎 ライフサイクル 参加レポート

10/29、JAWS-UG CLI専門支部S3基礎 にてライフサイクルのハンズオンを受講しましたので、参加レポートを書いていきます。

目次

イベントページ

jawsug-cli.connpass.com

S3ライフサイクル概要

  • コスト最適にS3を使うためにライフサイクルを設定する。
  • ライフサイクルは、指定したオブジェクトを一定期間経過後に高いストレージクラスから低いクラスへ自動的に破棄または移行させていく仕組み。
  • 高いクラスから低いクラスへのみライフサイクルを設定可能。逆の設定はできない。
  • ストレージクラスは、高い順に、S3・S3 STANDARD_IA・INTELLIGENT_TIERING・ONEZONE_IA・S3 Glacier・S3 Glacier Deep Archive となる。
  • S3 Glacier,S3 Glacier Deep Archive はテープストレージに似ている感じ。
  • S3とS3 Glacier,S3 Glacier Deep Archive のSLAは99.9%
  • S3 Glacier,S3 Glacier Deep Archive は取り出しに時間がかかる。

ハンズオン

手順と構成図

手順一式はこちらです。また、今回のハンズオン構成図は以下の通りです。

http://prototype-handson-cli.s3-website-ap-northeast-1.amazonaws.com/handson_light-aws_service/handson_light-aws_service-s3_lifecycle/_images/handson-basic-lifecycle.png

コマンド

保守担当者想定のIAMユーザ作成に関するコマンド、S3バケット作成、ファイルアップロード部分のコマンドは割愛します。

S3ライフサイクルドキュメントの作成

以下、JSONファイルに書き込みます。

{
  "Rules": [
    {
      "ID": "temporary-objects",
      "Filter": {
        "Prefix": "tmp/"
      },
      "Status": "Enabled",
      "Expiration": {
        "Days": 1
      }
    },
    {
      "ID": "archive-objects",
      "Filter": {
        "Prefix": "archive/"
      },
      "Status": "Enabled",
      "Transitions": [
        {
          "Days": 0,
          "StorageClass": "GLACIER"
        }
      ],
      "Expiration": {
        "Days": 1
      }
    },
    {
      "ID": "short-keep-objects",
      "Filter": {
        "Prefix": "logs/"
      },
      "Status": "Enabled",
      "Transitions": [
        {
          "Days": 30,
          "StorageClass": "STANDARD_IA"
        },
        {
          "Days": 60,
          "StorageClass": "INTELLIGENT_TIERING"
        },
        {
          "Days": 90,
          "StorageClass": "ONEZONE_IA"
        },
        {
          "Days": 120,
          "StorageClass": "GLACIER"
        },
        {
          "Days": 210,
          "StorageClass": "DEEP_ARCHIVE"
        }
      ],
      "Expiration": {
        "Days": 211
      }
    }
  ]
}

このドキュメントで3つのライフサイクルを定義しています。

  • "ID": "temporary-objects"
    • Prefix: "tmp/" に作成したオブジェクトは、作成日から1日経過したら削除される。
  • "ID": "archive-objects"
    • "Prefix": "archive/" のオブジェクトは、オフジェクト作成日から日が変わったらS3 Glacierに移動する。さらにもう1日経過したら削除される。
  • "ID": "short-keep-objects"
    • "Prefix": "logs/" のオブジェクトについて以下のように動作する。
      • 30日経過:STANDARD_IAに移動する。
      • 60日経過:INTELLIGENT_TIERINGに移動する。
      • 90日経過:ONEZONE_IAに移動する。
      • 120日経過:S3 Glacier に移動する。
      • 210日経過:S3 Glacier Deep Archiveに移動する。
      • 211日経過:オブジェクトを削除する。
S3バケットのライフサイクルの作成

`s3api put-bucket-lifecycle' でバケットライフサイクルを設定します。 先に作成したS3ライフサイクルドキュメントを読み込ませます。 エラーが出力されなければOKです。

aws s3api put-bucket-lifecycle-configuration \
--bucket ${S3_BUCKET_NAME} \
--lifecycle-configuration file://${FILE_S3_BUCKET_LIFECYCLE_DOC}

`get-bucket-lifecycle' でS3バケットのライフサイクルが有効であることを確認します。

aws s3api get-bucket-lifecycle \
--bucket ${S3_BUCKET_NAME} \
--query 'Rules[].Status' \
  --output text

今回は3つのライフサイクルを設定したため、Enabled Enabled Enabledと表示されればOKです。

マネジメントコンソール(S3⇒バケット名選択⇒管理⇒ライフサイクルルール)からもライフサイクルを確認します。 以下のように表示されます。

f:id:amarelo-n24:20201102090436p:plain

プレフィックスのライフサイクルをマネジメントコンソールから確認すると、以下のようになります。

①tmp/("ID": "temporary-objects")

f:id:amarelo-n24:20201102091146p:plain

②archive/("ID": "archive-objects")

f:id:amarelo-n24:20201102091436p:plain

③logs/("ID": "short-keep-objects")

f:id:amarelo-n24:20201102091747p:plain f:id:amarelo-n24:20201102091937p:plain

S3オブジェクトのライフサイクル確認

s3api head-object で作成したオブジェクトの有効期限を確認します。

aws s3api head-object \
--bucket ${S3_BUCKET_NAME} \
--key ${S3_OBJECT_KEY} \
--query 'Expiration' \
--output text

①tmp/("ID": "temporary-objects")のライフサイクル

10/30に「tmp/2020-10-30.txt」というオブジェクトを作成しました。

f:id:amarelo-n24:20201103084716p:plain

30日に作成したオブジェクトは31日中有効、11月1日0時になって日が変わった時点で削除されます。 s3api head-object を実行して以下のように表示されることを確認します。

expiry-date="Sun, 01 Nov 2020 00:00:00 GMT", rule-id="temporary-objects"

※補足

Amazon S3 は、ルールに指定された日数をオブジェクトの作成時間に加算し、得られた日時を翌日の午前 00:00 UTC (協定世界時) に丸めることで、時間を算出します(以下公式ドキュメントより抜粋)。

そのため、単純に作成日から指定した日数が経過したら削除したり、クラスを移動したりするわけではありません。この例のように1日経過したら削除とライフサイクル設定した場合は、作成日の次の次の日の午前 00:00 UTCに削除されるという動きをします。

docs.aws.amazon.com

②archive/("ID": "archive-objects")のライフサイクル

10/30に"archive/2020-10-30.txt"というオブジェクトを作成しました。

f:id:amarelo-n24:20201103084847p:plain

30日に作成したオブジェクトは31日にS3 Glacierに移動、11月1日0時になって日が変わった時点で削除されます。 s3api head-object を実行して以下のように表示されることを確認します。

expiry-date="Sun, 01 Nov 2020 00:00:00 GMT", rule-id="archive-objects"

③logs/("ID": "short-keep-objects")のライフサイクル

10月30日に"logs/2020-10-30.log"というオブジェクトを作成しました。

f:id:amarelo-n24:20201103085111p:plain

10月30日に作成したオブジェクトは211日後の2021年5月30日に削除されます。 s3api head-object を実行して以下のように表示されることを確認します。

expiry-date="Sun, 30 May 2021 00:00:00 GMT", rule-id="short-keep-objects"
動作確認

確認が11月2日になってしまいましたが、tmp/とarchive/は削除されたことを確認できました。

※archive/ のオブジェクトがS3 Glacierに移動したことを確認しそびれました。無念…

logs/は有効期限内のため残っています(あと28日待ってはこのブログを公開するのも遅くなってしまいますので、動作確認まではしません)。

f:id:amarelo-n24:20201102090212p:plain

S3ライフサイクル設定の削除

ライフサイクルを削除する場合は、バケット名を指定してs3api delete-bucket-lifecycleを実行します。 エラーが表示されなければOKです。

aws s3api delete-bucket-lifecycle \
--bucket ${S3_BUCKET_NAME}

ライフサイクル設定が無効であることを確認します。

! aws s3api get-bucket-lifecycle-configuration \
--bucket ${S3_BUCKET_NAME}

以下のように表示されればOKです。

An error occurred (NoSuchLifecycleConfiguration) when calling the GetBucketLifecycleConfiguration operation: The lifecycle configuration does not exist

マネジメントコンソール(S3⇒バケット名選択⇒管理⇒ライフサイクルルール)でもライフサイクルが削除されたことが確認できます。

f:id:amarelo-n24:20201103090159p:plain

この後はオブジェクトの削除、S3バケットの削除、IAMユーザ周辺の削除を実施します(手順は割愛します)。

最後に

今回、動作確認の中でS3 Glacierに移動したことを確認できなかったのが心残りです。いったんブログを公開しますが、別途確認したいです。ただ、ライフサイクルの動作確認を実業務でやることになったら、その点を注意しなければならないことを知れて良かったです。実作業で確認漏れしていたら一からやり直しですしね…実際に手を動かして体感することの重要さを改めて思い知りました。

前回のバージョニングも今回のライフサイクルも、S3を適切に運用する上で理解しておくべきことだと思いました。認定試験の勉強で触れて理解したつもりでしたが、使わないと本当に忘れますね。復習できてよかったです!S3以外のサービスも適切な設計や運用を考えられるようになるためにも、できる限りサービスが持っている機能を手を動かして理解した上で使いたいと思いました。

次回もS3を使ったハンズオンで、通知とLambdaの自動実行といった実運用でも良く使いそうなハンズオンなので楽しみです。自分ができることを増やしていきたいです。

※次回のイベントページ

jawsug-cli.connpass.com

JAWS-UG朝会 #14 参加レポート

10/27(火)JAWS-UG朝会 #14に参加しましたので、レポートを書きます。

毎回ラジオ体操から始まる勉強会で今回も楽しみにしていました。が、寝坊で7:30までに間に合わなく、ラジオ体操はできませんでした…

目次

イベントページ

jawsug-asa.connpass.com

セッションとLT

AWSコスト最適化のポイント~ここまでできるコスト削減~ 小寺 加奈子さん
資料

www.slideshare.net

概要
  • コスト削減を実現するためにリザーブインスタンスやSavings Plansを利用する。
  • リザーブインスタンスにはStandard(完全前払い)とConvertible(一部前払い)がある(EC2のみ)。
    • サイズの変更ができるが、予約期間中に別のリージョンに変更できない。
  • オンデマンドと比較した削減額は、 EC2 Standardが最大72%、Convertibleは最大66% (リージョンによっても割引額は異なる)
  • Savings Plansには、Compute Saving Plans (全額前払い)とEC2 Instance Savings Plans(一部前払いで最大72%削減)がある。
  • Compute Savings Plans はリージョン、AZ、インスタンスファミリー・サイズ、OS、テナンシーに関係なく自動的に適用される。

  • コスト削減した利用料をどうモニタリングするか?

    • Cost Explolor で料金確認
    • Budgets で予算超過したらメールやSlackで通知
    • Budgets Action で予算が閾値を超えた時にEC2を起動できないようにする。
    • 不正利用による急激な利用料増加を検知する。
動画配信 × お買い物 × サーバレス 三浦 一樹さん
資料

speakerdeck.com

概要
  • 動画配信とグッズ販売のイベントをすることになり、サーバレスで構築した。
  • 動画配信の安定性と当日何もしなくても良いように、AWS Elemental MediaLinkを購入した。

    • AWS Elemental MediaLinkについてこちら
    • 995ドル(10万円くらい)で買える。
    • アカウント紐づけて刺すだけでAWS Elemental MediaLiveと連携でき、マネージドコンソールから死活監視をできる。
    • SINGLE_PIPELINEしか設定できないので、AWS Elemental MediaLiveが2つ必要。
  • ショッピング部分はShopifyがめちゃ便利だった。

  • タイムセールと時間限定商品に対応させるために、GraphQLとAppSyncを使ってリアルタイム更新できるようにした。
    • リロードなし、イベント進行に合わせたリアルタイム更新ができた!
CloudEndureでVPSからAWSへ移行 小倉 大さん
資料

www.slideshare.net

概要
  • CloudEndureとは

    • AWSへの移行を無料で簡単に出来るツール
    • 移行元は物理と仮想環境に対応
  • さくらのVPSにあるWordPress(CentOS5)の環境を移行した。1時間半くらいかかった。

  • 手順はBlackbeltの資料に詳しく書いてある。
Organization周りの機能 富松 広太さん
資料

www.slideshare.net

概要
  • Organizationsと連携可能なサービス

    • CloudFormation Stacksets
    • CloudTrail
    • AWS Config
    • 他にもあるが今回はなすのは上記3つについて
  • CloudFormation Stacksets

    • 特定のOUを指定してCloudFormationを実行
    • 特定OUへのアカウント紐づけに連動したCloudFormation自動適用
  • CloudTrail

    • 親アカウントで一度設定すれば、子アカウントの個別設定が不要になる。
    • 親アカウントのS3に子アカウントのログが自動収集される。
    • 親アカウント以外の収集先は選択不可
    • 全アカウント有効・無効のみ変更可能
  • AWS Config

    • 親アカウントで一度設定すれば、各子アカウントでの個別設定が不要
    • config の情報が親アカウントに自動収集される
    • 親アカウントで子アカウントのリソースを閲覧可能
    • 組織へのルール一括適用・管理も可能
Lightsailでワンコイン開発環境をつくる 波田野 裕一さん
資料

speakerdeck.com

概要
  • 10/19にCloud9でLightsailを利用可能になった。
  • Lightsailは月額課金でEC2よりかなり安い。
  • インスタンスイメージをEC2にエクスポート可能
  • RDSやALB、CloudFrontに相当するオプションがあり拡張性や移植性がある。
  • APICLIからほぼすべての操作を操作できる
  • VPCは使えない
  • インスタンスプロファイルは使えない
  • ブループリント(AMI相当)は作れない
  • AutoScallingは使えない
  • ドメインサブドメインを無料でホストできる(Route53相当)。

  • ストレージとデータ転送料込みで月額約366円(ワンコイン未満)で開発環境構築が可能に。

    • インフラエンジニアもアプリをかけるようになろう!

最後に

やはり朝から勉強会やるとそのまま仕事には入れるので、気持ちが引き締まりますね! また、朝仕事する前の勉強会の方が、その日の仕事にもあまり左右されず(突発の仕事で参加できなくなったってことになりにくい)、 家族にもあまり気兼ねせずに参加できて良いと思います(ラジオ体操全力でやると逆に家族に迷惑かけるかもですが…)。

LightsailでEC2よりもコストの心配を少なく環境構築できるのは魅力的だなぁと思いました。 前々からコードをちゃんと書けるようになりたいと考えていたので、これを機に自分もLightsail使ってみたくなりました。 30 日間無料 (750 時間/月)みたいなので、時間の都合をつけてとにかくやってみようと思います!