AWS関連のことを調べてみた

AWS関連のことを調べてみた
目次

S3のクロスリージョンレプリケーション(CRR)について

### CRRとバージョニング
S3のクロスリージョンレプリケーションを行うためには、S3バケットのバージョニングを有効化しておく必要がある。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/replication-and-other-bucket-configs.html#replication-and-versioning

元記事を表示

AWS ipv4でお金かかってるけど、どうすんだ(確認編)

# はじめに
2024/02/01 からAWSでpublic ipのうちipv4のお金がかかるようになりました。

AWSのIPは4種類
1. EC2のパブリックIPアドレス
1. Elastic IPアドレス
1. サービス管理のパブリックIPアドレス
Amazon ECS、Amazon RDS、Amazon Workspaces のパブリック IPv4 アドレスなど
1. BYOIPアドレス

「2」は元々課金
「1,3」が今回から追加となります

# いくらかかっているかを把握する
## Billing
下記の2つが該当するので調査してみましょう。
結構地味に効く金額なってます。
– In-use public IPv4 address per hour
– Idle public IPv4 address per hour

## Public IP Insights
じゃあどのIPなのかなって調査する場合は本サービスが有効です。

### IPAMの有効化
Amazon VPC IP Address Manager を有効にしておく必要があります。
お使いのリージョンをまと

元記事を表示

AWSに関する勉強備忘録④ – AWSアカウント、リージョン、Cloudwatch、EC2

## AWSの概要

AWSは、クラウドコンピューティングプラットフォームであり、サーバーやストレージ、ネットワーキング、データベース、分析、アプリケーションサービスなど、多種多様なサービスを提供しています。最大の特徴は、**オンデマンド**でリソースを利用でき、「必要なものを必要な時に必要なだけ」使える柔軟性があります。これにより、ユーザーはインフラの過剰な前投資を避けつつ、ビジネスの成長や変化に合わせて容易にスケールアップ・ダウンが可能です。

## サービスの組み合わせ

AWSでは、複数のサービスを組み合わせて使用することが一般的です。例えば、Amazon EC2(Elastic Compute Cloud)でアプリケーションをホストし、Amazon S3(Simple Storage Service)でデータを保存し、Amazon RDS(Relational Database Service)をデータベースとして使用することができます。これにより、開発者はアプリケーション構築に必要な各コンポーネントを柔軟に、かつ簡単に組み合わせて利用できます。

## AWSアカウントとR

元記事を表示

AWS vs Azure vs Google: クラウドプロバイダー比較

今回は初めての投稿でテストです。
今後、逸れながら進んでいく道を残して行きたいと思います。

AWSとAzureとGoogleの比較は、クラウドコンピューティングの状況が非常に速く変化するため、注意して扱う必要があります。しかし、比較は、各プロバイダーから最適な製品とサービスを選択し、より費用対効果の高いマルチクラウド環境を構築するための手助けになります。

AWSとAzureとGoogleの比較では、コスト、製品範囲、将来の展望という3つの重要な要素に焦点を当てています。このうち、多くの企業にとって主要な要因はコストです。従量課金制のコンピューティングがオンプレミスのデータセンターを構築するために必要な投資と比較して、大きな財務的利益をもたらすからです。

コストにほとんど差がない場合、各クラウドサービスプロバイダーの製品範囲が次の影響を与える要因となります。ただし、コスト要因と同様に、製品範囲も頻繁に変化します。そのため、私たちのAWS対Azure対Googleの比較で最も安定しているのは、各クラウドサービスプロバイダーの将来の展望です。

「将来の展望」をAWS対Azure対G

元記事を表示

【AWS】CloudFormation Guardでよく使う評価ルールとハマりポイント

## はじめに

CloudFormation(以下CFn)使用時にCloudFormation Guardを使用していますか?
CFnのPolicy as Codeといえばこのツールと認知されている、
CFnにおけるガードレールの役割を担うツールがCloudFormation Guardです。

本記事は、CloudFormation Guardを利用したPJにおいて、
繰り返し利用したルールセットと一部ハマりポイントを記載した記事となります。
※CloudFormation Guardに関する説明・使い方他のブログで紹介されているので、
 本記事の記載範囲外となります。

## CloudFormation Guardとは・使い方
以下ブログにわかりやすくまとめられているため割愛します。

## 紹介評価ルールの構造
基本的に上記まとめブログに記載されていますが、
本記事におけるルールの構造を記載します。

例)KMSの暗号化確認
“`
let aws_kms

元記事を表示

【Go, AWS】低予算APIサーバー構築を最初から最後まで【Golang, Lambda, DynamoDB, API Gateway, Cognito】

:::note
* `Go` -> `Python`差し替え編
* クライアント(`Vue.js`)編

執筆中です。
:::

:::note warn
価格・安全性など重要事項は随時ご自分で調べ、自己責任で作業をしてください。
筆者はいかなる損害について責任を負いかねます。
:::

## はじめに
低予算(規模が十分小さければ無料)で[REST APIサーバー](https://qiita.com/masato44gm/items/dffb8281536ad321fb08)を作りましょう。

DBあるよ!

## 概要
まず、低予算で推奨されるのが [**サーバーレス**](https://business.ntt-east.co.jp/content/cloudsolution/column-414.html) です。
厳密性を無視して簡単に言うと、 **常時待機するのではなく、必要な時だけ動作するサーバー** というイメージです。低予算でいける理由がこれでわかりますね。

思ったよりやること、というよりかは扱わないといけない機能が多いです。

![AWS_Rest.drawi

元記事を表示

Lambda(AWS Lambda)について

# はじめに
こんにちは!開発部のMです。
今回はサーバーレスサービスの一つである「Lambda」についてご紹介します。

# Lambdaとは
FaaSサービスの一つです。本来、アプリケーションを開発するためには自社内でサーバを準備しなければなりません。しかし、FaaSではインターネットを介してサーバを利用できるため、サーバレスな開発が実現します。
これはアプリ開発者によるサーバ管理が不要、存在を意識する必要がないということであり、サーバがなくてもアプリ開発ができるという意味ではありません。

# AWS Lambdaの特徴
AWS Lambdaでは、まず実行したいアプリケーションコードをLambda関数で開発し、Lambda上にデプロイします。するとアプリケーションが実行可能になります。

### サポート言語
Java、Go、PowerShell、Node.js、C#、Python、Rubyなど
その他のプログラミング言語を使用できるようにするための Runtime API も提供されています。

### 処理のトリガー
*  **ファイル処理:** Amazon Simple

元記事を表示

Security HubとTrusted Advisorを比較してみた

## はじめに
「AWSの社内標準CSPM(※)ツールとしてどのAWSサービスを案内すべきか。無料のTrusted Advisorは充足しないのか。」という主旨のお問い合わせのご対応で、Security HubとTrusted Advisorの「セキュリティチェック」の機能比較をおこなう機会がありました。
ニッチなのか意外と記事を見つけられなかったので、当時(2023年)の調査結果を現時点の情報で最新化しながら書き記しておきたいと思います。

※CSPM=Cloud Security Posture Management。クラウドセキュリティの状態管理のソリューションの総称であり、クラウドサービスの設定値にセキュリティポリシーやベストプラクティスからの逸脱がないかチェックする機能を持つ。

## Security Hubとは
AWS内のセキュリティの状態と、セキュリティ基準およびベストプラクティスに準拠しているかどうかを、包括的に把握できるサービスです。
– セキュリティ基準を用いたAWS環境の自動チェック
– AWS基礎セキュリティベストプラクティス、CIS Benchmar

元記事を表示

アプリケーションログをFluent BitでCloudWatch Logsに集約した話

# 概要

今回は、EC2で稼働している弊社のアプリケーションログをCloudWatch Logsへ集約しました。
その中で調査したツールの比較や、設定方法について紹介します。

# 背景

弊社の主要なアプリケーションは2台のEC2で稼働しています。
これまではエラーを調査する際、
1. EC2(A)にsshで接続してログファイルをgrepして探し、
2. 該当エラーがない場合はEC2(B)にsshして…

とそれぞれのインスタンスを行き来することになり、調査に時間がかかっていました。

そこで、アプリケーションログをCloudWatch Logsに集約することでログを一元管理し、ブラウザからエラー調査ができるようにする必要がありました。

# 各ツールの比較

## FireLens

ECSの場合使用可能。今回は通常のEC2なので候補から外れました。

https://aws.amazon.com/jp/blogs/news/under-the-hood-firelens-for-amazon-ecs-tasks/

> ### なぜ単に Fluentd や Fluent B

元記事を表示

AWS検証アカウントを作成するときに実施するセキュリティ対策

社内で検証用のAWSアカウントを整備する機会があったので、記事にまとめてみました。

# 検証用のAWSアカウントで実施したこと一覧
– IAMロール権限分離(推奨)
– IAMグループによるユーザ管理(推奨)
– IP制限
– MFA強制化(推奨)
– マルチアカウント(推奨)
– 権限昇格対策その1(推奨)
– 権限昇格対策その2

# 実施項目ごとの説明
各実施項目の詳細を以下に記載していきます。

## IAMロールによる権限分離
AWSアカウントの各ユーザに権限を付与することで、クラウドサービスの操作ができるようになります。権限設定が面倒だからといって、すべてのユーザにAdministrator Access(フルアクセス権限)を与えていませんか?
全てのユーザにフルアクセス権限を付与してしまうと、セキュリティリスクのある操作(機密情報のアップロード、アクセスキーの作成)や請求情報の閲覧・操作などが可能になってしまいます。
そのため、一部のAWSアカウント管理者のみフルアクセス権限を付与し、その他は作業用のユーザとして必要最低限の権限を付与するように、役割ごとに権限を分離する

元記事を表示

Amazon S3上にアップロードされているファイルの存在確認は、アクセス権限が無いとできない

## はじめに
この記事はLaravelアプリケーションの実装において、
Amazon S3(以下、S3と記載)にファイルがアップロードされているかをチェックしようとして、
3時間近く沼ってしまった今日の自分に捧げます。

## 環境
Laravel: 8
PHP: 7.4
PC: MacOS14(Sonoma)

## 結論
S3のバケットポリシーによって、S3にアップロードされているファイルへのアクセス権限がない状態だと、
LaravelのStorageクラスを使用してもファイルの存在が確認できなくなる。

“`php
// ファイルへのアクセス権限がないと、結果は必ずfalse(ファイルが存在していない)になる
Storage::exists(‘S3上のファイルパス’);
“`

バケットポリシー以外のアクセス権限でも、同様の影響を及ぼすかは不明。

## 経緯
S3で同じ名前のファイルが既に存在するかどうかの確認が必要だったため、以下のコードを実装しました。

“`php
if (Storage::exists(‘ファイルパス’)) {
// 同じ名前のファイルが

元記事を表示

AWSデータレイク

データレイクサービスのまとめ、構成について

ハンズオンで適当な環境でしか実行をしていなかったのでAWSのベストプラクティス的要素とそのたデータレイク関連のサービスについて調べ、まとめることに

最終回で今回の学習をもとにした簡単なデータレイク基盤の作成、glue+Athena+Quicksightの流れを発表したいと思います

今までは単純にS3でデータを取ってくる、前回はSecuritylakeにフォーカスしましたが

AWS Lake FormationとData Lake Foundation on AWS
Partner Solution Deployment Guide

https://aws-ia.github.io/cfn-ps-datalake-foundation/

AWS Lake Formation の特徴

AWS Lake Formation を使用すると、分析や機械学習 (ML) 用のデータを一元管理、保護、およびグローバルに共有することが容易になります。

Lake Formation では、AWS Glue データカタログを使用してデータのセキュ

元記事を表示

opensearchのダッシュボードのユーザ認証にKeycloakを使う

OpenSearchダッシュボードへのサインイン手段としてKeycloak+SAMLを使ったSSOを設定したので、備忘録としてアウトプット。

– OpenSearchのバージョン:OpenSearch_2_11_R20231113-P3
– Keycloakのバージョン:23.0.7

また、Keycloakは例のごとくWSL上で起動したものを使用する。

## Openserach側の設定

セキュリティ設定のタブの「設定」をクリックします。

![スクリーンショット 2024-03-11 085916.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389171/5564f0a8-2fff-80f4-09bb-d6f17ebbb055.png)

「OpenSearch Dashboards/Kibana 用の SAML 認証」の「SAML認証を有効化」にチェックを付けます

![スクリーンショット 2024-03-11 090057.png](https://qiita-image-store

元記事を表示

AWS DynamoDB テーブル内のデータを確認する方法のメモ

## 概要

AWSのDynamoDBにてAWSマネジメントコンソール上からテーブル内部のデータを確認する方法をメモ的にまとめる。

## 方法

1. DynamoDBのコンソールを開く。
1. 左サイドバーの「項目を検索」をクリックする。

![項目___Amazon_DynamoDB_Management_Console___DynamoDB___us-east-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/aa3625fe-a5eb-05df-260e-bb5f842fcebb.png)

1. ラジオボタンでテーブルを選択する。

![項目___Amazon_DynamoDB_Management_Console___DynamoDB___us-east-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/6a05480e-ae7e-ea3a-5250-04dfb3

元記事を表示

[AWSエンジニア志望] 採用で生きる 資格取得とは別の強み

## この記事が書くこと

– 「AWSエンジニア」ってなんぞ?
– 「AWSエンジニア」ってどういう需要?
– 資格取得とは別の武器について

## 読んで欲しい人

– インフラ、AWSエンジニアを目指して就職、転職活動をしている方
– 上記関連資格の取得やそれに向けた勉強を行っているが、ぶっちゃけあんまり上手くいってない方
– いざAWSエンジニアで求人してる会社に入ってみたら「何か違った」という経験をお持ちの方

## 1.「AWSエンジニア」とは?

日頃からTwitter(X)を覗いていると、AWSエンジニアなるものになるために、AWS関連の資格を取得し、就職もしくは転職活動に励んでいる方をよく目にします。

もちろん資格取得に向かって勉強し、実践に備えることは有益なことであるというのは、おそらく多くの人が納得するところです。

しかし、私が気になっているのは、求人にも掲載されてる「AWSエンジニア」という職種は、具体的にどのような業務をすることになるのだろうかということです。

ご存知のように「AWS」は大手クラウドプロバイダー及びそれが提供するサービスの総称です。

元記事を表示

Amazon Verified Permissionsな世界とAmazon API Gateway

# はじめに

 AWS Verified AccessやAmazon Verified Permissionsって紛らわしいですよね。どっちがどっちだかわからなくなるところなのですが、今回は、[Amazon Verified Permissions](https://aws.amazon.com/jp/verified-permissions/)を使った認可制御についてのアーキテクチャを考えます。
 ゴールとしては、Amazon Verified Permissionsはどんなやつなのか理解する、です。

# Amazon Verified Permissionsとは
 [Amazon Verified Permissions](https://aws.amazon.com/jp/verified-permissions/)は、アプリケーションのアクセス許可の管理およびきめ細かな承認サービスです。制御については、ポリシー言語である [Cedar](https://www.cedarpolicy.com/en) を使用して、ロールと属性を使用してポリシーベースのアクセス制御を定義し、

元記事を表示

LambdaにLine BOTを作ったメモ

Cloud9環境でLambda(Python)にLine Botを作る手順をまとめておきます。
例によって自分用。

ちなみに自動応答や一斉配信、リッチメニュー等は公式アカウントの機能で実現できます。今回はSlackとの連携やデータ収集機能を追加する予定なのでLambdaで実装しました。

## 前提
– OS:Amazon Linux 2023
– Pythonバージョン:3.10
– [LINE Messaging API](https://developers.line.biz/ja/services/messaging-api/)

## LINE側準備
### LINE公式アカウント作成
まずは[LINE公式アカウント](https://www.lycbiz.com/jp/service/line-official-account/)を作成します。複数人での管理を前提とするならメールアドレスで登録しておきましょう。
Amazon EventBridge で毎月最初の平日に実行するルールを指定する(cron式)

cron 式というものを使ってAmazon EventBridge で
毎月最初の平日に実行するルールを指定する方法のメモです

具体的にはこれによって
商用環境は毎日起動しているが、テスト環境は土日起動していないので
月初が土日のときにテスト環境で失敗してしまう、というのを防げるはずです

# 結論

“`
cron(0 1 1W * ? *)
“`

# 詳細

## 1. そもそも Amazon EventBridge とは何か

ものすごくざっくりいうと
1. イベントが発生し、
1. そのイベントが定義したルールと一致する場合、
1. ターゲット に Amazon EventBridge イベントを送信する

https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-what-is.html

今回だと
– イベント:日時
– ルール:cron 式
– ターゲット:任意

という感じです

## 2. cron 式とはなにか

そもそも cron とは:
– Unix系オペレーティングシステムの

元記事を表示

DynamoDB の KeyConditionExpression と FilterExpression で詰まった話

DynamoDB に触ったこともない人間が
KeyConditionExpression と FilterExpression の違いで詰まったのでメモとして残しておきます

# 結論

– KeyConditionExpression
→ パーティションキー or ソートキー の属性にのみ使用できる
– FilterExpression
→ パーティションキー or ソートキー でない属性(非キー属性)にのみ使用できる
– FilterExpression の方がだいぶいろいろできる

# 詳細

## 1. そもそも何に使うものか

KeyConditionExpression も FilterExpression も
DynamoDB のテーブル中から項目を検索する( `Query` を投げる)ときに使います

厳密には
1. KeyConditionExpression を使用して、DynamoDBテーブルにクエリを投げる
1. 1 の結果に対して FilterExpression を適用し、結果を返す

という流れのようです

詳細はこちら

https:

元記事を表示

Lambda Node.js serverlessを使うほどでもないちょっとした関数を書きたいときのDocker環境を作ってみた

## 概要

Lambdaにて小規模なコードを記載したい場合にちょっと楽できるようなDocker環境を作ってみました。

## 発端

小規模な処理(例えばSESのバウンス情報をSNSからLambdaを経由してSlack通知したい場合)をLambdaで使いたい場合、下記のようなジレンマがある。
– Lambdaのブラウザのエディタで書くのはなんかテンションが上がらない、普段から慣れてるエディタを使いたい。。。
– serverlessだとリッチ過ぎる、学習コストもかかる。。。
– 慣れてるエディタで書こうとしてローカルPCのNode.jsを使って書くと、複数の開発者がいる場合バージョン合わせが大変。。。

Dockerならこの辺を一挙に解決できるのではと思い今回環境を作ってみました。

## 御託はいい、早くその環境をよこせ

もちろんどうぞ!
↓こちらから取得いただけます。完全にフリーで利用いただけます。おそらく利用方法はREADMEを呼んでいただければ大丈夫だと思います!

https://github.com/miriwo0104/nodejs_20_lambda_local_d

元記事を表示

OTHERカテゴリの最新記事