- 1. AWS 12冠を達成したので、各試験の難易度や感想、どんな感じで勉強したかを書いてみる
- 2. 【AWS】CloudFrontとは
- 3. AWS環境構築でTerraformによるIaCを導入してみた
- 4. AWS Hands on for Beginners 完走した感想
- 5. 【参加レポート】JAWS DAYS2024に初参戦!
- 6. 【AWS ALB】ALBのmTLS認証を実装した際のログに関する整理
- 7. 【AWS CDK】CDKを用いたALB mTLS認証の実装
- 8. [備忘録] AWSのそんな話聞いてない
- 9. AWS App Runner についてざっくりと理解して触ってみる
- 10. Cloud9 学習記録
- 11. [no.008]EC2 SWAP領域の設定
- 12. Windowsで、パブリックIPを固定していないEC2インスタンスへ、.ssh/configを毎回書き換えずにssh接続したい
- 13. MWAAでRedshiftにIAM認証で接続してクエリを実行する(クロスアカウント)
- 14. [no.007]EC2ボリューム拡張 (T2.micro Amazon Linux2 8G→12Gの例)
- 15. 100本ノックしてみたい中堅エンジニア 【AWS】~はじめに~ 1/100
- 16. AWS ClouldFormationの静的解析ツールcfn-lintコマンドをインストール
- 17. イメージをアップロードできるウェブページを CICD を適用して実装
- 18. BedrockのClaude3にマルチモーダルな問い合わせが可能なWebアプリをイチから作る
- 19. Lightsailで、基本読み取り専用だけど、ブラウザSSHだけは許可したい、IAMポリシー作ってみた
- 20. Eventbridge Schedulerを使って、簡単にEC2の不要コストを削減する
AWS 12冠を達成したので、各試験の難易度や感想、どんな感じで勉強したかを書いてみる
# はじめに
先週の水曜日に最後の[AWS Certified Machine Learning – Specialty 認定](https://aws.amazon.com/jp/certification/certified-machine-learning-specialty/)を取得し、やっとAWS12冠を達成することが出来ました。
![screenshot.982.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236355/c750dc38-74de-1927-5be7-9c9cfa9cd2ce.jpeg)
※1:AWSだけ表示する方法が分からなかったので、Azureも入っております
※2:Azureの資格が1つ期限切れになってますが、これはAzureがCredly撤退で更新が反映されてないだけです本記事は、以下の観点で記載させて頂きます。
– 12冠までの道のり
– 各試験の個人的な難易度ランキング TOP5
– 各試験の勉強方法
– 感想既に、2024年度廃止がアナウンスされた
【AWS】CloudFrontとは
# CloudFrontとは
**Amazon CloudFront**の略
効率的にユーザーにデータ・動画・アプリケーションなどのコンテンツを配信することができる、**コンテンツ配信ネットワーク(CDN)サービス**
# CDN
**Contents Delivery Network**の略コンテンツ本体を保存しているサーバー(**オリジンサーバー**)に代わり、**キャッシュサーバー**(**エッジロケーション**)がコンテンツを配信する。
キャッシュサーバーは、オリジンサーバーに保存してあるコンテンツを複製(=キャッシュ)し保存する。そして、ユーザーからアクセス要求があると、ユーザーから最も近いキャッシュサーバーがオリジンサーバーに代わり応答する。
AWS環境構築でTerraformによるIaCを導入してみた
最近運動不足なのが気がかりなインターンの髙橋です。rexcornuではインフラやセキュリティを担当しています。
今回はrexcornuで開発中の新規プロダクトのインフラを構築するにあたり、IaC(Infrastructure as a Code)を導入しました。
その際に意識したこと、難しかったことに触れたいと思います。
# はじめに:IaCとは何か?
IaCとはInfrastructure as a Codeの略です。一言で言うとインフラの管理とプロビジョニングをコードで行うことを指しています。IaC導入のメリットとして以下の点が挙げられます。– 環境構築が容易
– ヒューマンエラーの低減
– CI/CD(継続的インテグレーションと継続的デプロイ)に組み込むことでインフラのプロビジョニングの自動化が可能# なぜIaCを導入するのか?
今後、新規にいくつもプロダクトが作られていく可能性を考えた際に、もし今のうちにIaCを導入しておかないと、今後の開発において以下のような問題が発生すると考えたためです。– 環境を増やす際に迅速に対応できない
– 人為的ミスによる障害
AWS Hands on for Beginners 完走した感想
# 目的
[前回](https://qiita.com/okigaruni_/items/6804e66ca63a982de56b)の記事からだいぶ間が空きまして、実は Hands on for Beginers を完走しておりました。その過程で、AWS学習方法の考え方が大きく変わったので、そこら辺を体験談として記事にしたいと思いました。
僕はAWS初学者ですが、最終的なゴールはAWSの主要なサービスを理解し、使いこなせるようになることです。# 思ったこと➀
### マネジメントコンソール、サービスの設定画面が変化しすぎ!
ほとんどのサービスはハンズオン収録時点(2020~2023) からあまり変わっていないのですが、Cloud9 や CloudWatch などの使われやすいサービスには変更点が多く、これから慣れていきたいと思いました。※ CloudWatch Events → EventBridge に統合
# 思ったこと➁
### AWS のサービスは奥が深すぎる!
ハンズオンでは、1テーマあたりで3~8個くらいのサービスに触れます。
また、サービスにはそれ
【参加レポート】JAWS DAYS2024に初参戦!
# はじめに
2024/3/2に開催されたJAWS DAYSに行ってきました。
今回初めてJAWS DAYSに参加したので簡単に参加レポートを書いてみました。
# JAWS DAYSとは
日本のAWSユーザーグループであるJAWS-UGのイベントです。
Amazon Web Services(以下AWS)を中心とした技術情報交換を目的とし、全国から企業や個人が集まるイベントです。今年は5年ぶりのオフライン開催だったということもあり、熱量がすごかったです。(登録者数1000人超)> JAWS-UG(AWS User Group – Japan)は、日本全国に60以上の支部を持つ AWSのユーザーグループです。全国の各支部では、AWSに関する技術交流や人材交流が毎週のように行われ、AWSユーザーの技術力向上およびビジネスの拡大に寄与しています。
https://jawsdays2024.jaws-ug.jp/# なぜ参加したのか
昨年、とあるイベントでみのるんさん(@minorun365)と初めてお会いし、会話させていただいたことがキッカケでTwitterなどで情報発信の様子を拝
【AWS ALB】ALBのmTLS認証を実装した際のログに関する整理
## はじめに
re:invent2023でALBがmTLS認証をサポートすることが発表されました。
[Application Load Balancer での TLS を使用した相互認証](https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/mutual-authentication.html)これに伴い、ALBが出力するLogにConnection Logsが追加されました。
このConnection Logsにはどんな情報が記載されるのか?
Access Logsに含まれる情報とどんな差異があるのか?
気になったので、試してみながら整理したので紹介させて頂きます。※ 本ブログに記載した内容は個人の見解であり、所属する会社、組織とは全く関係ありません。
## 試した概要
以下2つのシナリオを実施– クライアント認証が成功したケース
– クライアント認証が失敗したケースシナリオ毎に取得した情報
– Verboseでのcurl出力結果
– Connection logs
–
【AWS CDK】CDKを用いたALB mTLS認証の実装
## はじめに
re:invent2023でALBがmTLS認証をサポートすることが発表されました。
[Application Load Balancer での TLS を使用した相互認証](https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/mutual-authentication.html)ALBのmTLS認証を実装し、mTLS認証のログを出力する場合は、以下3点を実装する必要があります。
– CA証明書をトラストストアにあげる
– ALB Listenerの設定
– Connections Logsの有効化
※Connections Logsの有効化は必須ではありません今回は、CDKを用いたALBのmTLS認証の実装を上記3つのポイントに分けてご紹介させて頂きます。
※ 本ブログに記載した内容は個人の見解であり、所属する会社、組織とは全く関係ありません。## CA証明書をトラストストアにあげる
ALBのListenerでmTLS認証を有効化するために、検証先としてトラスト
[備忘録] AWSのそんな話聞いてない
# 概要
AWSを触って大事そうなことを殴り書く予定
# 同一VPC内でLambdaから別のLambdaを呼び出す
VPC内だから特別記述することはないと思っていたら、どうやらLambdaのエンドポイントをVPCに設定しないといけないらしい。
CDKで定義している場合は以下のように定義する。
“`typescript
vpc.addInterfaceEndpoint(‘LambdaEndpoint’, {
service: ec2.InterfaceVpcEndpointAwsService.LAMBDA,
subnets: { subnetType: ec2.SubnetType.PRIVATE_ISOLATED },
});
“`
AWS App Runner についてざっくりと理解して触ってみる
# はじめに
本記事は2024年2月21日に開催された勉強会[『完全に理解するシリーズ#1 “AWS App Runner”』](https://forkwell.connpass.com/event/309127/?utm_campaign=&utm_source=notifications&utm_medium=email&utm_content=title_link)に参加したので、そこで学んだことと、実際に触ってみて感じたことをまとめていきます!# AWS App Runnerとは?
## ざっくりと解説
ざっくり説明すると、**ウェブアプリケーションやAPIを構築済みのインフラに簡単にデプロイし、実行できるマネージドサービス**
です。
AWSのサービスは多岐にわたり今では200以上のサービスがあります。
それを用途に合わせて、ブロックを積み上げていくように環境を柔
Cloud9 学習記録
AWS Cloud9は統合開発環境・IDEのこと
—————————-1.統合開発環境・IDEとは
—————————-
プログラム開発ツールをブラウザ上で提供する開発環境のことで、具体的には以下機能などがあります
・ソースコードエディタ
・デバッガ
・ビルド
・プログラミング言語(JavaScript,Python,PHPなど)
https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/welcome.html2.AWS Cloud9の仕組み
—————————-
・ローカルコンピュータのウェブブラウザでAWS Cloud9 IDEを使用して、AWS Cloud9環境をコンピューティングリソースを作成し、そのサーバで操作する3.AWS Cloud9環境
—————————-
・作成したコードは実行環境に保存され、AWS CodeCommitまたはGitなどのリポジトリに保
[no.008]EC2 SWAP領域の設定
# 参考サイト
EC2インスタンスのSwap領域を作成する
https://qiita.com/nakamto/items/5e78e9caceeff6b9e2b4 (2020)AWS EC2 インスタンスに swap 領域を作成する
https://zenn.dev/wsuzume/articles/3ef4b2d3caf203
→ほぼそのままでいけました。ありがとうございます!!# 手順
# 1.事前の確認
free -h
sudo su
swapon -s
→swap領域が確保されていない#Swap 領域を作成するストレージのファイルシステムによって、作成方法が微妙に異なるため、確認
df -Th
df -Th /dev/xvda1
→今回はxfssudo su
# 2.SWAP領域の確保
#[ext4の場合の] Swap領域の確保
fallocate -l 2G /swapfile#[btrfsの場合の] Swap領域の確保
truncate -s 0 /swapfile
chattr +C /swapfile
fallocate -l 2
Windowsで、パブリックIPを固定していないEC2インスタンスへ、.ssh/configを毎回書き換えずにssh接続したい
こねくり回してようやく解決したので、備忘録。
# 目的
パブリックIPアドレスが固定されていないEC2インスタンスにVS Codeで`git pull`/`push`するときに、
毎回`.ssh/config`を書き換えたくない。
すなわち、
**パブリックIPアドレスが固定されていないEC2インスタンスに、毎回`.ssh/config`を書き換えずに`ssh`接続したい。**# 環境
Windowsで個人開発をしていて、EC2インスタンスをプライベートなGitサーバ兼デプロイサーバとして使っています。
インスタンスは常時起動ではなく、必要な時だけ起動するので、そのたびにパブリックIPアドレスが変わります。この上でローカルからリモートへgit経由でアクセスしようとすると、毎回
“`console
git remote set-url origin https://[毎回違うパブリックIP]/[.gitの場所]
“`
とリモートアドレスを書き換えるか、`.ssh/config`に設定を書き込んだ上で、URLを毎回書き換える必要があります。面倒!
有料のElas
MWAAでRedshiftにIAM認証で接続してクエリを実行する(クロスアカウント)
# やりたいこと
Amazon Managed Workflows for Apache Airflow (MWAA) で**別のアカウント**にあるRedshiftクラスターに対してクエリを実行します。
同一アカウントに対してのクエリ実行はこちらの記事を参照してください。https://qiita.com/yust0724/items/8841e4284cd5113e30f8
クロスアカウントの際のポイントは以下です。
– Redshiftアカウント側にIAMロールを作成して、MWAA実行ロールからAssumeRoleする
– Postgres Connectionを使う(理由は後述)# 前提条件
– RedshiftのRA3クラスターをバージニア北部リージョン(us-east-1)に作成済み
– Redshiftアカウントに作成(アカウントID`111111111111`)
– クラスター名:redshift-cluster-demo
– DB名:qs_test_db
– ユーザー名:usera
– パブリックアクセスを有効にして
[no.007]EC2ボリューム拡張 (T2.micro Amazon Linux2 8G→12Gの例)
※追加ボリュームのマウント手順ではありませんので、ご注意を。
# 参考サイト
https://qiita.com/murakami77/items/32b2f214e0a85ffdfe49# 1. 念の為 EC2のスナップショットを作成する場合は以下の手順
– EC2画面を開く
– イメージとテンプレートをクリック
– イメージを作成
– イメージ名を入力
– 「再起動しない」にチェックを入れる(終了時に削除、は有効化にチェックを入れる)
– ※Terminate時に一緒にEBSボリュームを削除してくれる
– ※停止して取得したほうが良いけど、停止しなくても大体、起動できるスナップショットが出来上がる# 2. ディスク拡張
– EC2画面を開く
– 対象ホストをクリック
– ストレージタブをクリック
– ボリュームIDをクリック
– アクション
– ※変更ボタンではない!
– 8→12に変更する
– もう一度ボリュームをクリック
– ボリュームの状態をチェックする
– 使用中 modifying
100本ノックしてみたい中堅エンジニア 【AWS】~はじめに~ 1/100
## はじめに
久々の投稿になります。
私は今所属している会社で、中堅エンジニアand新米リーダー(and新米パパ)で日々働いています。周りで記事を頻繁に投稿する同僚が多くいるので、私も何か定期的に記事を書かなきゃな~と思い、最近触れることが多いAWSについて100本ノックにチャレンジしてみたいと思います!!!
## 書くにあたって
正直、毎日の業務をこなしながら書くとなるとそれなりの意思が必要だと思っています。
何回か記事を定期的に書こうとは思っては挫折しています…なので、
・週にxx本投稿する
・いいね数を稼げるような内容の濃い記事にする
・100本のタイトルを最初に決める
などはしないで、書けるときに書いていきたいと思います。また、内容に関しても基本的には1サービスで1記事など書いていく予定ですが、機能を全てを説明するのは厳しい(機能が追加されるたびに、更新するのは難しい…😢)し。長いと読む側も大変なので、以下のような方針で書いていきます。
## 方針
・しばらく触ってなかったAWSサービスを久々に触るってなった時に、この記事を見ればだいたい思い出
AWS ClouldFormationの静的解析ツールcfn-lintコマンドをインストール
## はじめに
CloudFomationのcfn-lintコマンドを使いたくてインストールを試みました。
色々、試みた結果。
PHP利用者は大抵`brew`コマンドがインストールされていると思うので(偏見)、それ使ったら一発だよ!って教えてあげたかっただけです。## インストールコマンド
“`:ターミナル
brew install cfn-lint
“`“`:ターミナル
which cfn-lint// この情報はVScodeと連携するときに使用します
/opt/homebrew/bin/cfn-lint
“`## VScodeの拡張機能にをインストールし、設定する
まず、拡張機能からインストールしていきましょう。
![スクリーンショット 2024-03-06 21.26.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/667254/45b79a32-6511-8717-1866-c6bb7a52adb7.png)
次に拡張機能を使用するために設定をしていきま
イメージをアップロードできるウェブページを CICD を適用して実装
自分が LT のために実装しながら、作った slide をもう一回整理したくてこれをかきます。
単純に silde をアップロードすることではなく、実装しながら、あったエラーとか、これが大事なということを qiita にアップロードして、こちらに url をつける予定です。
実装しながら、あちこちあらゆるブログや qiita をみたので、もれた url があるかもしれません。
## AWS
https://aws.amazon.com/
https://en.wikipedia.org/wiki/Amazon_Web_Services
Amazon Web Service
私たちがよく知っているアマゾン企業です。
その企業の cloud computing service で、cloud computer(virtual)に関連したサービスを使うことができます。自分が良く使うサービスはいかになります。
1. EC2
1. S3
1. Lambda
1. VPCこれ以外あらゆるサービスがあるので、wiki や AWS ページをご覧ください。
## CI/CD ってなに
BedrockのClaude3にマルチモーダルな問い合わせが可能なWebアプリをイチから作る
BedrockのClaude3がなんとなく分かってきたので、画像を含む問い合わせが行えるWebアプリを作ってみます。PythonとBoto3とStreamlitで作ります。
# 動作イメージ
申し訳程度の認証画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573242/df60d0ce-5038-e7d7-b2ce-a311e2afd3dd.png)
画像アップロード欄とテキスト入力欄
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573242/bcae1fe2-08a8-cb75-3937-f183db247de3.png)
テキストのみで問い合わせ可能
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573242/3ab088ce-1bfc-d5d3-3847-44b
Lightsailで、基本読み取り専用だけど、ブラウザSSHだけは許可したい、IAMポリシー作ってみた
# はじめに
Lightsailで、Wordpressのコンテンツ制作を外部の会社さんに委託するにあたって、AWS関連操作は読み取り専用だけど、ブラウザSSHは許可したい。
でも、Default Keyはダウンロードさせたくない。(変えるの大変だから、、、)という事で、IAMポリシーを作ってみたら、ちょっとハマったのでメモ書きです。
# IAMのGUIで認識されてないアクションがいる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281768/30a0d24e-762e-55c1-2a8e-5d71a40593ba.png)
“lightsail:GetSetupHistory”
https://docs.aws.amazon.com/ja_jp/lightsail/2016-11-28/api-reference/API_GetSetupHistory.html
API上は確かに存在するし、許可してあげないと、Lightsailの画面表示にエラーになるので、許可は
Eventbridge Schedulerを使って、簡単にEC2の不要コストを削減する
## はじめに
今回は検証環境等の停止忘れによる課金を抑えるために、Eventbridge Schedulerにて自動で起動停止するYAMLを作成しました。
基本的にCFnのYAMLテンプレートをコピーすれば、だれでもすぐ利用できるように心がけてCFnのYAMLテンプレートを作成しました。
なので、とりあえず停止忘れがないように自動停止を簡単に導入したい!という人には役立つかと思います。
また、[月間 1400万回の呼び出しを無料で行うことができる](https://aws.amazon.com/jp/eventbridge/pricing/#Scheduler)ので、導入によるコストもほとんどかからないと思います。## 目次
[完成版テンプレート](#完成版テンプレート)
[背景](#背景)
[前提](#前提)
[完成版テンプレート解説](#完成版テンプレート解説)
[実行](#実行)
[試行錯誤(おまけ)](#試行錯誤おまけ)
[まとめ](#まとめ)## 完成版テンプレート
現時点では下記のような形に落ち着きました。
IAMも1つのテンプレート内に記載しているので、下記を