インフラコードの作成のスピードアップ


クラウドアプリケーションの構築は難しい.パブリッククラウドプロバイダから入手可能なサービスの数は驚くほどであり、これらの提供は劇的にあなたのチームの速度を高めることができます.しかし、これらのサービスを製品に統合することは難しいです.ドキュメントは、あなたが望むように常に明確であるかよく整理されているわけではありません.また、特定の製品機能が5または6種類のAWSサービスへの要求をダイレクトに要求する必要がある場合には、JSONの杭を正しく設定する必要があります.ここでは、いくつかの異なるアプリケーション全体で成功しました.

ステップ1:AWSのWebコンソールで必要なものを作成
アマゾンのウェブコンソールは、あなたの手を持ちます.これは良いことですが、注意して使用する必要があります.ゴールは一度それをしないで、それを忘れないでください、しかし、それを簡単な方法をするために、そして、コードでこれを捕えてください.
おそらく、AWSサービスが必要とするものをdocsを使用するのを知っているでしょう.例えば、あなたは1ダースの異なったライフサイクル規則でそのS 3バケットを作るかもしれません、あるいは、ECRレポはタグ満了設定の得点であります.あなたがしていることによって、これは異なるAWSサービス(例えばSQSキューを作ること、ラムダ)の向こう側にリソースを調整するのを必要とするかもしれません.

Step 2 : AWS CLIツールを使って作ったものの設定をダンプする
AWSのWebコンソールからCloudFormationまたはAPIクライアントコードにマップする方法を手動で把握しようとすると、永遠にかかります.幸いにも、AWS - CLIはより良い方法を提供します.これを使用して、ステップ1で作成したすべてのエンティティのJSONをダンプできます.たぶん、あなたはCloudfrontで働いています.ディストリビューションを一覧表示するには次のようにします.
aws cloudfront list-distributions > distributions.json
正確なコマンドはもちろん、サービスによって異なります.aws <servicename> help 一般的に正しいコマンドをリードします.一般的には1から始まるlist or describe (例)
aws ec2 describe-instances
aws dynamodb describe-table --table-name <TABLE_NAME>
AWS CLIツールは基本的に便利なAPI APIであることを忘れないでください.残りのAPIと伝統的な* nixツールは異なる構造や規則を持っています(例えば、* nixコマンドは通常、名前付きではなく位置引数として表現されたparamsを必要とします).

手順3 :これをCloudFormationまたはクライアントSDKコードにする
今必要なエンティティのJSON表現を持っているので、これらをコード化することができます.私の特定のケースでは、私は残りのAPI呼び出しに応答してこれらのリソースを作成したかったので、私はAWS - V 3 JavaScript SDKを使用してtypescriptの作成論理を書きました.これらは多くの理由のために素晴らしいです.私はステップからJSONの多くをコピーして、ペーストすることができて、ちょうど各々の実体のために異なっていたparamsを微調整することができました.そして、それがtypescriptであったので、パラメタが誤って命名されたならば、私はコンパイル時に言われました.これは、JSONの設定の数百行のジャグリングをはるかに少ないエラーが発生し、イライラした.

結論:AWS CLIはあなたの友人です
私は、ECSブルー/グリーン展開コードを一緒にして、AWSの元素サービススイートで若干の複雑なビデオワークフローを準備するために、この戦略を使いました.JSONのジャグリング山は楽しいです.あなたが対照的に、Webコンソールで必要なものを作成し、CLIを介してエクスポートする場合は、次の良い例を見つけることができない場合は特に、コードに直面してインフラストラクチャの開発をスピードアップします.グッドラック!