2020/06/13

やったこと

・Web db press116のAWS CodeDeploy特集を読んだ

Terraform: HashiCorpが提供するインフラ構築ツール。インフラ構成をコードで記述し、様々なクラウドのリソースを操作できる

Packer: HashiCorpが提供するマシンイメージの自動生成を行うコマンドラインツール。AWSでいうとAMIを作れる

インスタンスプロファイル:EC2インスタンスに付与できて、EC2インスタンスAWSリソースへのアクセス権限を設定できる

サービスロール:ユーザに代わってAWSのサービスにアクセス許可を委任できるもの

 

In-Placeデプロイ:アプリケーションだけを入れ替える

appspec.ymlにデプロイ時の動作を記載

AWS CodeDeployを用いることで、ロールバックも自動で行われ、デプロイ管理が楽になる。履歴も残る。

Blue/Greenデプロイ:サーバの切り替えにより、ダウンタイム無しで更新する。旧バージョン/新バージョンの2つのサーバを配備し、ロードバランサを使って新バージョンに振り分けるようにし、最終的には旧バージョンを切り離す。InPlaceデプロイの問題点であるデプロイ時のダウンタイムの発生や、ロールバックの安全性が保証されない問題を解決できる。

イミュータブルデプロイ:Blue/Greenデプロイと同様の方法でデプロイするが、デプロイのたびにサーバをまるごと入れ替え、クリーンな環境を保証する。

 

感想

terraform、名前は聞いたことがあったが触るのは初めてであったので新鮮。クラウドの構成管理をコードで管理するとは、こういうことなのかと体感できた。構成管理を手動でやると忘れてしまう上、現在のクラウドの状況がわからなくなるので、このようなツールは需要があるのだと思う。ただの構成管理ツールなので、クラウドプロバイダ提供のリソースについて熟知した上で使うことで、効果が最大化されそうな気がした。

またpackerについても触ったが、AMI作成履歴をコードで管理できるのは新鮮であった。IaCするためには当然必要となる要素であるが…。こういう内容は現状の業務だと触れることが無いが、世間のインフラ管理がこのようなものであるとは知っておかないと…

Inplaceデプロイ, Blue/Greenデプロイ, イミュータブルデプロイについても聞いたことがある程度だったものが、手を動かしてAWS上で動作させてみることで、それぞれの違いを体感できた。時間はかかるが手を動かして理解することは大事。

 

競技プログラミング

- DDCC2020-qual C Strawberry Cakes 解けず。むずかしい…解説見て写経して終えた

- CADDi 2018 C Product and GCD:惜しいところまでいけたが通らないテストがあり、テストケースを見てしまった。その後無事AC