- 1. 業務でAWSを利用する時に知っておくべきポイント10選
- 2. AWS EC2でpip install mysqlclientができない
- 3. [AWS]「支払い方法が無効です」「サーバーに問題が発生したため、リクエストは処理できませんでした」
- 4. QuickSightでIAMロールを使ってRedshiftにクエリを実行する
- 5. 【クラウド初心者】AWSを用いてStreamDiffusionをM2 Macbook Airで動かそうとした話
- 6. お名前.com SESの検証済みIDで吐き出されたCNAMEレコードを追加する
- 7. TerraformでEC2を起動
- 8. 文系卒1年目が3週間で、AWSクラウドプラクティショナーに合格した勉強法
- 9. Amazon Macieを試してみた
- 10. ALBがラウンドロビンに負荷分散することを確認する
- 11. AWS IAM Identity Center で IBM Cloudポータルにシングルサインオンする
- 12. AWS EC2 でMySQLにログインできない
- 13. せっかくAWSの勉強をするので、インフラの基礎から勉強してみることにした #2
- 14. EC2にNTPサーバ立ててみた
- 15. ワーカーノードとしてEC2・Fargateが混在するEKSクラスタを実現する
- 16. 【AWS】 パラメータストアの一覧をさくっと取得する【SSM】
- 17. LambdaでPandasとMatplotlibを使う時の注意点
- 18. AWS Cloud9環境のCloudShellでの構築
- 19. せっかくAWSの勉強をするので、インフラの基礎から勉強してみることにした
- 20. 【AWS】RDS備忘録
業務でAWSを利用する時に知っておくべきポイント10選
2024年1月時点のAWSベストプラクティスに従って作成しました
好評でしたら続編も検討します## 1. 環境ごとにアカウントを分離する
**本番、検証、開発ごとにアカウントを分割けましょう**✕良くない例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3694674/6e3ed6de-293f-9e67-e543-407e1a8c62a5.png)◎良い例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3694674/a2a7bf29-b79c-5622-004b-db4d61749973.png)– 最初にアカウント分割しておかないと、後で分割するのはとても大変です
– アカウントを分割することで「検証と思って作業したら、実は本番だった」のような事故を減らすことができま
AWS EC2でpip install mysqlclientができない
# pip install mysqlclientができないときの対処法
解決
ubuntuで必なパッケージ pkg-configが入っていなかった。
“`bash:shell
$ sudo apt-get install pkg-config
“`もしかしたら下も必要かもしれない。
“`bash:shell
$ sudo apt-get install libmysqlclient-dev
“`
[AWS]「支払い方法が無効です」「サーバーに問題が発生したため、リクエストは処理できませんでした」
検索してもなかなか見つからず時間をやたら費やしてしまったので備忘録。
## 問題点
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3277259/6a149343-b74e-2f57-7e4a-29749c800e8d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3277259/88200a79-3d6f-3456-fd39-d1e9bc678c86.png)
AWSの初回登録していたところ、支払い方法のところでうまくいかず、上記のような画面が表示されました。
ちなみに何も支払いするつもりはなく、無料枠で利用するために登録だけしたい状況です。# 解決方法
### 確認観点1 住所を英語で入力しているかお支払い設定のところで自分の住所を入力すると思いますが、そちらを日本語ではなく英語で入力する必要があります。
### 確認観点2 利用しているカード会社が拒否し
QuickSightでIAMロールを使ってRedshiftにクエリを実行する
# はじめに
QuickSightでRedshiftに接続する方法は、以下のようにデータソースにDBユーザーとパスワードを指定する方法があります。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2949357/f9eafd11-64ed-a22f-f9c6-8a8acb358bd1.png)
しかし、2023年10月に**IAMロールを使って**Redshiftへの接続が出来るようになりました!
https://aws.amazon.com/jp/about-aws/whats-new/2023/10/amazon-quicksight-queries-iam-role-redshift-data-sources/
この機能を用いると、IAMロールの認証情報を使ってDBユーザーにアクセスするため、**DBユーザーのパスワードを入力する必要がありません。**
つまり、利用者はパスワードを覚える必要がなく、管理者はパスワード流失セキュリティインシデントの懸念が減ります。![ima
【クラウド初心者】AWSを用いてStreamDiffusionをM2 Macbook Airで動かそうとした話
## 【目標】AWSを用いてStreamDiffusionをM2 Macbook Airで動かす
(AWSどころかクラウドサービス触ったことないのでビビりながらやってます…)### AWSの登録
1. [AWS](https://aws.amazon.com/jp/)に登録する。英語表記の住所の書き方→https://kimini.jp
2. リージョンをとりあえず大阪に変更。[^1]
– g4dn.xlargeのスポットインスタンス料金(Linux/UNIX)が東京よりも安かった。[^2][^3]
– ちなみにスポットインスタンスとは余剰計算資源を安価で使用できるサービス。[^4][^5][^1]: https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-regions-availability-zones.html より
[^2]: https://aws.amazon.com/jp/ec2/spot/pricing/ より
[^3]: https://aws.amazon.com/
お名前.com SESの検証済みIDで吐き出されたCNAMEレコードを追加する
## 概要
お名前.comのDNSレコードにSESの検証済みID登録時に吐き出されたCNAMEレコードを追加する方法を簡単にまとめる。
## 方法
1. SESで吐き出されたDNSレコードの名前と値を確認する。
![詳細ページ___Amazon_Simple_Email_Service___ap-northeast-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/14124fb8-2841-a7da-14d6-7a549a25d542.png)
1. お名前.comにログインし、「ドメイン一覧」を開き、ドメイン名をクリックする。
![ドメインNavi.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/96af1e1a-8b04-cdb0-e541-8b8404c58698.png)
1. ネームサーバー情報の「DNS設定」をクリックする。
![お名前
TerraformでEC2を起動
前回のTerraform環境構築の続きとなります。
Terraformの開発が始められることを確認するためにEC2を起動してみます。
### 1.tfファイルを作成
・「main.tf」ファイルを作成する
・ファイルにEC2を起動するためのコードを記述する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3690862/071bae8c-8f41-8f06-554c-5ce7313ea31b.png)
amiはマネジメントコンソールで確認する。
今回はAmazon Linux 2を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3690862/fe55d817-137a-3558-c38
文系卒1年目が3週間で、AWSクラウドプラクティショナーに合格した勉強法
# 受験前の経験値
私立文系大学を卒業後、2023.4月にSIerに新卒入社。2023.6月、パッケージ製品の導入プロジェクトにアサイン後、業務内容としては、設計~実装、会議の進行、調整等を行ってきました。
AWSについては、4月の研修時に動画で学習したものの、実務内で今まで触れたことはありませんでした。# 勉強方法
まず、学習教材として用いたのは以下の3つ。
– 書籍
– 図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書
(https://amzn.asia/d/4JBiI3N)
– YouTube
– AWS資格対策講座 (http://www.youtube.com/@AWS_course)
– Udemy
-この問題だけで合格可能!AWS 認定クラウドプラクティショナー 模擬試験問題集
(https://www.udemy.com/course/aws-4260/)## 学習順序
学習開始が年末の仕事納めからだったため、初期段階は学習時間を多めに取ることができました。ま
Amazon Macieを試してみた
# 背景・目的
Amazon Macieについて、概要は知っていましたが詳細な仕様や機能を把握していなかったため知識を整理します。# まとめ
下記の特徴があります。|特徴|説明|
|:–|:–|
|概要|機械学習とパターンマッチングを使用して、下記が可能になる
・機密データを検出
・データセキュリティリスクを可視化
・リスクに対する自動保護|
|統合|下記と統合が可能。
・Amazon EventBridge
・AWS Security Hub|
|検出の自動化|・機密データの検出とレポートを自動化する
・データセキュリティリスクを可視化
・リスクに対する自動保護
・分析の幅、深さのカスタム基準を定義|
|機密データタイプ|下記のタイプがある。
・マネージドデータ識別子
カスタムデータ識別子
許可リスト|
|アカウント| Oraganizationや、メンバーシップを招待し複数アカウントを管理できる|
|対象のストレージクラス|・Reduced Redundancy (RRS)
・S3 Glacier
ALBがラウンドロビンに負荷分散することを確認する
## 実施したこと
– クライアント(EC2:Amazon Linux)に httpd-toolsをインストールする使用コマンド
“`
yum install httpd-tools
“`– Appache Bench が使用できることを確認する
使用コマンド
“`
ab -h
“`– Appache Benchを使用して、ALBにリクエストを送付する
使用コマンド
“`
$ ab -n 【リクエスト数】 -c 【同時接続数】 -v 1 【リクエスト先のパス】
“`– ALBにより負荷分散されたリクエストが、各Webサーバ(EC2)に均等に振り分けられていることをアクセスログで確認する
※Webサーバにて別のリクエストを処理している状況の場合は、
均等に振り分けられない可能性はあります。
AWS IAM Identity Center で IBM Cloudポータルにシングルサインオンする
# はじめに
IBM CloudのApp IDは、IBM CloudポータルのIdPになることが可能であり、かつSAMLのSPになることができます。本記事ではAWS IAM Identity CenterのIdPを用いてIBM Cloudのポータルの認証を行います。※Azureの連携についてはこちら
Qiita:[Azure ADで IBM Cloudポータルにシングルサインオンする](https://qiita.com/takason/items/b23929781d5ef5eef6db)# 事前準備
以下を用意しておきます。
– [AWS] AWSアカウント
– [IBM Cloud] App ID インスタンス# 手順
## AWS上での手順
### IAM Identity Center を管理アカウントで有効化
IAM Identity Centerで検索し、「**Enable**」をクリックします。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2199676
AWS EC2 でMySQLにログインできない
EC2で
“`shell
sudo apt install mysql-server mysql-client
“`をインストールしてもrootでログインできない。
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
ERROR 1698 (28000): Access denied for user ‘root’@’localhost’場合の対処法。
“`SQL:SQL
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH caching_sha2_password BY ‘password
“`ubuntuのログインユーザとrootの名前が違うことが原因ぽい
せっかくAWSの勉強をするので、インフラの基礎から勉強してみることにした #2
ただの備忘録です。
↑
~~これ書いとけば雑でも許されそう~~# 超基礎用語の続き
### IPアドレス続き
– IPアドレスの範囲
ネットワークを構築する際は、ネットワークで使うIPアドレスの範囲を決める。IPアド レスはネットワーク部とホスト部に区分けすることで、範囲を表記する。– ネットワーク部
(192.168.128.)255、()に囲まれている部分がネットワーク 部、共通部となっている。 自分が使用しているネットワークに通信がくるようにしている。– ホスト部
192.168.128.(255)、()に囲まれている部分がホスト部、可変部になっている。 どのデバイスに通信するかを決める。– IPアドレスの表記法
IPアドレスの表記には二種類の方法を用いる。– CIDR表記
IPアドレスの後ろに「/」を書き、その後ろにネットワーク部が先頭から何ビット目までなのかを記載する ※「192.168.128.0/24」のように表記する。これを二進数表記にする「11000000.10101000.10000000.11111111」になり、「11000000.1
EC2にNTPサーバ立ててみた
## 概要
– NTP立ててみたくなった
– 立ててみた## 構成
– NTPサーバ
– EC2(AmazonLinux2023)
– chrony
– NTPクライエント
– EC2(AmazonLinux2023)
– chrony## 手順
### NTPサーバ側の設定を行う
:::note info
AmazonLinux2023だと元から入っているから入れる必要はないが、confファイルなどがない可能性もあるので、ない場合は入れなおすのが良いだろう。
:::“`sh
sudo yum update
sudo yum install chrony
“`
chronyのインストールを行う
次に
“`sh
sudo vi /etc/chrony.conf
“`
を実行して、設定を書き換える“`conf:/etc/chrony.conf
# Use NTP servers from DHCP.
# sourcedir /run/chrony.d<-必要ないため、コメントアウト # Include configuration
ワーカーノードとしてEC2・Fargateが混在するEKSクラスタを実現する
諸事情(DaemonSetを使いたい、Podを起動させるための時間を短縮させたい、特定のインスタンスタイプを使いたい、等)で、一つのEKSクラスタの中で(かつ、同じ名前空間の中で)ワーカノードとしてFargateとEC2を使い分けたい場面があったので、その時の方法を自分向けのアウトプット用として記録。
### やること
– Fargateプロファイルのセレクタとして、名前空間に加えて「Podセレクタ」を指定する
– Fargateで実行したいPodには、「Podセレクタ」で指定したラベルを設定する
– 逆に、EC2で起動したいPodには、当該ラベルを設定しない### Fargateプロファイルを作成する
– 名前空間:test
– Podセレクタ:「nodeType/fargate」![スクリーンショット 2024-02-08 185712.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/389171/69f6f72f-c1fe-64a8-1292-ba087c1cda27.png)
【AWS】 パラメータストアの一覧をさくっと取得する【SSM】
# パラメータストアの一覧を取得したい!
アプリケーションの環境変数格納先等に活躍するAWS SSMパラメータストア。https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/systems-manager-parameter-store.html
コンソールから値を確認する際にはひとつひとつ、パラメータをクリックして中身を確認することになります。
数が多い場合は特に面倒で見落とすリスクが上がってしまいます。
AWS CLIでさくっと取得する事が出来たので共有です。# 実行するコマンド
“`
aws ssm get-parameters-by-path –path / –recursive –with-decryption –query ‘Parameters[].{Name:Name,Value:Value}’ –output json
“`
NameとValueだけ出力したいので–queryオプションで絞っています。
視認性が向上して便利でした。# 注意点
– 例では階層の
LambdaでPandasとMatplotlibを使う時の注意点
# はじめに
LambdaでPandasとMatplotlib(外部ライブラリ)を使おうとしたときにハマったので、備忘録として残しています。
# Lambdaの『250MB制限』の壁
>デプロイパッケージ (.zip ファイルアーカイブ) のサイズ
>50 MB (zip 圧縮済み、直接アップロード)
>250 MB (解凍後)
>このクォータは、レイヤーやカスタムランタイムなど、アップロードするすべてのファイルに適用されます。https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/gettingstarted-limits.html
# 外部ライブラリは『Layer』を用意する
**Pandas**
– AWSレイヤー(AWS が提供するレイヤー)
– ARN指定(arn:aws:lambda:ap-northeast-1:770693421928:layer:Klayers-p39-pandas:22)**Matplotlib**
– ARN指定(arn:aws:lambda:ap-northeast-1:77069342
AWS Cloud9環境のCloudShellでの構築
:::note info
目的
– AWS on for beginnersのハンズオンをCLIで実施するためのCloud9環境を用意する
– VPCとサブネットはデフォルトで作成されているものを使用
– EC2への接続方法はSSMを使用
:::構成図
![cloud9.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3297641/5c890fdc-0257-fae9-62f3-1394c514be61.png)
# 構築
## IAMロール作成
※作成済みの場合は不要
“`bash:コマンド
aws iam create-role –role-name AWSCloud9SSMAccessRole –path /service-role/ –assume-role-policy-document ‘{“Version”: “2012-10-17″,”Statement”: [{“Effect”: “Allow”,”Principal”: {“Service”: [“ec2.a
せっかくAWSの勉強をするので、インフラの基礎から勉強してみることにした
ただの備忘録です。
## 色々な単語について
#### インフラとは
– サーバやネットワークのこと
– infrastructure:基盤
– 技術用語としての意味:システムやサービスの基盤となる設備#### サーバーとは
– クライアントに対してサービスを提供するコンピューター#### ネットワークとは
– 複数のコンピューターをつないで、データを送受信できるようにするもの#### クラウドとは
– ネットワークを利用してコンピューターリソースを利用する形態のこと
– インフラをネットワーク経由で使用・管理すること
– 利点は、初期コストがすくなく、すぐに始めることが出来、サーバーの増減が自由に出来ること
– 欠点は、費用の予測がつきづらいこと、クラウド全体で障害が起きると対応のしようがない事#### オンプレミス
– インフラを自前で用意して、自社で所有・管理する事
– 利点は、自由度が高いこと
– 欠点は、初期コストがかかり、調達期間が必要で、サーバーの増減がしにくいこと#### AWSとは
– Amazon社が提供するクラウドサービス。
【AWS】RDS備忘録
RDSのチュートリアル
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_Tutorials.html
RDSのベストプラクティス
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.DiskPerformance
### RDSの作成
1. Amazon RDSコンソール画面を開く
1. データベース->データベースの作成を押す
1. データベース作成方法は、標準作成を選択
1. エンジンは、Aurora (MySQL comparable)を選択
1. テンプレートは、開発/テストを選択
1. DB クラスター識別子は、そのまま、database-1
1. マスターユーザー名は、admin
1. マスターパスワードは、適当な8文字以上
1. クラスターストレージ設定は、Aurora スタンダードを選択
1. 可用性と耐久性は、別の AZ で