証券企画室の佐藤です。企画室という名前ですが、エンジニアが何人か在籍していて、スマホにデザインが最適化された株アプリ、ferciを開発しています。AWSのre:Inventさて、今年もラスベガスではAWSのre:Inventにて色々なアップデートが発表されています。Builderはその中でも、多くの方が利用するであろう追加機能ではないでしょうか。基本的な機能や操作は触ってみればわかるので割愛し、実際の運用上どうなのかを評価してみたいと思います。UserGuideを読んでいきなりですがGUIコンソールを触り、UserGuideを一通り読んだ感想です。AMIとそれを作る元になったコンポーネントを紐付けて残せるのは素晴らしい。コンポーネントとレシピを修正して実行するときにパイプラインを最初から作り直さなければならず大変。APIでパイプラインの取得と作成ができるので、最新のレシピを使うようにパイプラインの新バージョンの作成を自動化すれば良さそうです。コンポーネントのYAMLをテキストファイルでgit管理したい。こちらもAPIを使えば解決できます。パイプライン実行のトリガーがマニュアルか、定期実行しかない。セキュリティ面のアップデートを最新にする目的で設計されているからだと思うのですが、コンポーネントのコードをバージョン管理し、コミットした時点でテストのために走らせたいところです。IaCを徹底しようとするならば、APIでの作り込みが必要になるかなと感じました。2,3ヶ月後くらいにはCloudFormationでリソースを記述できるようになると思うので、そうなると上記のほとんどの問題は解決されるかと思います。Builder考察ここで記事を終えても良いのですが、何よりもSaaSの醍醐味は、公式が想定している以外にどう使えるかを考えることです。Builderは事例紹介などでよく”ゴールデンAMI”と呼ばれるAMIの作成を支援するツールとして実装されているように見えますが、サーバの種類別や環境固有の設定もできないだろうか、ということについて考えてみます。いえ皆様色々なAMI作成プロセスをお持ちだと思うので、今回は我々ferciチームの実装を元に考えてみます。私たちのチームでは典型的ではありますが、下記のようにAMIを作成しています。これらをPythonスクリプトで自動化することで、作業ミスを無くしています。開発環境で、ベースとなるAMIからEC2を起動。起動したEC2内でAnsibleのPlayBookを実行し、OSの設定、ミドルウェアのインストールと設定、環境固有の設定を行う。EC2を停止してAMIを作成。AMIをステージング環境、本番環境のAWSアカウントに共有。Packer使えばいいのではという意見が返って来そうですが、これだけのためにOSSやコミュニティ版のツールを増やしたくなく、Packerは利用していません。代わりにPythonを書けるメンバーが何人かいるので、上記をPythonスクリプトで自動化して省力化しています。Builderで自動実行できれば、開発環境でスクリプト実行コマンドを打つ必要がなくなります。思いつくのは、今あるAnsibleのPlayBookをそのままコンポーネント内で実行することです。必要な要件をいくつか書き出してみます。PlayBookの実行結果を得たい。ActionModulesのドキュメントを読むと、Bashコマンド実行時のstdoutを返してくれるようなので、何もせずとも結果を知ることができます。GitHubへのアクセス元IPアドレスを制限したい。セキュリティの観点から、gitリポジトリはアクセス元IPアドレスでの制限をかけています。Gatewayを通すことでソースIPを限定することができ、要件は満たせそうです。GitHubへのアクセス用クレデンシャルを安全な場所に格納したい。Builderだと設定できなさそうです。AnsibleVaultのパスワードを暗号化して安全な場所に保管しておき、コンポーネントから参照したい。SSMパラメータストアに格納できれば良いのですが、今の所SSMにアクセスすることはできなさそうです。Ansibleコードをコミットした時点で、AMIのビルドを走らせたい。現状はマニュアル実行と定期実行しか無いようです。Builderに下記の機能追加があると、我々ferciチームのAMI作成プロセスを改善するために利用できそうです。Builderの使いどころを考えるTweet関連記事2020-01-31BigQueryからJSON形式で取得したデータをS3にPutするLambdaをSAMで構築するこんにちは、証券企画室エンジニアの田代です。先日、私たちが...2019-11-25おすすめIT書籍紹介(いくらかインフラエンジニア寄り編)こんにちは。業務効率化を目...2019-07-29ディープラーニングでそっくりな株価チャート取得してみた(ひとり20%ルールやってみた)こんにちは。システム開発部の諸です。世界で一番...2019-07-19新テクノロジーで基盤システムにINNOVATIONを起こす×ラボ(前編)こんにちは。読者になる人材募集スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。