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

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

今更だけどEC2にGithub Actionを使って初めてのCI/CDを構築する

# 更新履歴

– 10/8 EC2用に変更

# はじめに

– 今や必須のCI / CD、絶対これから環境の構築に必要になるの
– けどやり方知らん(絶望)
– キャッチアップするか〜〜〜〜
– エンジニア歴半年の備忘録

# やりたいこと

– EC2 + Ubuntu 22.04 LTS への自動デプロイとテスト

# やっていく

### Github Actionについて

– Github内で完結するCI / CD
– `.github/workflows`に保存することで実行可能、カスタマイズも可能
– テンプレが多数あり、簡単に実装ができる
– YAMLで記述、書き方に少しクセがあるので参考から詳細は確認

### デプロイ先の準備

– node.jsとgitは必要(当たり前)

もしない場合は以下でインストールします

“`
// とりあえずアップデート
$ sudo apt update

// node.jsのセットアップ
$ sudo apt install nodejs

// 確認
$ node -v

// gitのセットアップ
$ sudo yum

元記事を表示

Amazon Linux 2023 に nginx をインストールする

いくつか参考記事がある中で、最も参考になった記事を紹介します。

https://dev.34-d.net/install-nginx-on-al2023/

元記事を表示

LambdaをRで動かすlambdr

# はじめに
AWS LambdaをRで動かせるようにした`lambdr`なるものを作った方がいらっしゃいました。

https://github.com/mdneuzerling/lambdr

今回はこれを動かしてみました。

# 概要

– LambdをRで動かせます
– 非公式なので、利用は自己責任で

参考に、PHPでLambdaを動かす事例が公式で記事になっています。これと同様のものをRで作っています。

https://aws.amazon.com/jp/builders-flash/202106/new-lambda-container-development-3/?awsf.filter-name=*all

# やってみた

## 環境
いつものCloud9です。t2.microでやりました。ストレージがギリギリです。他のものが入っているとエラーになりますので容量にはご注意ください。

## コンテナ作成とPUSH
まずはコンテナをbuildします。
“`bash
# プロジェクトディレクトリ作成
mkdir test-lambdr && cd tes

元記事を表示

AWS でドル円の為替レートを確認する

# 為替レートを知りたい

AWS では支払い通貨を指定して、その通貨で AWS の請求金額を支払うことが出来ます。このとき、ドルでの請求金額が確定したあとに、指定した通貨に金額が換算されます。制限事項がいくつかあり、MarketPlace 経由で利用したサービスの支払い方法は対象外です。また、支払い方法が Visa や MasterCard に限定されている点はご留意ください。詳細は[こちらのドキュメント](https://docs.aws.amazon.com/ja_jp/awsaccountbilling/latest/aboutv2/billing-what-is.html)をご参照ください。

AWS を試算するときに、ドルと円の為替レートを知りたいです。為替レートは毎日更新されます。

現時点の、為替レートを確認は AWS マネジメントコンソールで確認が可能です。

# 確認方法

まず、支払い通貨を一度設定すると、Billing の Home にある 「JPY」の部分をクリックすれば、為替レートを確認可能です。この画像の例では、1 USD あたり、149.95773

元記事を表示

AWS Lambda+PythonでExcelファイルにPlantUMLを埋め込む

# はじめに

AWS Lambda+PythonでExcelファイルにPlantUMLを埋め込もうとして苦戦したのでメモ

手こずったところ
– plantwebを自前でレイヤー作成
– requestsのインポートでエラー
https://qiita.com/HLHHS11/items/c26f1632a141a1dcc7a7

2023/12/4以降AWS CloudShell環境がAmazon Linux 2からAmazon Linux 2023に更新されていく予定なので、この情報は使えなくなる可能性があります

# 準備 – plantwebのレイヤー

### AWS CloudShellでPython3.10環境をビルド

AWS CloudShellでPython3.10環境をビルドします。AWS CloudShellのデフォルトでは3.7です。

OpenSSL 1.1.1をインストール

“`sh:
sudo yum install openssl11 openssl11-devel
“`

Python3.10をインストール

“`sh:
sudo yum

元記事を表示

JAWS_FESTA_2023に参加してきた

# 目次
* はじめに
* 本編
* 感想

# はじめに
こんにちは、元教員のインフラエンジニアです。
今回は久しぶりにJAWSがリアル開催ということで、遊びに行ってきました。
私が参加したセッションを、個人的な感想と共にお伝えしたいと思います。

# 本編
11:10~
<<パネルディスカッション>>
(参加者は割愛)
「地方でコミュニティを運営する意味はあるのか?」
・オフラインだと双方向でやり取りできる
・人脈広がる、副産物がある
・セッション後の拡がりがある
・盛り上がり、熱量を感じ取ることができる
・会社の名前、サービスを拡散したい→優秀な人を集めたい

「福岡ならではの特徴は?」
・エンジニアの環境作りや場所作りが活発→エンジニアカフェなど
・スタートアップを誘致する環境がある
・行政と企業の間に立つHubがある

「各地方のコミュニティが自走できている原動力は?」
・好きな気持ちが大事→一方で、代表を譲る先が見つからない
・一人が代表を続けると、内輪感が出てしまう→新規参入へのハードル

「地方のコミュニティイベントに参加する人たちに期待するアクションは?」
・あえて

元記事を表示

CloudFront構成でもECSブルーグリーンデプロイメントを使えるようにする。

# はじめに
以前までは`CloudFront`を使用している環境でECSブルーグリーンデプロイメントを行う場合、テスト用ポートへのアクセスが簡単には出来ないことから一手間加えたりする必要がありましたが、`CloudFront`の継続的デプロイ機能を応用することで`CloudFront`を使っている構成でもECSブルーグリーンデプロイメントのテスト用ポートに簡単にアクセスすることができたので紹介したいと思います。

# ECSブルーグリーンデプロイメントについて
ECSブルーグリーンデプロイメントは`AWS`のサービスとなる`ECS`や`EC2`、`ELB`、`CodeDeploy`等を組み合わせて安全にデプロイするための仕組みで、デプロイ時にサービス提供中のセットとは別に、サービスを更新したもう1セット分の`ECS`を準備し、テスト等行って問題なければ新しいセットに切り替える仕組みとなります。

![blue_green2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/569912/bb2bdda9-

元記事を表示

AWSで、Terraformを利用する方法をまとめてみた(7/10)

Terraformでgit-secretsを使用する

__セキュリティを高めることができる。__
git-secretsは、gitリポジトリ内の機密情報を検出するためのツールで、AWSのアクセスキーやシークレットアクセスキーなどの機密情報がコードに含まれている場合に検出することができます。git-secretsは、Gitリポジトリ内のコミットやプッシュに含まれる機密情報(APIキー、パスワード、AWSアクセスキーなど)を検出し、リポジトリからの __誤公開を防止__ します。

Terraformでは、AWSのアクセスキーやシークレットアクセスキーを含むtfファイルを作成することがあります。これらのファイルがリポジトリに残っていると、不正なアクセスにつながる可能性があるため、git-secretsを使用することで、このような __機密情報を検出__ することができます。

さらに、Terraformでは、モジュールを使用してコードを再利用することができます。git-secretsを使用することで、__再利用されたコードにも機密情報が含まれていないかどうかを検出__ することができ

元記事を表示

S3のファイル数をCloudWatchでCLIより安く取得する

# 前提
S3バケット上のファイル数が1000個以上ある場合、コンソール上では999+と表示され正確なファイル数を確認できない。
取得するにはどうすればいいかググったところ、AWS CLI(aws s3 ls)を使用した記事が多く出るが
もし「シンプルにS3内のファイル数だけを知りたい(=特定のフォルダ配下のファイル数を知りたいとかではない)」場合はCloudWatchから確認した方がコスト安となる。
※もし「特定のフォルダ配下のファイル数を知りたい」場合、CloudWatchからは確認できないのでAWS CLIを使って確認する方法を採用する。

# CloudWatchでの確認方法
1. CloudWatchコンソールから左メニュー内の「全てのメトリクス」を選択し、検索欄にS3バケット名を入力する
![スクリーンショット 2023-10-07 2.43.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2885498/efe674b4-7f4a-22d0-93a7-976052bef2ae.png)

元記事を表示

AWS SAA-C03 合格体験記

# はじめに
先日,AWS SAA-C03に合格しました!

合格までにしたことを中心に,主に以下についてまとめてみました
– 教材
– 傾向と対策

因みに,受験時の私のステータスは次の通り

元記事を表示

Elastic IPアドレスの関連付けを解除した後、解放せずに、放置してたら課金されてしまった話と対処法

# Elastic IPアドレス関連で課金されてしまった…
AWSの1年無料期間の終わりが近づいていたので、昨日、Elastic IPアドレスの関連付けの解除とインスタンスの削除を行いました。すると次の日(厳密には日付が変わって1時間後)に、Budgetsで設定していたアラートがメールで飛んできていました。

Billingで確認すると、なぜかElastic IPアドレス関連で課金されている事態になっていることがわかりました。
![スクリーンショット 2023-10-06 17.58.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3079289/20a9dbc4-16b3-6f0b-fd06-2d46beafd741.png)

# 原因は?
メッセージの内容やGoogle検索した結果、Elastic IPアドレスがどのインスタンスにも関連づけられておらず、そのまま放置していると、自動的に課金されるという仕様だったらしいです。

状況としては、以下の手順を行い、そのまま放置していたことが原因で

元記事を表示

Deviseの認証をCognitoに委譲し、カスタムログイン画面でログイン機能を実装する

## はじめに
今回はdeviseの認証をcognitoに委譲し、アプリケーション側で独自のログイン画面を作成して、ユーザーがログインできるように実装していきたいと思います。
## 対象読者
– deviseを使用したことがある人
– deviseの認証をcognitoに委譲したい人
– deviseの認証をcognitoに委譲したが、cognitoの[ホストされたUI](https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/cognito-user-pools-hosted-ui-user-experience.html)では物足りない人
## 動作環境
今回はdeviseログイン画面ありのアプリケーションのひな形を作ってくれている方がいたので、そちらのプロジェクトを使用したいと思います。

https://github.com/timothyjamesmarias/rails_7_devise_example

## 実践
流れとしては下記に沿って進めていきます。
Cognitoを既に構築されている方は、

元記事を表示

AWS Codepipeline の Deploy ステージで失敗すると Source ステージの Github コミットハッシュが分からないんだが

デプロイグループを選んで「履歴を表示する」で Source/Build/Deploy の単位でまとまった履歴を見られるようだ

image

# チャットメンバー募集

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

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

# Twitter

元記事を表示

AWS_User_Notificationsの通知( AWS ユーザー通知 )についてあれこれ

# 概要
AWS_User_Notificationsの通知について、どのような項目が通知されるのか確認

## User Notificationsとは
AWS サービスからの通知を設定および表示する

AWS ユーザー通知を使用すると、AWS Health イベント、Amazon CloudWatch アラーム、EC2 インスタンスの状態変化など、AWS のサービスからの通知を一貫したわかりやすい形式で一元的にセットアップして表示できます。

## 設定

### AWS User Notificationsを開く
![AWS_User_Notifications_1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/70171/47af045c-ccbd-b788-6995-cc36603ed6d7.jpeg)

### 通知ハブを設定

東京リージョンで使用するので、一応TOKYOを選択
![AWS_User_Notifications_2.jpeg](https://qiita-image-s

元記事を表示

Personal Health Dashboardに連携されない障害情報について

Personal Health Dashboard

https://aws.amazon.com/jp/premiumsupport/technology/personal-health-dashboard/

Personal Health DashboardはAWSの障害情報、バージョンアップ通知、メンテナンス情報の中から利用中のアカウントに関係の有るものを抽出して通知をしてくれるサービス
基本的にAWS障害が疑われるときはまずココをチェック!

注意点

アラート検知時にすぐ確認しても障害情報が載っていないことが多い。
⇛障害の速報としては弱い。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3571782/8c3ffe90-d633-6e24-51fd-502b5937e842.png)

→X(旧Twitter)での情報収集がやはり早い。。
ハッシュタグ「#AWS障害」

元記事を表示

VScodeでAWS EC2の連携

vscodeでAWS EC2インスタンスを開くことができるように、環境構築をした。
しかし、原因不明だが、「SSHへの接続を確立できません:処理がタイムアウトになりました」と表示さされ、vscodeからAWSに接続しLinuxを開くことができなくなった。

再度連携するために行なったことを忘れないように記述しておく。

AWSにログインし、AWSのEC2インスタンスが実行中であったが停止する。

インスタンスを開始する。

接続しているインスタンスIDをクリックし、パブリック IPv4 DNS(画面右上)をコピーする。

VscodeのConfigファイルにコピーした、パブリック IPv4 DNSを貼る。(元のから書き換える)
(多分IPアドレスが変わった)

接続する。完了。

元記事を表示

AWS CLIでの接続エラー

事象

AWS CLIを使用してEC2を表示しようとしたところ下記​エラーが発生。なおEC2接続等他のコマンドでも同様のエラーが発生。aws configure、IAM権限周り異常なし。
$ aws ec2 describe-instances
An error occurred (AuthFailure) when calling the DescribeInstances operation: AWS was not able to validate the provided access credentials

原因

接続元の端末の時刻(JSP)がずれていたことで、リクエストエラーが発生していた模様。端末の時刻設定を見直したところ解消。。

別件だが、AWS主催の研修に参加した際にラボ環境へのログインできないことがあった。手元のPCの時刻設定を見直したところ接続できた。今後とも時刻同期には気をつけたい。。

元記事を表示

AWS Proton CodeBuild ProvisioningでDelete Failedとなったときの対処方法

Proton結構いいなと思って触っています。

AWS Proton CodeBuild Provisioning で、テンプレートの作成が不味く、プロビジョニングが失敗したときの対処方法を書いておきます。

私が陥ったのは、schema.yamlのrequireにtypoで存在しないパラメータを指定してしまったことで、デプロイもアンデプロイもできなくなった状態です。
以下のファイルでは必須のパラメータとしてparamを指定していますが、実はパラメータとしてはparam1しかないという状況です。

“`yaml
schema:
format:
openapi: “3.0.0”
service_input_type: “ServiceInputs”
types:
ServiceInputs:
type: object
description: “Input properties for my environment”
properties:
param1:
type: string

元記事を表示

Amazon BedrockをPythonスクリプトから利用してみた

# はじめに

こんにちは、はやぴー(@HayaP)です。

ついに、Amazon BedrockがGAされましたね!
東京リージョンでも、一部のモデルが使用可能になりました。

今回はPythonスクリプトでAmazon Bedrockを利用してみます。
理由として、Lambdaから実行するケースや、Webアプリケーションに組み込むケースが多そうだなぁと感じているからです。(Lambdaで実行するハンズオンは別で記事を書く予定です)

# 対象読者

– Amazon Bedrockに興味がある方
– Pythonスクリプトで、Amazon Bedrockを利用したい方
– AWS Lambdaでの実装を考えている方(Lambdaのハンズオンではありません)

# TL;DR (忙しい人用)
– Amazon Bedrockは、モデル毎に(マネージメントコンソールなどで)初期設定が必要
– Boto3を使えば、比較的簡単に実装できる(基本コピペでOK)
– Claude系は、全リージョン共通で許可制(現時点)
– 東京リージョンで使えるモデルは、us-east-1と比べてまだまだ少な

元記事を表示

AWS Lambda × Ruby 「ランタイムに合わせたbundle install面倒くさい…」「デプロイパッケージが大きすぎて…」という困り事

# AWS Lambdaでライブラリを利用するのって地味に面倒くさい
AWS lambdaでライブラリを利用するときに面倒だと思った以下2点についての対処法
– zipフォルダを用意するまで
– 「デプロイパッケージが大きすぎて、インラインコード編集を有効にできません。…」の回避

## zipフォルダを用意するまで
### Dockerfileを準備
“`Dockerfile:Dockerfile
# AWS Lambdaで利用するランタイムのバージョンを指定する
FROM ruby:2.7

RUN mkdir /var/www

# /var/wwwの部分は/appなどなんでも良い
COPY /app/* /var/www

RUN bundle config –local set path ‘vendor/bundle’

RUN bundle install
“`
### docker container を起動
`$ docker image build -t XXX:YYY`
`XXX`のところは`sample_app`
`YYY`のところは`latest`

元記事を表示

OTHERカテゴリの最新記事