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

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

InstanceRestarter(インスタンスをリスタートするやーつー)

# 概要

必要にかられて、こんなものを作ったのでメモがてら。
1. EventBridgeから定期的に
1. Lambdaを起動して
1. 指定された名前に合致するインスタンスに対して
1. reboot(またはterminate)のリクエストを出す

# 作成手順

## IAM
1. ロールを作成
1. 信頼されたエンティティを選択
1. 信頼されたエンティティタイプ → AWSのサービス
1. ユースケース → Lambda
1. 許可を追加
1. 許可ポリシー
1. (何もしなくてOK)
1. 許可の境界を設定
1. 許可の境界なしでロールを作成(デフォルト)
1. 名前、確認、および作成
1. ロールの詳細
1. ロール名 → それなりの名前(`InstanceRestarter-role`等)
1. 説明 → お好きに
1. 作成したロールを選択
1. 許可タ

元記事を表示

AWS 認定

# 筆者のスペック
– 文系大学を中退
– 25歳で営業職からネットワークエンジニアに転職 2022年
– ネットワークエンジニアを1年経験し、クラウドに惹かれクラウドを専門にするため現自社開発企業に入社 2023年

## 保有資格
|AWS Certified Cloud Practitioner|AWS Certified Solutions Architect – Associate|AWS Certified Solutions Architect – Professional|AWS Certified Developer – Associate|
|:—|:—|:—|:—|
|Active Date 2022-12|Active Date 2022-12|Active Date 2024-02|Active Date 2024-03|

## AWS認定を取得しようと思ったキッカケ
最初はAmazonが提供するサービスということくらいしかしりませんでした。

私が寒いサーバールームで汗をかきそうになりながらサーバーラックにネジを巻いている話をした時に、友人

元記事を表示

[CI CD] GithubActionでReactAppのCI CDを設定

# 前提
本記事では、GitHub ActionsとAWSを組み合わせて、フロントエンドのCI/CDパイプラインを構築する方法について解説させて頂きます。フロントエンドのCI/CDとは、開発したコードの自動的なテストしたりビルドしたりリリースしたりするプロセスです。つまり、開発者がコードを変更した際に、それが自動的にテストされ、問題がなければ自動的にリリースされる仕組みです。

# 概要
![Screenshot 2024-04-23 at 17.46.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703979/206c4cda-f1f0-47ab-8887-0d814bb9a80f.png)

**CI CD流れ**
開発者はコード成果をアップロード→Github actionは lintやテストやビルドなどの再確認処理を自動的して→OKであればS3にアップロード。(つまりリリース)

以下に設定手順を詳しく説明させて頂きます。

# 1. S3バケット作成

AWSConsoleでS3サービス

元記事を表示

【AWS】CloudFront FunctionsでIPアドレス範囲指定のアクセス制限

### はじめに

S3に配置したhtmlファイルにCloudFront経由でアクセスします。
よりセキュアにするため、アクセス制限をかけます。
特に、CloudFrontへのIPアドレス制限について、IPアドレス範囲指定でアクセス制限をする記事が見つからなかったので投稿します。

### やること
構成としては以下となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3288944/43192cd2-7b87-8ab3-676d-41a03b13337c.png)

それぞれの説明です。

* S3のアクセスは「パブリックアクセスをブロック」

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3288944/92ea3c3e-5a10-c2d9-e935-4c88ca58622e.png)

* S3のバケットポリシーには「CloudFront経由のみアクセス許可」

![ima

元記事を表示

Amazon LinuxにOpenMetadataを構築

## 目的
AWS環境 (Amazon Linux) に OpenMetadata を導入したい。それだけ (だと思ってた)。

## 環境
– Amazon Linux 2
– OpenMetadata 1.1.1
– Docker 20.10.25
– Docker Compose v2.26.1
– Python 3.7.16

## 手順
[1. EC2インスタンス構築](#ec2インスタンス構築)
[2. GUI環境構築](#gui環境構築)
[3. 各モジュールの導入](#各モジュールの導入)
[4. Dockerコンテナ起動](#dockerコンテナ起動)
[5. OpenMetadataにログイン](#openmetadataにログイン)
[6. Airflowにログイン](#airflowにログイン)

### EC2インスタンス構築
まず、下記要件を満たす必要があります。
> Minimum sizing recommendations for OpenMetadata deployment include 2 vCPUs and 4 GiB of RAM

元記事を表示

ローカルブランチで作成した Lambda 関数をワークフローでデプロイする方法【CodeCatalyst】

## はじめに

この記事では、ローカルで作成した Lambda 関数を CodeCatalyst ワークフローでデプロイする方法について説明します。Lambda 関数をデプロイするために必要な設定やファイル構成、CDK プロジェクトの設定方法などについて詳しく説明します。実務でこのような方法で Lambda 関数をデプロイする機会があり、調べてみたところ情報が少なかったため、今回の記事を作成しました。

## 前提条件

– 実行環境:Codecatalyst
– CodeCatalyst にログインしていること
– CodeCatalyst でプロジェクトを作成していること
– ロールやセキュリティグループ、VPC などの設定が完了していること

## Lambda デプロイプロジェクトのディレクトリ構成

このセクションでは、Lambda 関数のデプロイに関連するプロジェクトのディレクトリ構成について説明します。プロジェクト内の各ディレクトリやファイルが持つ役割を理解することで、プロジェクト全体の流れやデプロイプロセスの構造を把握しやすくなります。

### ディレクトリ構造

元記事を表示

【ネタ】トラフィックからaws sdkが行っている処理を見る

## 概要??

AWS SDKを使用してアプリケーションを開発する際、SDKが実際にどのようなHTTPリクエストを送信しているのかを確認したい場面がありますよね!!??この記事では、Windowsにおいて、ワイヤーシャークを使ってAWS SDKのトラフィックを解析する方法を説明します。

## 必要なツール

– Wireshark
– AWS SDK for Python (Boto3)
– Python

:::note info
SDKに関してはboto3を利用しましたが、AWSにアクセスできるのであればなんでも大丈夫です。
:::

## 手順
### Wiiresharkのセットアップ
1. Wiresharkをインストールし、起動します

2. 適切なネットワークインターフェースを選択します。Windowsの場合は、「Wi-Fi」という名前のインターフェースを選択します

3. フィルタを設定して、AWS SDKのトラフィックのみを表示するようにします。AWS SDKはHTTPSを使用するため、以下のフィルタを適用します
“`sh:絞り込みバー
443

元記事を表示

EC2にprometheusとgrafanaを構築する 

# 1.はじめに

Prometheusは、クラウドインフラストラクチャーやアプリケーションの監視に広く使用されているオープンソースの監視ツールです。この記事では、AWS EC2上にPrometheus、Grafanaをセットアップし、監視元サーバー、監視対象サーバーを準備して、実際にサーバーの監視を行ってみます。

https://prometheus.io/

# 2.EC2の準備

監視用サーバーと、監視対象サーバー用の2つのインスタンスを準備してください

・監視用サーバー
セキュリティグループのインバウンドルールにて、9090,3000のポートからアクセスできるように設定してください(Prometheusへのアクセスに9090,Grafanaへのアクセスに3000を利用)

・監視対象サーバー
SGにて、9100のポートからアクセスできるように設定してください(NodeExporterへのアクセス)

# 3.Node Exporterの構築 (監視対象サーバー)

## 3.1 作業用ディレクトリの作成

“`bash
$ sudo mkdir /usr/local/no

元記事を表示

Terraformの環境をセットアップしてみた

# 背景・目的
以前、[TerraformでS3を作成してみた](https://qiita.com/zumax/items/4a7e1002050a5f2e5903)では、AWS Cloud Shell からTerraform環境を構築しましたが、今回は、Mac環境で、[AWS CLI + SSOのセットアップメモ](https://qiita.com/zumax/items/ee18a9b115f2c8a5a49e)で設定したSSOを交えてセットアップします。

# 実践
## anyenvのセットアップ
1. 下記のコマンドでanyenvをインストールします
“`
$ brew install anyenv
“`
1. initを実行します
“`
$ anyenv init
# Load anyenv automatically by adding
# the following to ~/.zshrc:

eval “$(anyenv init -)”

echo ‘eval “$(

元記事を表示

CloudFront + S3を使ってクローズしたサイトへのアクセスを他サイトにリダイレクトする

## 概要
「クローズ済みのサイトAへのアクセスを、稼働中のサイトBにリダイレクトする」
という機能を、AWSを使って以下を実装したのでその手順を記載します。

## 目的
閉鎖済みのサイト**closed.jp**への全てのアクセスを**running.jp**にリダイレクトする。
※ ドメイン名は適当です。

## 条件
– closed.jpはドメインだけ取得している状態
– closed.jpのサーバは破棄済みで、アクセスするとブラウザデフォルトのエラー画面が表示される
– HTTPSの通信もリダイレクトする

## 構成
利用するAWSサービスとしては以下
– Route53  
– closed.jpへのアクセスを受け付けて、CloudFrontに流す
– ACM
– HTTPS通信をするための証明書を発行する
– CloudFront
– ClooudFront Functionを使って、ユーザアクセスを全てrunning.jpにリダイレクトする
– S3
– CloudFrontのオリジン、ユーザアクセスはS3到達前にリダイレクトされるため中身は空

元記事を表示

クラウドサービスのIaCとCI/CDサービスの要約と比較

### コンセプトなど

IaC(Infrastructure as Code)は、インフラストラクチャリソース(サーバー、仮想マシン、ネットワーク、ストレージなど)の構成と管理をテキストファイルでコーディングする手法を指します。これらのファイルは通常、YAML、JSON、またはHashiCorp Configuration Language(HCL)などの宣言型言語で記述されます。その後、これらのファイルをバージョン管理システムで追跡および管理できます。

IaCの主な利点には次のものがあります:

– **再現性:** IaCはインフラストラクチャの構成と管理を再現可能にします。これにより、異なる環境で同じインフラストラクチャを簡単に作成でき、トラブルシューティングや復旧が容易になります。
– **一貫性:** IaCは、すべての環境でインフラストラクチャが一貫していることを確保するのに役立ちます。これにより、エラーが減少し、セキュリティが向上します。
– **自動化:** IaCを使用して、インフラストラクチャの構成と管理を自動化できます。これにより、時間を節約し、効率が向上しま

元記事を表示

Knowledge Base for Amazon Bedrockの新機能をためす

雑な私をお許しください。

こちらが超詳しいやつです。

https://qiita.com/hayao_k/items/32f0d0479a947942d96e

Streamlitにしただけです、すいません。

“`python
import boto3
import streamlit as st

client = boto3.client(“bedrock-agent-runtime”)

st.title(“Chat with your document”)
st.write(“Knowledge Bases for Amazon Bedrock”)

uploaded_file = st.file_uploader(
“The supported file types are PDF, MD, TXT, DOCX, HTML, CSV, XLS, and XLSX”,
type=[“PDF”, “MD”, “TXT”, “DOCX”, “HTML”, “CSV”, “XLS”, “XLSX”],
)
if uploaded_file:
uploa

元記事を表示

AWS CLI 備忘録

# この記事について

AWS CLI でよく使うコマンドを個人的な備忘のためにまとめます。

# プロファイル関係

AWS CLI をどのアカウントのどのユーザーとして使うかを管理する。
こちらは AWS CLI ではなく一般的なターミナルのコマンドとして行う。

## プロファイルの一覧を見る

どんなプロファイルを作っていたかを確認する

“`shell:プロファイルの一覧を見る
cat ~/.aws/config
“`

出力はこんな感じ。アクセスキーなどは表示されない。profile のあとの名前でアクセスを切り分ける。

“`shell:出力結果
[profile chihiro-work]
region = us-east-1
output = json
[profile chihiro-personal]
region = ap-northeast-1
output = json
“`

## プロファイルの切り替え

AWSCLIコマンドをどのプロファイルでたたくかを切り替える

“`shell:プロファイルの切り替え
export AWS_PROFILE

元記事を表示

Lambda実行時のログ出力方法(Python)

# 概要
Lambda実行時のログ出力方法を簡単に記す。
ロググループの作成や紐づけ方法は記載しない。(気が乗れば追記するやも)

# 実行環境
Python3.11

“`python:lambda_function.py
import logging

# logger初期化
logger = logging.getLogger()
logger.setLevel(logging.INFO)

def lambda_handler(event, context):
“””
– 基本的なlog出力

Args:
– event: Lambda event
– context: Lambda実行コンテキスト
Return:
なし
“””
logger.info(‘INFOログ’)
logger.warn(‘WARNINGログ’)
logger.error(‘ERRORログ’)
“`

元記事を表示

古いkopsクラスタがEC2再生成後に起動しなくなったとき

## 概要

kopsを使って構築したKubernetesクラスタにて、クラスタノードのEC2が再作成されたときはcloud-initを利用して自動的にKubernetesクラスタノードになる構築プロセスが実行されます。
このプロセスの中で`apt-get update`を実行しますが、古いkopsを使い続けているとOS (Ubuntu) のバージョンも古くなり、やがてaptリポジトリがEOLして自動構成が完了しなくなります。
このようなときは、リポジトリのEOL警告を無視して強制的に`apt-get update`するコマンドを手動で実行することで、構築プロセスを続行させることが可能です。
運用回避ではありますが、バージョンアップまでの繋としてご活用ください。

## 手順

1. ELBのインスタンスステータスを確認する
* 本症状であればOutOfServiceになっています
* InServiceにも関わらず障害状況であれば、本手順の適用外です
2. クラスタのEC2にsshする鍵を取得する
“`bash
$ aws s3 cp s3://h

元記事を表示

AWSのEC2でWebサーバ(Apache)を構築する方法

# はじめに
仕事でAWSのEC2にApacheのWebサーバを構築してテスト環境を作る機会があり、自分の備忘録を兼ねて手順を記載します。
※この記事は2024年4月頃の情報を基に作成しています
# 前提
・AWSアカウントがあること(VPC、EC2の操作権限があること)
・TeraTarmをインストール済みであること※TeraTarmを使って作成したEC2にアクセスします
・使用するIPv4のCIDRを決めておく※使用するプライベートアドレスの範囲を決めておく
 今回は10.1.1.0/24を使用します
# アーキテクチャ図![イメージ図4.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677761/0ce0968c-63db-d6e9-8851-06a244d635f7.png)

# やること
①VPCの作成
②セキュリティグループの作成
③EC2の作成
④EC2にApacheをインストール
# 手順
### ①VPCの作成
AWSにログインし検索ウィンドウで「VPC」と検索します

元記事を表示

CodeDeployでつまづいた件

# はじめに
Code PipelineからEC2にCodeDeployする際に、想定以上に手を取られました
起こった事象と対応方法をShareします

# 事象と対策
## Artifactの設定
CodeBuildの設定をCodeBuild内のエディタで1行
> go build -o xxx main.go

としていると、CodeDeployが途中で止まり、5分でタイムアウトになりエラーとなります
その際のメッセージが、S3にアーティファクトを取りに行ったけど「S3へのアクセス権限がない」というものです
RoleやPolicyを確認しますが、特に不味そうなところはなく…

buildspec.ymlのArtifactsにビルド後のファイル名を記載すれば大丈夫でした

## EC2にデプロイできない
デプロイ先に同名のファイルがあるとダメなようです
BeforInstallに、デプロイ先のファイルを削除するshellファイルを指定すれば大丈夫でした

## appspec.ymlがないと怒られる
これは単純にCodeBuildのArtifactsに、appspec.ymlが

元記事を表示

Office入りEC2インスタンス立ち上げ記

初めまして。
AWS でOfficeをインストールしたEC2インスタンスを起動する設定・手順について共有できればと思います。

# 1. AWS EC2インスタンスについて

> Amazon EC2(Amazon Elastic Compute Cloud) は、極めて幅広く、奥深いコンピューティングプラットフォームを提供します。また、ワークロードのニーズに最も適切に対応できるように、750 を超えるインスタンスを提供するほか、最新のプロセッサ、ストレージ、ネットワーク、オペレーティングシステム、購入モデルを選択できます。(AWS公式HPより)

 要するに、AWS EC2(Amazon Elastic Cpmpute Cloud)は「仮想サーバサービス」であり、物理サーバの構築や環境構築作業を行うことなく、仮想サーバを用意できるサービスとなっています。
 利用できるOSとしては、下記のものが主になります。
+ Amazon Linux
+ CentOS
+ Red Hat Enterprise Linux
+ Windows Server

 また、EC2インスタンスを起動するた

元記事を表示

エッジプラットフォームとAWS IoT SiteWiseの連携

# はじめに
Siemens Induistrial Edge向けのアプリケーションAWS IoT SiteWise Edgeの提供が開始されました。このアプリケーションを使用することによりオンプレミスプラットフォームのIndustrial Edge DeviceとクラウドのプラットフォームAWS IoT SiteWiseとの接続設定を簡単に構築できるようになります。
今回、このアプリケーションを使用した検証を実施しましたので紹介します。

# 構成
今回の構成およびデータフローを図1に示します。
二酸化炭素濃度センサーを用いてデータ(二酸化炭素濃度、室温、湿度)をPLCで取得し、PLC上のOPCUAサーバーを動かします。
Industrial Edge Device(以下、IEDと略す。)上にはAWS IoT Greengrassがインストールされ、そのAWS Greengrass上でSiteWise OPCUA Collectorが動作します。SiteWise OPCUA CollectorはPLCのOPCUA Serverからのデータ取得を担います。
そして、AWS SiteWs

元記事を表示

Amazon Location Serviceプレースインデックス機能のフィルター機能を使ってみる

## Amazon Location Serviceプレースインデックス機能について
Amazon Location Serviceの利用方法や機能については前回の記事で紹介させていただきました。今回はその深掘りで、住所、POIなどの検索におけるフィルター機能を使ってみたいと思います。

https://qiita.com/yan_x/items/1e41a7709f583946bb7a

## フィルター機能
– BiasPosition:指定された位置に近い場所を優先に返す
– FilterBBox:指定された境界ボックス内の場所のみを返す
– FilterCategories:Amazon Location Serviceで設定されたカテゴリのリストと一致する結果を返す
– MaxResults:返される結果の最大数を指定する

## 検索してみる
まずはフィルター機能を使わずに住所検索をやってみます。
MaxResultsを5にして、公園を検索してみます。
“`
リクエストURL:POST places.geo.ap-northeast-1.amazonaws.com/pla

元記事を表示

OTHERカテゴリの最新記事