AWS

AWS EC2(Amazon Linux 2023)にfluent-bitをインストールする

タイトルの通りなのだが、妙なハマり方をしたのでメモ。 Install Commands curl https://raw.githubusercontent.com/fluent/fluent-bit/master/install.sh | sh sudo systemctl start fluent-bit ここまででインストールはできる。 Fix しかし妙なエラーが出…

AWS構成図をAIに書かせてみた(PlantUML)

ChatGPTでAWSの構成図を作成するよう頼んでみた。 依頼文はまずこちら。 日本語にも対応すると聞くが、この手のものは拙くとも英語で聞いておくほうがよいと思うので、英語で書いた。日本語で書いてうまくいかなかったら、英語でないのがダメなのか、内容が…

MalformedPolicyDocumentが出たら記述の順番を厳正に守る

TerraformでIAM Policyを作っていたら、以下のエラーが出た。 MalformedPolicyDocument: The policy failed legacy parsing なんのこっちゃと思ったら、Policyの記述順序が違っているのが原因だった。 どういうことか まずは正しい例から示す。これが正しい…

【Issue】AWS VPCを改めて考える

日頃当然のように利用しているAWS VPCを、整理の意味も兼ねて改めて考え直してみたい。 なおタイトルにIssueとついているのは『イシューからはじめよ――知的生産の「シンプルな本質」』を読んでいて感化されたため。 考えながら書いているので、冗長になるの…

AWS KMSを復習してみる

KMSを改めて復習したくなったので、自前のメモがてらに記事にしてみる。 KMSとは? KMSで管理できるキーの種類と用途 暗号化と複合化はどのタイミングで行う? 運用上の注意点は? AWS CloudHSM 参考 KMSとは? データの暗号化やデジタル署名に使用するキー…

Cannotpullcontainererror: pull image manifest has been retried 5 time(s): failed to resolve ref docker.io/library/nginx:latest: failed to do request

先の記事の後にもIPv6 Only VPCを試していたのだが、思わぬところに落とし穴がやはりあった。 問題 解決 その他 問題 "Cannotpullcontainererror: pull image manifest has been retried 5 time(s): failed to resolve ref docker.io/library/nginx:latest: …

IPv6オンリーのVPCで遊んでみた

タイトルの通り、IPv6オンリーのVPCを試してみた。以前の記事でIPv6オンリーは業務用だと要注意、と書いたばかりだが、個人用途で試す分にはイケイケでいける。NAT ゲートウェイがいらない(Egress Only IGWが使えるので)ため安くあがる点が個人用途だとポ…

多段SSHでPrivate SubnetにあるEC2インスタンスに接続する

Private SubnetにEC2インスタンスを立てて使う場合、踏み台を経由して接続できるようにしたほうが色々と便利なことが多い。 というわけで多段SSHの設定を書き残しておく。 結論 ~/.ssh/config に、ProxyCommandを使いつつ、例えば下記のように記載する。 bas…

AWSのVPCでIPv6にするべきか?

AWSのVPCでIPv6が使えるようになってからしばらく経つ。 そろそろIPv6にすべきなのか、IPv4にすべきなのかを考えてみた。 結論 特にIPv6を使う理由はなく判断しかねるならまだIPv4にしておいたほうが無難。 IPv6だけで行けると確信できるならIPv6オンリーに…

AWS CLIをMFA付きで使う際のbatファイル(Windows用)

公式で公開されているMFAのためのコマンドを毎回コピペコピペで実行するのは嫌すぎるので、簡略に――作り込むほどのものではないので――バッチファイルを作って使うことにした。 言うまでもなくWindows用である。 内容 一部マスキングしているが、下記のような…

AWSのVPC作成に"VPC and more"が増えていたので使ってみた

今日別件でVPC画面を触っていたら、VPCに新しい操作画面が追加されていたので早速触ってみた。 なにこれ素敵 なんとVPCと一緒に作るリソース、すなわちSubnet、Route Table、igw、S3 Endpoint、Nat gatewayをセットで作ってくれる。 試してみたところ、これ…

Terraformの*.tfstateファイルを保存するためのS3のバケットをCLIで作る

TerraformのtfstateファイルをS3に保存する場合、そのバケット自体はTerraformを使わずに作成することが推奨されている。 というわけで、CLIを使ってバケットを作成することにした。 コマンド 先にコマンドを記載する。結論、以下のようにした。 aws s3api c…

S3のバケットをどのように分けるか?

S3を利用するにあたっては、通常、いくつかのバケットに分けて利用することになる。一つのバケットに全部おさめるとバケットの中がカオスになるからだ。 だが思いつき次第にバケットを作っていくのも不味い。今度はS3自体がカオスになってしまう。そもそも1…

API GatewayをTerraformで構築するのはあまり向かないかも

AWS Lambda + API Gatewayでサーバーレスのメール送信関数を用意することにした。 そして、そのインフラ構築にTerraformを利用してみたのだが、結論、API GatewayとTerraformはどうにも相性がよくないように思われる。 なにが困るのか ではどうするか なにが…

AWS利用時のセキュリティについて考えた際のメモ(2022/10)

AWSのセキュリティ関連知識の復習のため、AWS認定 セキュリティ-専門知識を読んだときのメモ。 セキュリティ意識の高まり 数年前は影が薄かったセキュリティ用のサービスも、今や使って当然のものになりつつある。昔はCloudTrailとConfigさえも恐る恐るそっ…

AWS Innovate "クラウドネイティブ開発の今 ~ クラウドの特性をフルに活用した開発と運用 ~ (T1-1)"を見ていて

AWS Innovateの"クラウドネイティブ開発の今 ~ クラウドの特性をフルに活用した開発と運用 ~ (T1-1)"を見ていた時のメモ メモ クラウドネイティブ IaCでインフラ構築作業を自動化できる、反復できるのをポイントとしていた。これの前にあった課題は固定的…

AWS Innovate "もはやアンチパターンではない、AWS Lambda からのリレーショナル・データベース利用 (T4-5)"を見ていて

AWS Innovateの"もはやアンチパターンではない、AWS Lambda からのリレーショナル・データベース利用 (T4-5)"を見ていた時のメモ メモ LambdaからDBをつなぐ際、Writeのスケーリングはどうすんの スケールアップ セッションの中では触れられなかったけどAuro…

GitHub Actionsで自動テストし、AWS Lambdaに自動デプロイする。

AWS Lambda関数の本番デプロイについて検討したCI/CDをGitHub Actionsで実現する。 実現したいフロー 通知は何で行う? 関数のアップロードにTerraformは使わない? Lambda関数の関数バージョンはなぜ設定している? GitHub Actions 事前準備: Slack 参考 …

AWS Lambdaの開発・運用手順に関する課題のメモ書き

GitHub Flow / Git Flow LambdaのImmutableデプロイは可能か? SAMどうよ TerraformとAPI GatewayとSwaggerの兼ね合いどうしよう 参考 GitHub Flow / Git Flow 日常的にゴリゴリ更新していけるプロジェクトであればGitHub Flow、モバイルアプリのバックエン…

AWS Lambdaをローカルで開発・テストするには?

Pythonを使ったAWS LambdaはAWSのマネジメントコンソールから直接コーディングとテスト(とデバッグ)ができる。 が、コーディング時にVSCodeや周辺ツールが使えないのは辛い。それにローカル環境で行える作業とテスト/デバッグはローカルで行いたい。 先に…

API Gatewayを通さず直接Lambdaにアクセスする機能を試してみた(Lambda 関数URL)

Lambda 関数URLを使ってAPI Gatewayを通さず直接Lambdaにアクセスする機能を試してみた。 結論、どうなのか? Terraformを使ったコードの例 参考 結論、どうなのか? 便利なのだが簡易版といった趣で、不便な点もある。"やったぞAPI Gatewayがいらなくなった…

githubにAWSアクセスキーをうっかり公開した(しかけた)場合への備えを用意する(Windows)

課題 Windows上でアクセスキーを使った作業をよく行っているのだが、GitHub上に作業内容を公開しているので、うっかりアクセスキーをアップしてしまわないとも限らない。 あってはならない事故ではあるが、やらかすときにはやらかすのが事故というものである…

VSCode+AWS Toolkit+SAMでAWS Lambda関数を作成・デバッグ(開発環境用、NOT 本番環境用)

AWS Lambda関数の開発にあたり、Localでできる作業はLocalで行うにしても、やはりAWS上で動かさないと仕方ない部分が残る。 といって、いくら開発環境用だとしても、マネジメントコンソール上で編集するのはVSCodeの開発ツールが使えないので嬉しくないし、…

AWS Lambda Pythonで外部ライブラリを利用する

AWS Lambda(Python利用)でcerberusを使いたいが、Lambdaにはこちらの欲しいライブラリがインストールされていないため当然ながらエラーになる。 そこでLayerを使って先に外部ライブラリを用意しておく。 準備 作成とアップロードの例 備考 参考 準備 WSLで…

Terraformの.tfstateファイルをS3に保存する際の手順(DynamoDBなし)

AWSリソースをTerraformで扱う際、もしも.tfstateファイルをS3に保存するなら事前にバケットを作成する必要がある。 その際の手順を記載する。 ただしDynamoDBを用いてのロックは行っていない。 S3 Bucketの用意 Bucketの作成コマンド その他 参考 S3 Bucket…