AWS関連のことを調べてみた2023年04月07日

AWS関連のことを調べてみた2023年04月07日
目次

AWS ECS – Rails でDB作成・マイグレーションする

こんな風にタスク定義でコマンドを `&&` でつないで
DB作成・マイグレーションと Railsサーバーの起動を両方してしまえば良いようだ

“`
“command”: [
“sh”,
“-c”,
“bundle exec rails db:create db:migrate && bundle exec rails s -p 3000 -b ‘0.0.0.0’”
],
“`

# チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

# Twitter

元記事を表示

AWS Certified Solutions Architect – Associate(SAA-C03)の勉強方法

## はじめに
– 2023年3月20日にAWS Certified Solutions Architect – Associateに合格したので自分がやった勉強方法を紹介したいと思います。

## 簡単な経歴
資格取得前でのAWSに関する知識はEC2などの基本的なサービスを知っているぐらいで、業務で触ったのはS3, DynamoDBぐらいでした。
–  2015/04~2019/03・・・SierでLotus Notesを使った保険システムの新規開発、保守・運用
–  2019/04~2019/08・・・プログラミングスクールでRuby on Railsを勉強
–  2019/09~現在・・・バックエンドエンジニアとしてRuby on Rails/Golangをやったり

## AWS Certified Solutions Architect – Associate(SAA-C03)って何?
– “Amazon Web Services(AWS)の課題解決に関する知識を評価する資格試験の1つ“です。
– 簡単にいうと、「◯◯みたいなことやりたいんだけどAWSでや

元記事を表示

SSH接続でPermission denied (publickey)エラーが表示された時の対処方法:設定ファイルを確認!!

# このエラーが出たら!!
– Permission denied (publickey)
– Authentication failed, permission denied
– Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

# 対処方法1 : アクセス許可を修正
鍵のペアが間違っていないのにアクセスできない場合に有効
– ec2
“`bash
$ sudo chown root:root /home
$ sudo chmod 755 /home
$ sudo chown ec2-user:ec2-user /home/ec2-user -R
$ sudo chmod 700 /home/ec2-user /home/ec2-user/.ssh
$ sudo chmod 600 /home/ec2-user/.ssh/authorized_keys
“`
– ec2以外
“`bash
$ sudo chown root:root /home
$ sudo chmod 755 /home
$ sudo

元記事を表示

【要点が分かる】AWS Certified Solutions Architect – Professional 合格体験記

# 1.はじめに
こんにちは、株式会社ジールの @oreo_tです。
先日、AWS Certified Solutions Architect – Professionalに合格したので、合格までの筋道についてと、試験対策の要点を紹介したいと思います。

難しい試験ですが、しっかりと対策すればやりようはあるので、受験予定の方の参考になれば幸いです。

# 2.筆者の経歴
##### 職種:SE(ETL,DB周りの設計、開発)
新卒入社で、SE歴丸4年(2023/4/3時点)です。
AWS歴は3年半ほどで、普段の業務ではGlue(Python),Athena,RedShift等を使ったETL設計・開発をしています。

##### 試験履歴
2019年11月 AWS Certified Cloud Practitioner 合格
2020年7月 AWS Certified Solutions Architect – Associate 合格
__2022年3月 AWS Certified Solutions Architect – Professional 不合格(683点)__

元記事を表示

【AWS】cdk-nagで単体テストのメッセージを整形し、コーディングしながら爆速でセキュリティ遵守する!

# はじめに

近年、[セキュリティのシフトレフト](https://cloud.google.com/architecture/devops/devops-tech-shifting-left-on-security?hl=ja)が注目を浴びています。セキュリティのシフトレフトとは、開発ライフサイクルの早い段階でセキュリティチェックしていこうねという考え方です。

タイトルにもある [cdk-nag](https://github.com/cdklabs/cdk-nag) とは、AWS CDK と統合したセキュリティ・コンプライアンスをチェックできるツールです。cdk-nag の事例は増えており、私が所属するチームでも、年明けから cdk-nag を本格的に利用し始めました。

[公式ブログ](https://aws.amazon.com/jp/blogs/news/manage-application-security-and-compliance-with-the-aws-cloud-development-kit-and-cdk-nag/)には、cdk-nag の単体テスト利

元記事を表示

AWSの構成図自動生成サービスまとめメモ

# はじめに
既に運用されているAWSのWEBアプリの、リソースを読み込んで構成図を自動生成してくれるサービスまとめメモになります?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455073/e6bb1b7a-8490-5013-62e2-2b85ce13ffb7.png)

# 一覧

## [Cloudcraft](https://www.cloudcraft.co/ “Cloudcraft”)
– 年490ドル

## [SmartDraw](https://www.smartdraw.com/ “SmartDraw”)
– 月9.95ドル
– 個人アカウントの場合。
– 年単位払いのため最低でも9.95*12=119.4ドル

## [Cloudockit](https://www.cloudockit.com/ “Cloudockit”)
– 年1250ドル
– 1ユーザープランの場合。

## [Lucidscale](https://luci

元記事を表示

Amazon Macie を使用したデータ検出と分類のための AWS CLI コマンド解説

この記事では、Amazon Macie の機能を検証するための AWS CLI コマンドを解説します。Amazon Macie は、AWS 上のデータを自動的に検出、分類、保護するサービスであり、機密情報を特定し、データ漏洩リスクを軽減するのに役立ちます。

## 前提条件

– AWS CLI がインストールされていること。
– AWS アカウントが作成済みで、適切な権限が付与されていること。
– Macie を使用するためのリージョンが有効化されていること。

## Macie の有効化

まずはじめに、以下のコマンドで Macie を有効化します。

“`
aws macie2 enable-macie –region
“`

このコマンドは、指定したリージョンで Amazon Macie を有効化します。

## S3 バケットの作成と Macie が検出するデータを含むオブジェクトのアップロード

このセクションでは、S3 バケットを作成し、Macie が検出するデータを含むオブジェクトをアップロードする手順と AWS CLI コ

元記事を表示

踏み台サーバ用の .ssh/config 自動生成

# はじめに
AWS で EC2 を複数立ち上げて、それらに踏み台サーバ (bastion サーバ) 経由でSSHログインすることはよくあることかと思います。その際、管理コンソールでプライベートIP調べてログインとか面倒ですよね。できれば名前でログインできたら便利ですが、そのための .ssh/config を管理コンソールから読み取って作るのも、それなりに面倒です。本記事では aws CLI を使って .ssh/config を生成する bash スクリプトをご紹介します。

# 前提
* Linux 環境 (WSL2 とか) が利用可能であること
* AWS CLI がインストールされていること
* ec2:DescribeInstances の許可を受けた IAM を所有していること
* EC2 に名前が設定されていること (タグのキーが Name、値にホスト名が設定されていること)
* 踏み台サーバにログインユーザーの秘密鍵が、踏み台経由でログインしたいサーバにその公開鍵が配置されていること (そのような設定をした AMI からインスタンスを作成する必要がありますね)
* jq

元記事を表示

AWS SAPの資格取得までに通った道

# SAPとはなんぞや?
AWSの一番難しいとされている試験で、かなり広い範囲の知識を求められています。(AWSのサービスもそうですが、ITの基本的なこと全般を理解していないと解けません。)
公式が試験範囲とサンプル問題として以下のように出しているので、気になる方はぜひご覧ください。
– [試験範囲](https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sa-pro/AWS-Certified-Solutions-Architect-Professional_Exam-Guide.pdf)
– [サンプル問題](https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sa-pro/AWS-Certified-Solutions-Architect-Professional_Sample-Questions.pdf)

# 前提
Developper Associate(DVA)を一昨年の5月、DevOps Professional(DOP)を

元記事を表示

Node.jsでS3オブジェクトをまとめてZip圧縮してS3に保存する

## 要点
Node.js Streamを使うことで、メモリやストレージにデータを保持せず、高速かつ省メモリに実現できる。

## 実装
AWS Lambda (Runtime: Node.js 16.x) を想定した実装になっている。事前に [archiver](https://www.npmjs.com/package/archiver) をインストールしておくこと。
“` index.js
const archiver = require(‘archiver’);
const { PassThrough } = require(‘stream’);
const { S3 } = require(‘aws-sdk’);

const s3 = new S3();

const bucket = ‘bucket’;
const keys = [‘key1’, ‘key2’, ‘key3’];

exports.handler = async (event) => {

const archive = archiver(‘zip’);
const output = new

元記事を表示

AWSコンソールで編集しようとして「Network Failture」が出たらブラウザを変えてみよう

# 起きたこと
AWSコンソールからAmazon API Gateway(REST API)のリソースのパラメータ値を変更しようとチェックを押したら
画面上に「Network Failture」と表示され更新できない。。
バリデートエラーでもなさそう。

# 対応したこと
AWSコンソールをChromeで開いていたのですが、Safariで開き直したところ成功しました。
(Firefoxだとダメでした)
はっきりとした原因は分からないが、Cookieの問題もありそう?
とりあえず直したい人の役に立ったら幸いです。

元記事を表示

WSL(Ubuntu)でTerraform利用準備と備忘メモ

WSL2のUbuntuを使って、Terraformを操作していく。

# 環境
以下。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229539/4b478df2-f336-1be0-f9c7-6e48fb5735fc.png)

# 前提
– Windowsがインターネットに接続できていること
– [WSLにUbuntuをインストール済であること](https://qiita.com/If_it_bleeds-we_can_kill_it/items/3ce21243f3caceeb4a81)
– Ubuntu-20.04
– AWSでIAMユーザのシークレットが払い出されていること

# やり方
## WSL準備
– Powershellを開く

– powershell:コンソールログ記録(新規)
Teratermログのようなコンソールの記録を取るばあい、Powershellではこうする。
“`powershell:Powershell
Start-Transcrip

元記事を表示

OCRサービスで抽出したテキストデータをChatGPTに解析させる

## はじめに

#### 記事の対象者と目的
こんにちは!株式会社エンラプト開発チームです。本記事では、OCR(光学的文字認識)のサービスを活用したアプリケーション開発に関心がある皆さんに向けて、ChatGPTと組み合わせてOCRを利用する具体的な方法や特徴を解説します。

OCRサービスを利用すれば画像からテキストを抽出できますが、そのままのテキストではデータとして利用しづらい無秩序な形になってしまっています。
しかしながらChatGPTを利用することで、OCRから抽出したテキストを各項目へマッピングし、使用しやすいフォーマットに変更することが可能になります。

#### 成果物

レシートの画像のURLを指定するとそのレシートの画像から日付、商品名、商品ごとの金額、合計金額をjson形式で出力してくれるアプリケーションを作成しました。

![無題のプレゼンテーション.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3293508/f0cb55a6-2375-08de-0234-7a1b88d05

元記事を表示

【ドラゴンボール風解説】CIDRブロックについて

# はじめに
この記事はAWSの説明は今ひとつよくわからないのでドラゴンボールに例えて説明してほしい。
というAWS初学者向けの記事です。
※投稿記事作成にはchatGPTを使用しております

# CIDRブロック 
オッス、オラ悟空!
CIDRブロックってのは、天下一武道会の予選会場みたいなもんだ!予選では、格闘家たちがそれぞれのブロックで戦って、勝ち残った者だけが本選に進むだろ?CIDRブロックも同じで**IPアドレスを範囲ごとに分けて各ブロックに割り当てるん**だ!

例えば、192.168.0.0/16の範囲をCIDRブロックに分割する場合、192.168.0.0/24、192.168.1.0/24、192.168.2.0/24などのCIDRブロックができるわけだ!そして、それぞれのCIDRブロックには、対応するIPアドレス範囲が割り当てられて、**ブロック内のデバイスたちが通信を行う**んだ!

天下一武道会と同じように、CIDRブロックでも各ブロック内で戦う格闘家たちが勝ち残り、本選に進むように、CIDRブロック内のデバイスたちも各ブロック内で通信を行って、必要な情報をやり

元記事を表示

Amazon VPC Lattice が GA したので Lattice 経由で Lambda を呼んでみた

# はじめに
Amazon VPC Lattice が GA しました。
[Announcing the general availability of Amazon VPC Lattice](https://aws.amazon.com/jp/about-aws/whats-new/2023/03/general-availability-amazon-vpc-lattice/)
Lattice は、VPC上のインフラを抽象化してサービス間通信をシンプルにするためのサービスで、re:Invent にて発表されて以来 Preview の状態となっていました。
この記事は、早速触ってみたといういわゆる「やってみた」系記事です。

# 構成
普通の構成の VPC の Private Subnet にいる EC2 Instance から、VPC Lattice サービスとして登録された Lambda に対して HTTPS でリクエストして、レスポンスが返ってくるかを確認します。
![lattice.png](https://qiita-image-store.s3.ap-northeast-

元記事を表示

【Git】”fatal: detected dubious ownership in repository at…”というエラーが出た場合に考えられる原因と解決策

# 概要
* `git branch`を実行したら、`fatal: detected dubious ownership in repository at…`というエラーメッセージが出てきました。本記事ではその原因と解決方法を記します。

# エラーメッセージと意味
* EC2インスタンスで`git branch`を実行したら、、

“`terminal
$ git branch
fatal: detected dubious ownership in repository at ‘/var/www/html/sample_homepage’
To add an exception for this directory, call:

git config –global –add safe.directory /var/www/html/sample_homepage
“`

* 上記のエラーメッセージが返ってきました。初めてみるメッセージでした。
* 調べてみると、gitが指定されたリポジトリのディレクトリ所有者に疑念を抱いていることを示しているとのこと。

## 原

元記事を表示

Athenバージョンアップ

“IGNORE NULLS”を使用してNULLを無視することができなくなりました。BOOL_OR関数を使用する際には、BOOL_OR(col1, col2)のように省略せずに使用する必要があります。
sql
Copy code
— Before
SELECT COUNT(*) FROM table WHERE BOOL_OR(col1, col2) IGNORE NULLS;
— After
SELECT COUNT(*) FROM table WHERE BOOL_OR(col1, col2);
CONCAT関数には、二つ以上の引数が必要になりました。以前は、一つの引数でも使用することができましたが、今後は使用できません。
sql
Copy code
— Before
SELECT CONCAT(col1) FROM table;
— After
SELECT CONCAT(col1, ”) FROM table;
GROUP BY句で、ネストされた列名を使用する場合には、ダブルクォーテーションで囲む必要があります。
sql
Copy code
— Before
SELE

元記事を表示

[AWS Glue]開発エンドポイントをCLIで削除する

# はじめに

開発エンドポイントがマネジメントコンソールから削除できない場合があることと、CLIで削除する手順を記載しています。

## 発端

マネジメントコンソールからAWS Glueの開発エンドポイントを削除しようとしましたが、
メニューから「開発エンドポイント」を見つけることができず、CLIで削除しました。
シドニーリージョンでは「Legacy pages」に「開発エンドポイント」メニューがあり、ここから生成や削除が可能でした。

![sydney.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/545707/3121c8ae-d83a-e34c-f759-9bcc27ac8dd7.png)

一方、東京リージョンでは「開発エンドポイント」メニューが見当たりませんでした。
シドニーリージョンの「開発エンドポイント」画面のURLを東京リージョン用に変換しても、別のメニューに遷移しました。

![tokyo.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

CloudFront Functionsで一つの関数に複数サイトのBASIC認証情報をまとめて設定する方法

以下の内容を全文コピペして貼り付けると良いのだ
トリガーは `ViewerRequest` にするのだ
`getAuthMaps` 関数内に、設定したいサイトのホスト名と、BASIC認証のID/PWを適宜入力するのだ

特定のディレクトリ配下にだけBASIC認証をかけたい?知らね

“`javascript
/**
* Get basic auth informations
*
* @return {Array-object} maps
*/
function getAuthMaps()
{
var maps = [
{ “hostname”: “test.example.com”, “username”: “onamae”, “password”: “pasuwaado” },
{ “hostname”: “test.example2.com”, “username”: “onamae2”, “password”: “pasuwaado2” }
];
return maps;
}

/**
* Get spec

元記事を表示

AWS ECS へのデプロイでコンテナのヘルスチェック ( curl ) が失敗し続ける

# 問題

Terraformでいうとこんなタスク定義
単純に curl しているだけなのだが何故か失敗し続ける

“`
“healthCheck”: {
“command”: [
“CMD-SHELL”,
“curl -f http://127.0.0.1:80/ || exit 1”
],
}
“`

# 解決

docker container に curl がインストールされていないのが原因だった
Dockerfile で インストールするようにしたら成功するようになった

コンテナのヘルスチェックはコンテナ本体から実行されるようだ

あとから分かってみれば自明の理なのだがしばらく気づかなかった

まずはlocalでdocker containerに接続して、ヘルスチェックそのままのコマンドを実行して試すと良いようだ

`curl -f http://127.0.0.1:80/ || exit 1`

# 参考

>解決方法
>Amazon ECS のコンテナヘルスチェックの失敗をトラブルシューティングするには、以下のヒントを

元記事を表示

OTHERカテゴリの最新記事