猫でもわかるWebプログラミングと副業

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

Laravel の Scheduler を AWS ECS と CloudWatch Logs に最適化させるには

前提 Laravel のスケジューラーを Docker で動かす ログ(CloudWatch Logs)の課題 JSON 形式でログを出す まとめ 前提 PHP + Laravel で、Web サービスを開発しており、Laravel で実装した Web API が WAS ECS (Elastic Container Service) で動いているの…

AWS CloudWatch Logs 向けに Laravel のログを JSON で出力する方法

はじめに JSON 形式のログを送ると何がいいのか 今回のサーバー構成 Laravel から JSON でログを送るには スタックトレースも出したい 課題 まとめ はじめに この記事は Qiita Laravel Advent Calendar 2023 の3日目の記事です。 1日目はこのカレンダー作成…

AWS CDK では既存の VPC Endpoint に Security Group を追加することはできないようだ

やろうとしたこと VPC Endpoint の仕様について VPC Endpoint に Security Group を追加しようとした どう解決したか もう少し詳細に調査してみる CDK の InterfaceVpcEndpoint について アクセスが Interface VPC Endpoint を経由しているかどうかの確認 他…

AWS CDK で ECS Exec を有効にしてコンテナのシェルに接続する

はじめに ECS Exec が有効になっているかどうか確認する方法 ECS Exec の有効化 AWS CDK の修正 タスクを再起動 AWS Exec 実行例 参考 はじめに ECS Exec を使うと、コンテナのシェルに接続できるので(docker exec ができる。SSH みたいな感じ)、AWS ECS …

AWS CDK と CDK for Terraform 比較 実際のプロダクトで使ってみた

はじめに AWS とそれ以外(Google Cloud 等)を混ぜて使う場合は? AWS CDK には便利なライブラリがついている AWS CDK 実行時の IAM 管理が複雑 どっちのほうがデプロイが速い? AWS CDK のほうが AWS 謹製だからいいのでは? ドキュメントの充実さ まとめ …

AWS CDK で構築した AWS CodeBuild の docker build で NO_PUBKEY エラー

発生した現象 結論 詳細 発生した現象 AWS CDK で CodeBuild のプロジェクトを作成し、Docker のビルドを行ったところ、 Dockerfile の RUN apt-get update で以下のようなエラーが発生しビルドに失敗してしまった。 Err:1 http://security.ubuntu.com/ubunt…

AWS CDK と CDK for Terraform を使ってみた感想

AWS のサーバー構築 Terraform の欠点 AWS CDK の登場 CDK for Terraform の登場 AWS CDK を使ってみる AWS CDK コマンドラインツールのインストール AWS CDK で S3 を立ててみる コード デプロイ リソースの全削除 AWS CDK のメリット/デメリット CDK for T…

AWS ECS + Fargate の ECS Exec で An error occurred (TargetNotConnectedException)

ECS Exec で An error occurred (TargetNotConnectedException) Amazon ECS Exec Checker でトラブルシューティング 実行例 各項目の説明 Prerequisites for check-ecs-exec.sh Prerequisites for the AWS CLI to use ECS Exec Cluster Configuration Can I …

rclone を使って AWS S3 から Wasabi にファイルを移行

AWS S3 から他サービスへのオブジェクトストレージにデータを移行する 参考ページ rclone のインストール rclone の設定 ファイルのコピー AWS S3 から他サービスへのオブジェクトストレージにデータを移行する 今回、私は AWS S3 を脱却して、料金の安い Wa…

オブジェクトストレージ Wasabi で独自ドメインを使う

ほぼ AWS S3 と同じです。 リージョンは ap-northeast-1 です。リージョンが違う場合は設定方法も変わります。 設定方法 設定予定のドメイン名でバケットを作成します DNS に CNAME で ドメイン名 → s3.ap-northeast-1.wasabisys.com https://ドメイン名/フ…

オブジェクトストレージ&ホスティング(公開)比較【AWS / Wasabi / ConoHa / DigitalOcean】

オブジェクトストレージを使う目的 比較したオブジェクトストレージ Wasabi の概要 ConoHa オブジェクトストレージの概要 DigitalOcean Spaces 比較ポイント ざっくり比較 各サービスのメリット・デメリット AWS S3 Wasabi ConoHa オブジェクトストレージ Di…

Wasabi で画像をアップロードしてホスティング

オブジェクトストレージ Wasabi は、アメリカの Wasabi Technologies, Inc. のサービスで、日本では NTT PC 社経由でサービス提供されている感じになります。 使用感はだいぶ AWS S3 に似ています。NTT PC が提供している Web ARENA と連携してアカウントを…

AWS ALB のヘルスチェックと Django の ALLOWED_HOSTS

はじめに ALLOWED_HOSTS との兼ね合い 対策 ALLOWED_HOSTS の意味 結局どうすればいいのか 事例を調査する 結論 はじめに 一般的に、 AWS で Web アプリケーションを動かすときは、 Application Load Balancer *1 と EC2 を利用します。 Application Load Ba…

Scala 用 AWS ライブラリは aws-java-sdk しかない

はじめに 結論 比較したライブラリ aws-java-sdk AWScala aws-scala aws-scala-sdk まとめ 参考記事 はじめに Scala から S3 にファイルをアップロードする必要があったので、 AWS のライブラリを比較しました。 *1 結論 aws-java-sdk を使うことにしました…

AWS Cloud Practitioner を受験した感想

先日、AWS クラウドプラクティショナー (Cloud Practitioner) 試験を、テストセンターで受けてきたので、その感想を書きます。 テストを受けたきっかけ クラウドプラクティショナーは、現役エンジニアが受けるにはかなりレベルの低い試験になります。 私は、…

Amazon RDSは、従来のデータベース管理と比べて次のどのような利点を提供しますか?

AWS

問題 Amazon RDSは、従来のデータベース管理と比べて次のどのような利点を提供しますか? ア. AWSは、AmazonRDSテーブルに保存されているデータを管理する イ. AWSは、オペレーティング・システムの保守管理を行う ウ. AWSは、オンデマンドでインスタンスタ…

アプリケーションをデプロイする際、リージョンを選択する必要があります。

AWS

問題 解説 問題 利用者は新しいアプリケーションをデプロイする際、リージョンを選択する必要があります。 次の要因のうち、どれが顧客の決定に影響を与える可能性がありますか?(2つ選択してください。) ①アプリケーションのレスポンス ②アプリケーション…

オンプレミスのデータセンターからAWSクラウドにインフラを移行する利点の1つは、次のうちどれですか?

AWS

問題 解説 問題 オンプレミスのデータセンターからAWSクラウドにインフラを移行する利点の1つは、次のうちどれですか? ア. パッチ適用が不要となる イ. ビジネスにより集中できるようになる ウ. ITに関する請求がなくなる エ. 顧客情報をデータセンターに保…

顧客は、簡単にスケーリングできるMySQLデータベースを実行する必要があります。 どのAWSサービスを使用する必要がありますか?

問題 解説 問題 顧客は、簡単にスケーリングできるMySQLデータベースを実行する必要があります。 どのAWSサービスを使用する必要がありますか? ア. Amazon Aurora イ. Amazon Redshift ウ. Amazon DynamoDB エ. Amazon ElastiCache https://aws-exam.net/cl…

エッジロケーションの特徴として正しいのは次のうちどれですか?

問題 解説 問題 問題: エッジロケーションの特徴として正しいのは次のうちどれですか? ア. ユーザにより近いEC2をホストする イ. レイテンシを減らし、ユーザのパフォーマンスを向上させる ウ. 頻繁に更新されるデータをキャッシュし、オリジンサーバへのリ…

AWScala で S3 にファイルを put しようとしてAccess Denied Status Code: 403;

AWScala Scala から AWS S3 にファイルをアップロードするのに、 AWScala というライブラリを利用していました。 github.com S3 のライブラリを利用するには、 build.sbt の libraryDependencies に以下を追加します。 "com.github.seratch" %% "awscala-s3"…

AWS で S3 の特定のバケットだけアクセス可能な IAM ポリシーを作成するのにつまづいた

結論 誤った書き方 権限の確認方法 まとめ 結論 正しい書き方はこうっぽい { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::lgtmoon-dev", "arn:aws:s3:::lgtmoon-dev/*" ] } ] } 誤った書…

bad interpreter: /usr/local/opt/python/bin/python3.7: no such file or directory

先日、 AWS CLI や AWS EB CLI を利用しようとしたらエラーになった。 $ eb list zsh: /Users/yoshiyuki_sakamoto/Library/Python/3.7/bin/eb: bad interpreter: /usr/local/opt/python/bin/python3.7: no such file or directory /Users/yoshiyuki_sakamoto…

Terraform と CloudFormation の違い、どちらを採用したらいいのか

Terraform と CloudFormation の概要 Terraform について CloudFormation について Terraform についての僕の誤解 Terrafom vs CloudFormation 個人的の経験から Terraform vs CloudFormation CloudFormation の良いところ(Terraformの悪いところ) Terrafo…

AWS CLI で複数の設定(credentials)を使い分ける

AWS

~/.aws/credentials には下記のように複数の設定を書ける $ cat ~/.aws/credentials [default] aws_access_key_id = XXXXXXXXXX aws_secret_access_key = XXXXXXXXXX [hogehoge] aws_access_key_id = XXXXXXXXXX aws_secret_access_key = XXXXXXXXXX 普通に …

CloudFrontを使う時に知っておきたい、AWSの「エッジロケーション」

CloudFront には「リージョン」が無い リージョン/アベイラビリティゾーン/エッジロケーション リージョンとアベイラビリティゾーン エッジロケーション まとめ 参考 CloudFront には「リージョン」が無い CloudFront はいわゆる CDN(Content Delivery Netw…

AWS RDS で Slow Query を見る

設定 保存先がTABLEの場合 保存先がFILEの場合 設定 RDSトップにいく 左のタブから「データベース」を選択 Slow Query を出したいデータベースの DB識別子 をクリック 「設定」を選んで パラメータグループの名前をクリック 該当DBの「設定」をクリック 「パ…

海外アクセスを弾くフィルタと AWS Elastic IP の罠

はじめに結論から ハマった経緯 エラー内容の確認と原因 エラーの原因 エラーの特定フロー まとめ はじめに結論から 先日、AWS の Elastic IP を使っていてハマった。 Elastic IP から割り当てられる IP は、東京リージョンで発行したものだとしても日本の I…

AWSのEC2でとりあえずPHP Laravelを動かす

はじめに 環境 PHP, nginx, php-fpm のインストール PHP と php-fpm を Amazon Linux にインストールする nginx を Amaxon Linux にインストールする 各種設定 nginx の設定 server_name root fastcgi_pass php-fpm の設定 ユーザーと権限 nginx から php-fp…

AWS IAM に公開鍵を登録しているが CodeCommit から git clone しようとすると Permission denied (publickey)

エラー内容 解決方法 エラー内容 $ git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/xxxxxxxx Cloning into 'xxxxxxxx'... yoshiyuki_sakamoto@git-codecommit.ap-northeast-1.amazonaws.com: Permission denied (publickey). fatal:…