AWS関連のイベント、セミナーに参加してきましたので、自分に対する備忘も兼ねて要点を纏めておきたいと思います。
・参加イベント
【11/1(金)東京】国内最大規模の技術フェス!Developers.IO 2019 東京開催!AWS、機械学習、サーバーレス、SaaSからマネジメントまで60を越えるセッション数!
毎年開催されているクラスメソッド様のイベントです。
徐々に規模拡大されているようで、今年は1000人以上も参加者がいたそうです。
私は今の現場でCDKを使い始めたこともあって、CloudFormationやCDKなど、IoC関連のセッションをメインに聞いてきました。
各セッション内容纏め
1. AWSのすべてをコードで管理する方法〜その理想と現実〜(濱田孝治氏)
https://dev.classmethod.jp/cloud/aws/aws-all-iac/
IaCを理解する
- IACは状態を定義(CLIは処理を定義)
- 手法 CloudFormation、Terraform、CDK
- CloudFormationのテンプレートについて
⇒JSONは古いので、YAMLに変える
リソース記述順は関係ない(Parameter、Resources、Outputsは必須) - CDKは入門編(Workshop)で学習可能
CLIで実行する
- CLIでCloudFormationを実行する(運用効率化)
⇒create-stack使わない、deployを使う
⇒deployはチェンジセット必ず作成、チェックバリデーションもしてくれる
⇒--no-execute-changesetを使う - 本当にあった怖い話
同じスタック名で作成してスタック消える
⇒対策はチェンジセット見る - 実行はCLI、結果確認はGUIで良い
複数リソースを作成する
- 典型的な一式を作ると1000行超える
- スタックの分け方
⇒VPCとセキュリティグループは分ける(セキュリティグループは変更多いのでIaCでなくてもよい) - スタック間でリソースを参照する方法
⇒クロススタック参照
⇒注意点は参照しているスタックがある場合、削除できない
⇒例)ECSのTaskをServiceがクロススタック参照する形だと運用破綻 - ダイナミック参照
⇒SystemsManagerのパラメータストア
⇒DBのパスワードなど - シェルで頑張る
⇒ECRのURIなど(CloudFormationでoutputできない)
運用上のつらみ
- スタックの作成が終わらない
⇒EC2に割り当たっているセキュリティグループを削除しようとすると返ってこない
サービス定義が誤ったECSの作成 - 新機能に対応しない
- 循環参照
- Conditionsに頼らない
⇒条件分岐はテンプレートに適さない
⇒テンプレートを分けるなどで対応する方がよい - CloudFormation以外でリソース更新される
⇒スタック更新が正常に働かなくなる
⇒Drift Detection(ドリフト検出)で対応
⇒AWS Configで自動Drift検知も(cloudformation-stack-drift-detection-check)
パイプラインでインフラ構築
-
実行場所
⇒個人のクライアントPC、適当なEC2インスタンス、リポジトリからのパイプライン実行 -
パイプライン実行例
⇒CodeCommitにテンプレート
⇒CodeBuild チェンジセットまで
⇒確認、問題なければCodeBuild スタック作成
1. Amazon CultureとAWSの設計思想 ~マイクロサービスアーキテクチャとアジャイル開発~
AWS亀田治伸 氏
https://dev.classmethod.jp/report/report-developers-io-2019-tokyo-amazon-culture/
AWS CDKの基本と実例
加藤諒氏
-
AWS構築の歴史
1.手順書(AMC、LambdaのIAMロール自動作成など
2.スクリプト
3.プロビジョニングツール(CloudFormation、Terraform、DOMs、GoFormation、CDK)
4.CDK -
AWS CDKのメリット
コードで書けると嬉しいのか?
⇒型があり、IDEの支援が受けられる
CDKによる抽象化
cdk.jsonに環境ごとのパラメータを設定できる(--context) -
AWS CDKでテストを行うべき理由
CDKは頻繁にアップデートされる
CloudFormationコードが変更されたかの検知をしたい -
テストの種類
Snapshot Tests・・・生成されるCloudFormation差分を確認
Fine-grained tests・・・意図したCloudFormationリソースが存在するか
ValidationTest
最近のAuroraのアップデート使いこなし術 〜 ServerlessやMulti-Masterどんな時に利用する? 〜
大栗宗氏
Auroraとは
大量アクセスのスループットが向上する方針で開発
Aurora Serverless
DBインスタンスを意識せずに自動でスケーリングする形態
通常のAuroraより割高
###最近のAuroraアップデート
・Custom Endpoint
バッチアクセスとスループットが求められるアクセスのリソース分離
・GlobalDatabase
リージョン外にレプリケーションする機能
・Aurora Serverless Data API
インターネットからAPIでAurora ServerlessにAPIアクセスする
IAM機能でセキュリティ担保
HTTPだがトランザクション可能
VPC Lambdaが高速になったため、利用用途がなくなってきている
・Multi-Master Cluster
楽観的な同時実行制御
書き込み競合は発生する
所感、自身の仕事に活かせたことなど
インフラのセッションにメインで参加してきましたが、
初心者でも分かるように丁寧に説明してくれています。
インフラエンジニア初心者にもお勧めできるイベントかなと思います。
来年もぜひ参加したいイベントです。
自身の仕事に活かせたこととしては下記が挙げられます。
・CloudFormationをCLIで実行(deployコマンド --no-execute-changeset付き)
・DBのパスワードなどはSSMのパラメータストアで定義する
・cdk.jsonに環境差分を書く
・Python自動テストの利用(これは要検討)