4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

X-Tech JAWS & JAWS-UGアーキテクチャ専門支部 コラボ勉強会#02 (2019/07/30 18:50〜) 

Last updated at Posted at 2019-07-31

はじめに

AWS CDKを現場に導入できたらと思っていて、他の方の導入事例や考え方を学ぶ目的で参加してきました。
簡単な所管と内容について纏めておきます。

※残念ながら途中参加だったため、開始30分は聞けませんでした。。
※認識違いなどありましたらご指摘いただけると嬉しいです。

Session 1: 仮想通貨取引所 bitbank での IaC の導入と実践

途中参加だったので、最後の方しか聞けませんでしたが、
CDKは開発者には受け入れられないという部分だけ聞いてしまい、理由が気になったままです。。

Session 2: eurekaにおけるIaCの実践

IaC導入前はサービスリリース頻繁、セキュリティ管理厳しいなどたくさんの悩みがあり、
AWSマルチアカウント管理に絞ってIaCでどう改善したかをお話しされていました。
今の自分の現場はprod/stage含めて1アカウントで運営しているため、
セキュリティ問題の部分はかなり同感でした。

IaC tools

 ProvisioningはTerraform、Ansible+Packerを利用
 ServerlessはServerlessFramework利用
 ContainerはFargateなど(だったと思います)

AWSマルチアカウント化

 AWS Organizations利用
 マルチアカウントで実現したいこと:セキュリティ担保やコストレポート、影響範囲の分離(サービスごと、ステージごと)など
 アカウントの切り方:MasterAccount、eurekaさんのサービス単位(Pairs/couples/corporate)、prod/stage、sandbox
マルチアカウントの課題:不明アカウント残存、それぞれのアカウントへのログインしなおしが面倒、共通で利用したいリソースが多い

Terraformでのマルチアカウント管理

 terraform-account-bootstrapを利用
 ↓あとで調べる
 https://github.com/ericwestfall/terraform-account-bootstrap

QA

 IPアドレス管理が煩雑になりがちだが、どう解決されたか?
→解決策特にない、結局Excelなどでの管理が必要。
 tfstate破損のリスクが怖い。
→git管理しているため、破損のリスクはない。
 Terraformで管理しなかったものなどあるか?
→Serverlessはコード管理していない

Session 3: Infrastructure as Codeに疲れたので、僕たちが本来やりたかったことを整理する+α

JAWSDAYSに参加した際にもお聞きした村主さんのお話。IaCについて色々考えさせられました。

IaCについていろいろ話した結論

 IaCの概念は良いがツールが追いついていない。マイクロサービスなど他の概念も同じ
 構成の可視化はしたかった。再利用性は捨てた。

2019年度のトレンド

 AWS CDK CFnの動作理解が必須となる。
 Terraform v0.12 for文で書けるようになったが、ここまで書けるならCDKの方が良さそう

コード化すべきリソース、するべきでないリソース

 CloudTrailやSNS、SQSなど即時反映されるリソースはコード化しやすい。
 逆にDB系やRedshiftはコード化するメリット少ない。

QA

 コード化しなかった部分はあるか?
  ⇒Auroraのフェールオーバなど運用作業はコード化しなかった
 自動テストはどうしているか?
  ⇒宣言型言語のTerraformではテストしない方針としていた。(処理結果が保証される)

Session 4:Ansible + CloudFormation を、AWS CDK に移行する方法 level0 (仮)

Cloudformationテンプレート管理をAWS CDKに移管するお話。CDK導入を検討中のため、コードの書き方など参考になった。

現行のテンプレート管理

 AnsibleでCloudFormationテンプレートを作成していた。
 AnsibleのCloudFormationモジュールを利用。
 ※恐らく下記のモジュール。
 https://docs.ansible.com/ansible/latest/modules/cloudformation_module.html?highlight=cloudformation
 

AWS CDKへの移行

 移行対象リソースはEC2、VPC、Cloudwatchアラームなど
 移行フローをSTEP1、STEP2に分割して移行した
 STEP1はテンプレートまで、STEP2でスタックの移行を行った
 STEP2完了までの期間は2週間程度(業務をこなしながら)

Session 5: Ask The Speakers

 ・IACを始めるには?
  ⇒SQSやSNSからやってみる
  ⇒単体レベル(EC2一台など)から始めてみる
  ⇒AWS CLIを理解するとCloudFormation入りやすい

 ・CFnのテンプレートテストはどうしてる?良いツールあるか?
  ⇒ValidationCheck含めて完璧なツールはない。使えるとしたらCDKくらいか

 ・CFnのテンプレート分割方針について
  ⇒サービス単位(他サービスへの影響を少なくできる)
  ⇒ライフサイクル単位

 ・IaCでCI/CD実現する場合はブルーグリーンデプロイでデプロイするしかないのか?
  ⇒???

 ・なぜコード(DockerFile)はすぐに利用不可になるのか?
  ⇒DockerFileはDockerバージョンアップが多いため影響を受けやすい
   AWSでいうとAWS APIに依存するがそれほど問題は起きない

 ・運用までIaC管理すると障害復旧時のインスタンスIDが変わってしまい、メンテに苦労する
  ⇒特に解決策はない。運用までIaC管理は行わないほうが良さそう。

得たこと、纏め

何か答えを求めて参加したのですが、やはり「銀の弾丸など無い」ようでした。
理想はありますが、実現性は別の話ですので、
正しくIaCの性質を理解した上で、案件の状況など含め、
使いどころをきちんと考えないといけないなと感じました。

X-Tech JAWS & JAWS-UGアーキテクチャ専門支部は初めての参加でしたが、
今後もインフラ運用業務改善について考えていけたらと思います。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?